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/containers/boris/BorisComments/index.tsx
2022-07-15 17:17:03 +07:00

58 lines
1.7 KiB
TypeScript

import React, { FC } from 'react';
import { Group } from '~/components/containers/Group';
import { Footer } from '~/components/main/Footer';
import { NodeCommentForm } from '~/components/node/NodeCommentForm';
import { NodeNoComments } from '~/components/node/NodeNoComments';
import { isSSR } from '~/constants/ssr';
import { NodeComments } from '~/containers/node/NodeComments';
import { useAuth } from '~/hooks/auth/useAuth';
import { CommentContextProvider, useCommentContext } from '~/utils/context/CommentContextProvider';
import { useNodeContext } from '~/utils/context/NodeContextProvider';
import { useUserContext } from '~/utils/context/UserContextProvider';
interface IProps {}
const BorisComments: FC<IProps> = () => {
const user = useUserContext();
const { isUser } = useAuth();
const {
isLoading,
comments,
onSaveComment,
onLoadMoreComments,
onDeleteComment,
onShowImageModal,
hasMore,
} = useCommentContext();
const { node } = useNodeContext();
return (
<CommentContextProvider
onSaveComment={onSaveComment}
comments={comments}
hasMore={hasMore}
onDeleteComment={onDeleteComment}
onLoadMoreComments={onLoadMoreComments}
onShowImageModal={onShowImageModal}
isLoading={isLoading}
>
<Group>
{(isUser || isSSR) && (
<NodeCommentForm user={user} nodeId={node.id} saveComment={onSaveComment} />
)}
{isLoading || !comments?.length ? (
<NodeNoComments is_loading count={7} />
) : (
<NodeComments order="ASC" />
)}
<Footer />
</Group>
</CommentContextProvider>
);
};
export { BorisComments };