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

refactor comment components

This commit is contained in:
Fedor Katurov 2023-11-19 18:07:28 +06:00
parent 60da84aad9
commit eea7095e65
42 changed files with 89 additions and 76 deletions

View file

@ -1,48 +0,0 @@
import { FC, useCallback } from 'react';
import { observer } from 'mobx-react-lite';
import { CommentForm } from '~/components/comment/CommentForm';
import { CommentWrapper } from '~/components/containers/CommentWrapper';
import { UploadDropzone } from '~/components/upload/UploadDropzone';
import { Dialog } from '~/constants/modal';
import { UploadSubject, UploadTarget } from '~/constants/uploads';
import { useAuth } from '~/hooks/auth/useAuth';
import { useUploader } from '~/hooks/data/useUploader';
import { useShowModal } from '~/hooks/modal/useShowModal';
import { IComment } from '~/types';
import { UploaderContextProvider } from '~/utils/context/UploaderContextProvider';
export interface Props {
saveComment: (comment: IComment) => Promise<IComment | undefined>;
}
const NodeCommentForm: FC<Props> = observer(({ saveComment }) => {
const { user, isUser } = useAuth();
const showRegisterDialog = useShowModal(Dialog.Register);
const uploader = useUploader(UploadSubject.Comment, UploadTarget.Comments);
const onCommentSave = useCallback(
async (comment: IComment) => {
if (!isUser) {
showRegisterDialog({});
return;
}
return saveComment(comment);
},
[isUser, showRegisterDialog, saveComment],
);
return (
<UploadDropzone onUpload={uploader.uploadFiles}>
<UploaderContextProvider value={uploader}>
<CommentWrapper user={isUser ? user : undefined} isForm>
<CommentForm saveComment={onCommentSave} allowUploads={isUser} />
</CommentWrapper>
</UploaderContextProvider>
</UploadDropzone>
);
});
export { NodeCommentForm };