import { useState } from 'react'; import { Column, Tabs, TabList, Tab, TabPanel } from '@umami/react-zen'; import { useLoginQuery, useMessages, useNavigation, useTeam } from '@/components/hooks'; import { ROLES } from '@/lib/constants'; import { Users } from '@/components/icons'; import { TeamLeaveButton } from '@/app/(main)/teams/TeamLeaveButton'; import { TeamManage } from './TeamManage'; import { TeamEditForm } from './TeamEditForm'; import { TeamWebsitesDataTable } from './TeamWebsitesDataTable'; import { TeamMembersDataTable } from './TeamMembersDataTable'; import { PageHeader } from '@/components/common/PageHeader'; import { Panel } from '@/components/common/Panel'; export function TeamSettings({ teamId }: { teamId: string }) { const team = useTeam(); const { formatMessage, labels } = useMessages(); const { user } = useLoginQuery(); const { query, pathname } = useNavigation(); const [tab, setTab] = useState(query?.tab || 'details'); const isAdmin = pathname.includes('/admin'); const isTeamOwner = !!team?.members?.find(({ userId, role }) => role === ROLES.teamOwner && userId === user.id) && user.role !== ROLES.viewOnly; const canEdit = user.isAdmin || (!!team?.members?.find( ({ userId, role }) => (role === ROLES.teamOwner || role === ROLES.teamManager) && userId === user.id, ) && user.role !== ROLES.viewOnly); return ( }> {!isTeamOwner && !isAdmin && } setTab(value)}> {formatMessage(labels.details)} {formatMessage(labels.members)} {formatMessage(labels.websites)} {isTeamOwner && {formatMessage(labels.manage)}} ); }