Skip to content

Commit 877b66f

Browse files
committedJan 12, 2025·
feat: 비회원 및 팀원이 아닌 회원이 접근 시 모달 표시
#371
1 parent c53a56b commit 877b66f

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed
 

‎src/containers/study/DocumentModal/index.tsx

+23-2
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33
import { Box, Flex, Text, Image } from '@chakra-ui/react';
44
import Link from 'next/link';
5-
import { useState } from 'react';
5+
import { useEffect, useState } from 'react';
66
import { BiFile, BiLink } from 'react-icons/bi';
77

88
import { deleteDocument, getDocument } from '@/app/api/document';
9+
import { getTeamMembers } from '@/app/api/team';
910
import IconBox from '@/components/IconBox';
1011
import ActionModal from '@/components/Modal/ActionModal';
12+
import AlertModal from '@/components/Modal/AlertModal';
1113
import S3_URL from '@/constants/s3Url';
1214
import CreateDocumentModal from '@/containers/study/CreateDocumentModal';
1315
import { useGetFetchWithToken, useMutateWithToken } from '@/hooks/useFetchWithToken';
16+
import useGetUser from '@/hooks/useGetUser';
1417
import colors from '@/theme/foundations/colors';
15-
import { DocumentDetail } from '@/types';
18+
import { DocumentDetail, Member } from '@/types';
1619

1720
import { DocumentModalProps } from './types';
1821

@@ -39,6 +42,24 @@ const DocumentModal = ({ id, isOpen, setIsDocsModalOpen, setReload }: DocumentMo
3942
setReload((prev: boolean) => !prev);
4043
};
4144

45+
const user = useGetUser();
46+
const [isMember, setIsMember] = useState<boolean>(false);
47+
const { result: teamMembers } = useGetFetchWithToken(getTeamMembers, [document?.teamId], user);
48+
49+
useEffect(() => {
50+
if (user?.isLogin) {
51+
setIsMember(teamMembers?.some((member: Member) => member.id === user.memberId));
52+
}
53+
}, [teamMembers, user]);
54+
55+
if (!isMember) {
56+
return (
57+
<AlertModal isOpen={isOpen} onClose={() => setIsDocsModalOpen(false)} title="접근 권한이 없습니다." size="sm">
58+
<Text>{user?.isLogin ? '팀원만 접근 가능합니다.' : '로그인 후 접근 가능합니다.'}</Text>
59+
</AlertModal>
60+
);
61+
}
62+
4263
return (
4364
<ActionModal
4465
isOpen={isOpen}

0 commit comments

Comments
 (0)
Please sign in to comment.