import { Button, Modal, DialogTrigger, Dialog, Column } from '@umami/react-zen'; import { useLoginQuery, useMessages, useModified, useUserTeamsQuery, useNavigation, } from '@/components/hooks'; import { WebsiteDeleteForm } from './WebsiteDeleteForm'; import { WebsiteResetForm } from './WebsiteResetForm'; import { WebsiteTransferForm } from './WebsiteTransferForm'; import { ActionForm } from '@/components/common/ActionForm'; import { ROLES } from '@/lib/constants'; export function WebsiteData({ websiteId, onSave }: { websiteId: string; onSave?: () => void }) { const { formatMessage, labels, messages } = useMessages(); const { user } = useLoginQuery(); const { touch } = useModified(); const { router, pathname, teamId, renderUrl } = useNavigation(); const { data: teams } = useUserTeamsQuery(user.id); const isAdmin = pathname.startsWith('/admin'); const canTransferWebsite = ( (!teamId && teams?.data?.filter(({ members }) => members.find( ({ role, userId }) => [ROLES.teamOwner, ROLES.teamManager].includes(role) && userId === user.id, ), )) || [] ).length > 0 || (teamId && !!teams?.data ?.find(({ id }) => id === teamId) ?.members.find(({ role, userId }) => role === ROLES.teamOwner && userId === user.id)); const handleSave = () => { touch('websites'); onSave?.(); router.push(renderUrl(`/websites`)); }; const handleReset = async () => { onSave?.(); }; return ( {!isAdmin && ( {({ close }) => ( )} )} {({ close }) => ( )} {({ close }) => ( )} ); }