1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 04:46:40 +07:00

added dynamic routes

This commit is contained in:
Fedor Katurov 2022-07-17 12:36:09 +07:00
parent 8c17c02b3e
commit 0a1d2cbf99
16 changed files with 143 additions and 89 deletions

View file

@ -2,7 +2,7 @@ import React, { FC } from 'react';
import { Group } from '~/components/containers/Group';
import { Footer } from '~/components/main/Footer';
import { NodeCommentForm } from '~/components/node/NodeCommentForm';
import { NodeCommentFormSSR } from '~/components/node/NodeCommentForm/ssr';
import { NodeNoComments } from '~/components/node/NodeNoComments';
import { isSSR } from '~/constants/ssr';
import { NodeComments } from '~/containers/node/NodeComments';
@ -40,7 +40,7 @@ const BorisComments: FC<IProps> = () => {
>
<Group>
{(isUser || isSSR) && (
<NodeCommentForm user={user} nodeId={node.id} saveComment={onSaveComment} />
<NodeCommentFormSSR user={user} nodeId={node.id} saveComment={onSaveComment} />
)}
{isLoading || !comments?.length ? (

View file

@ -10,27 +10,29 @@ import { useShowModal } from '~/hooks/modal/useShowModal';
import styles from './styles.module.scss';
interface BorisSuperpowersProps { }
export interface BorisSuperpowersProps {}
const BorisSuperpowers: FC<BorisSuperpowersProps> = () => {
const openProfileSidebar = useShowModal(Dialog.ProfileSidebar);
const { push } = useRouter();
const openProfileSidebar = useShowModal(Dialog.ProfileSidebar);
const { push } = useRouter();
return (
<Group>
<h2>Штучи, находящиеся в разработке</h2>
return (
<Group>
<h2>Штучи, находящиеся в разработке</h2>
<div className={styles.grid}>
<Button size="mini" onClick={() => openProfileSidebar({})}>Открыть</Button>
<div className={styles.label}>Профиль в сайдбаре</div>
<div className={styles.grid}>
<Button size="mini" onClick={() => openProfileSidebar({})}>
Открыть
</Button>
<div className={styles.label}>Профиль в сайдбаре</div>
<Button size="mini" onClick={() => push(URLS.SETTINGS.BASE)}>Открыть</Button>
<div className={styles.label}>Профиль на отдельной странице</div>
</div>
</Group>
);
}
<Button size="mini" onClick={() => push(URLS.SETTINGS.BASE)}>
Открыть
</Button>
<div className={styles.label}>Профиль на отдельной странице</div>
</div>
</Group>
);
};
export default BorisSuperpowers;
export { BorisSuperpowers };

View file

@ -0,0 +1,12 @@
import dynamic from 'next/dynamic';
import type { BorisSuperpowersProps } from './index';
export const BorisSuperPowersSSR = dynamic<BorisSuperpowersProps>(
() => import('~/containers/boris/BorisSuperpowers/index')
.then(it => it.BorisSuperpowers),
{
ssr: false,
loading: () => <div />,
}
);

View file

@ -21,7 +21,7 @@ import { useUpdates } from '~/hooks/updates/useUpdates';
import styles from './styles.module.scss';
type HeaderProps = {};
export interface HeaderProps {}
const Header: FC<HeaderProps> = observer(() => {
const labStats = useGetLabStats();

View file

@ -0,0 +1,12 @@
import dynamic from 'next/dynamic';
import type { HeaderProps } from '~/containers/main/Header/index';
import styles from './styles.module.scss';
export const HeaderSSR = dynamic<HeaderProps>(() => import('./index').then(it => it.Header), {
ssr: false,
loading: () => <div className={styles.wrap} />,
});
export const HeaderSSRPlaceholder = () => <div className={styles.wrap} />;

View file

@ -1,5 +1,16 @@
@import "../../../styles/variables";
@keyframes appear {
from {
opacity: 0;
transform: translate(0, -$header_height);
}
to {
opacity: 1;
transform: translate(0, 0);
}
}
.wrap {
height: $header_height;
z-index: 25;
@ -10,7 +21,8 @@
align-items: stretch;
justify-content: center;
box-sizing: border-box;
transition: background-color 0.5s;
transition: background-color 0.75s;
animation: appear 500ms forwards;
@include desktop {
height: 64px;

View file

@ -1,6 +1,6 @@
import React, { FC } from 'react';
import { SubmitBar } from '~/components/bars/SubmitBar';
import { SubmitBarSSR } from '~/components/bars/SubmitBar/ssr';
import { Authorized } from '~/components/containers/Authorized';
interface IProps {
@ -10,7 +10,7 @@ interface IProps {
const SidebarRouter: FC<IProps> = ({ isLab }) => (
<Authorized>
<SubmitBar isLab={isLab} />
<SubmitBarSSR isLab={isLab} />
</Authorized>
);

View file

@ -4,7 +4,7 @@ import { Group } from '~/components/containers/Group';
import { Padder } from '~/components/containers/Padder';
import { Sticky } from '~/components/containers/Sticky';
import { NodeAuthorBlock } from '~/components/node/NodeAuthorBlock';
import { NodeCommentForm } from '~/components/node/NodeCommentForm';
import { NodeCommentFormSSR } from '~/components/node/NodeCommentForm/ssr';
import { NodeDeletedBadge } from '~/components/node/NodeDeletedBadge';
import { NodeNoComments } from '~/components/node/NodeNoComments';
import { NodeRelatedBlock } from '~/components/node/NodeRelatedBlock';
@ -51,7 +51,7 @@ const NodeBottomBlock: FC<IProps> = ({ commentsOrder }) => {
</article>
{isUser && !isLoading && (
<NodeCommentForm nodeId={node.id} saveComment={onSaveComment} user={user} />
<NodeCommentFormSSR nodeId={node.id} saveComment={onSaveComment} user={user} />
)}
</Group>