import React, { FC } from 'react'; 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 { NodeDeletedBadge } from '~/components/node/NodeDeletedBadge'; import { NodeNoComments } from '~/components/node/NodeNoComments'; import { NodeRelatedBlock } from '~/components/node/NodeRelatedBlock'; import { NodeTagsBlock } from '~/components/node/NodeTagsBlock'; import { NodeComments } from '~/containers/node/NodeComments'; import { useNodeBlocks } from '~/hooks/node/useNodeBlocks'; import { useCommentContext } from '~/utils/context/CommentContextProvider'; import { useNodeContext } from '~/utils/context/NodeContextProvider'; import { useNodeRelatedContext } from '~/utils/context/NodeRelatedContextProvider'; import { useUserContext } from '~/utils/context/UserContextProvider'; import { useAuthProvider } from '~/utils/providers/AuthProvider'; import styles from './styles.module.scss'; interface IProps { commentsOrder: 'ASC' | 'DESC'; } const NodeBottomBlock: FC = ({ commentsOrder }) => { const user = useUserContext(); const { node, isLoading } = useNodeContext(); const { comments, isLoading: isLoadingComments, onSaveComment } = useCommentContext(); const { related, isLoading: isLoadingRelated } = useNodeRelatedContext(); const { inline } = useNodeBlocks(node, isLoading); const { isUser } = useAuthProvider(); if (node.deleted_at) { return ; } return ( {inline &&
{inline}
}
{isLoading || isLoadingComments || (!comments.length && !inline) ? ( ) : ( )}
{isUser && !isLoading && ( )}
); }; export { NodeBottomBlock };