1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-24 20:36:40 +07:00
vault-frontend/src/layouts/NodeLayout/index.tsx
2021-11-22 12:11:25 +07:00

52 lines
1.5 KiB
TypeScript

import React, { FC } from 'react';
import { Route } from 'react-router';
import { Card } from '~/components/containers/Card';
import { NodePanel } from '~/components/node/NodePanel';
import { Footer } from '~/components/main/Footer';
import { SidebarRouter } from '~/containers/main/SidebarRouter';
import { Container } from '~/containers/main/Container';
import { useNodeBlocks } from '~/utils/hooks/node/useNodeBlocks';
import { NodeBottomBlock } from '~/containers/node/NodeBottomBlock';
import { useNodeCoverImage } from '~/utils/hooks/node/useNodeCoverImage';
import { URLS } from '~/constants/urls';
import { EditorEditDialog } from '~/containers/dialogs/EditorEditDialog';
import styles from './styles.module.scss';
import { useNodeContext } from '~/utils/context/NodeContextProvider';
type IProps = {};
const NodeLayout: FC<IProps> = () => {
const { node, isLoading } = useNodeContext();
const { head, block } = useNodeBlocks(node, isLoading);
useNodeCoverImage(node);
return (
<div className={styles.wrap}>
{head}
<Container className={styles.content}>
<Card className={styles.node} seamless>
{block}
<div className={styles.panel}>
<NodePanel node={node} isLoading={isLoading} />
</div>
<NodeBottomBlock commentsOrder="DESC" />
<Footer />
</Card>
</Container>
<SidebarRouter prefix="/post:id" />
<Route path={URLS.NODE_EDIT_URL(':id')} component={EditorEditDialog} />
</div>
);
};
export { NodeLayout };