import Modal, { ModalCloseButton } from '@/ui/modal'; import { StyledSettingContainer, StyledSettingContent, StyledSettingSidebar, StyledSettingSidebarHeader, StyledSettingTabContainer, StyledSettingTagIconContainer, WorkspaceSettingTagItem, } from './style'; import { EditIcon, UsersIcon, PublishIcon, CloudInsyncIcon, } from '@blocksuite/icons'; import { useEffect, useState } from 'react'; import { GeneralPage } from './general'; import { MembersPage } from './MembersPage'; import { PublishPage } from './PublishPage'; import { SyncPage } from './SyncPage'; import { useTemporaryHelper } from '@/providers/temporary-helper-provider'; enum ActiveTab { 'general' = 'general', 'members' = 'members', 'publish' = 'publish', 'sync' = 'sync', 'export' = 'export', } type SettingTabProps = { activeTab: ActiveTab; onTabChange?: (tab: ActiveTab) => void; }; type WorkspaceSettingProps = { isShow: boolean; onClose?: () => void; }; const WorkspaceSettingTab = ({ activeTab, onTabChange }: SettingTabProps) => { return ( { onTabChange && onTabChange(ActiveTab.general); }} > General { onTabChange && onTabChange(ActiveTab.sync); }} > Sync { onTabChange && onTabChange(ActiveTab.members); }} > Members { onTabChange && onTabChange(ActiveTab.publish); }} > Publish { onTabChange && onTabChange(ActiveTab.export); }} > Export ); }; export const WorkspaceSetting = ({ isShow, onClose, }: WorkspaceSettingProps) => { // const { workspaces } = useAppState(); const [activeTab, setActiveTab] = useState(ActiveTab.general); const handleTabChange = (tab: ActiveTab) => { setActiveTab(tab); }; const { currentWorkspace } = useTemporaryHelper(); const handleClickClose = () => { onClose && onClose(); }; const isOwner = true; useEffect(() => { // reset tab when modal is closed if (!isShow) { setActiveTab(ActiveTab.general); } }, [isShow]); return ( {isOwner ? ( Workspace Settings ) : null} {activeTab === ActiveTab.general && currentWorkspace && ( )} {activeTab === ActiveTab.sync && currentWorkspace && ( )} {activeTab === ActiveTab.members && currentWorkspace && ( )} {activeTab === ActiveTab.publish && currentWorkspace && ( )} ); };