import { Loading } from '@/components/Loading'; import { PillTabPane, PillTabs } from '@/components/PillTabs'; import { AllPermission } from 'tailchat-shared'; import React, { useMemo, useState } from 'react'; import { t, useGroupInfo } from 'tailchat-shared'; import { RoleItem } from './RoleItem'; import { useRoleActions } from './useRoleActions'; import { RoleSummary } from './tabs/summary'; import { RolePermission } from './tabs/permission'; import { RoleMember } from './tabs/member'; interface GroupPermissionProps { groupId: string; } export const GroupRole: React.FC = React.memo((props) => { const { groupId } = props; const [roleId, setRoleId] = useState( AllPermission ); const groupInfo = useGroupInfo(groupId); const roles = groupInfo?.roles ?? []; const currentRoleInfo = useMemo( () => roles.find((r) => r._id === roleId), [roles, roleId] ); const { loading, handleCreateRole, handleSavePermission, handleChangeRoleName, handleDeleteRole, } = useRoleActions(groupId, roleId); return (
{/* 角色列表 */} setRoleId(AllPermission)} > {t('所有人')} {roles.map((r) => ( setRoleId(r._id)} > {r.name} ))} {t('添加角色')}
{currentRoleInfo && ( )} {currentRoleInfo && ( )}
); }); GroupRole.displayName = 'GroupRole';