2022-03-31 08:12:00 +00:00
|
|
|
import Layout from "../components/layout";
|
2022-04-15 02:04:28 +00:00
|
|
|
import {getSinglePost, getDirectoryData, convertObject, getFlattenArray, getGraphData} from "../lib/utils";
|
2022-03-23 15:25:39 +00:00
|
|
|
import FolderTree from "../components/FolderTree";
|
2022-03-31 09:59:10 +00:00
|
|
|
import MDContainer from "../components/MDContainer";
|
2022-04-15 02:04:28 +00:00
|
|
|
import dynamic from 'next/dynamic'
|
2020-12-01 03:28:42 +00:00
|
|
|
|
|
|
|
|
2022-04-15 02:04:28 +00:00
|
|
|
// This trick is to dynamically load component that interact with window object (browser only)
|
|
|
|
const DynamicGraph = dynamic(
|
|
|
|
() => import('../components/Graph'),
|
|
|
|
{ loading: () => <p>Loading ...</p>, ssr: false }
|
|
|
|
)
|
|
|
|
|
|
|
|
export default function Home({graphData, content, tree, flattenNodes}) {
|
2020-11-28 15:45:01 +00:00
|
|
|
return (
|
2022-03-31 08:46:10 +00:00
|
|
|
<Layout>
|
2022-03-24 07:43:18 +00:00
|
|
|
<div className = 'container'>
|
|
|
|
<nav className="nav-bar">
|
|
|
|
<FolderTree tree={tree} flattenNodes={flattenNodes}/>
|
|
|
|
</nav>
|
2022-03-31 09:59:10 +00:00
|
|
|
<MDContainer post={content.data}/>
|
2022-03-24 07:43:18 +00:00
|
|
|
</div>
|
2022-04-15 02:04:28 +00:00
|
|
|
<hr/>
|
|
|
|
<DynamicGraph graph={graphData}/>
|
2020-11-28 15:45:01 +00:00
|
|
|
</Layout>
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getStaticProps() {
|
2022-03-23 15:25:39 +00:00
|
|
|
const tree = convertObject(getDirectoryData());
|
2020-12-01 03:28:42 +00:00
|
|
|
const contentData = getSinglePost("index");
|
2022-03-24 04:15:43 +00:00
|
|
|
const flattenNodes = getFlattenArray(tree)
|
2022-04-15 02:04:28 +00:00
|
|
|
const graphData = getGraphData();
|
2020-11-28 15:45:01 +00:00
|
|
|
return {
|
|
|
|
props: {
|
2022-03-17 08:42:57 +00:00
|
|
|
content: contentData,
|
2022-03-24 04:15:43 +00:00
|
|
|
tree: tree,
|
2022-04-15 02:04:28 +00:00
|
|
|
flattenNodes: flattenNodes,
|
|
|
|
graphData:graphData,
|
2020-11-28 15:45:01 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|