import { ModalBody, Table, TableContainer, Tbody, Th, Thead, Tr, Td, Box, Flex } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; import React from 'react'; import { useContextSelector } from 'use-context-selector'; import PermissionSelect from './PermissionSelect'; import PermissionTags from './PermissionTags'; import Avatar from '@/components/Avatar'; import { CollaboratorContext } from './context'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { PermissionValueType } from '@fastgpt/global/support/permission/type'; import { useUserStore } from '@/web/support/user/useUserStore'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; export type ManageModalProps = { onClose: () => void; }; function ManageModal({ onClose }: ManageModalProps) { const { userInfo } = useUserStore(); const { collaboratorList, onUpdateCollaborators, onDelOneCollaborator } = useContextSelector( CollaboratorContext, (v) => v ); const { mutate: onDelete, isLoading: isDeleting } = useRequest({ mutationFn: (tmbId: string) => onDelOneCollaborator(tmbId) }); const { mutate: onUpdate, isLoading: isUpdating } = useRequest({ mutationFn: ({ tmbId, per }: { tmbId: string; per: PermissionValueType }) => { return onUpdateCollaborators([tmbId], per); }, successToast: '更新成功', errorToast: 'Error' }); const loading = isDeleting || isUpdating; return ( {collaboratorList?.map((item) => { return ( ); })}
名称 权限 操作
{item.name} {item.tmbId !== userInfo?.team?.tmbId && ( } value={item.permission} onChange={(per) => { onUpdate({ tmbId: item.tmbId, per }); }} onDelete={() => { onDelete(item.tmbId); }} /> )}
{collaboratorList?.length === 0 && }
); } export default ManageModal;