diff --git a/packages/app/src/components/workspace-setting/index.ts b/packages/app/src/components/workspace-setting/index.ts new file mode 100644 index 0000000000..eda9c6aebd --- /dev/null +++ b/packages/app/src/components/workspace-setting/index.ts @@ -0,0 +1 @@ +export * from './workspace-setting'; diff --git a/packages/app/src/components/workspace-setting/style.ts b/packages/app/src/components/workspace-setting/style.ts new file mode 100644 index 0000000000..ec41b17dae --- /dev/null +++ b/packages/app/src/components/workspace-setting/style.ts @@ -0,0 +1,80 @@ +import { styled } from '@/styles'; + +export const StyledSettingContent = styled('div')(({ theme }) => { + return { + position: 'relative', + display: 'flex', + padding: '0px', + width: '1080px', + background: theme.colors.popoverBackground, + borderRadius: '12px', + }; +}); + +export const StyledSettingSidebar = styled('div')(({ theme }) => { + { + return { + width: '236px', + height: '780px', + background: theme.mode === 'dark' ? '#272727' : '#FBFBFC', + }; + } +}); + +export const StyledSettingSidebarHeader = styled('div')(({ theme }) => { + { + return { + fontWeight: '500', + fontSize: '18px', + lineHeight: '26px', + textAlign: 'center', + marginTop: '37px', + }; + } +}); + +export const StyledSettingTabContainer = styled('ul')(({ theme }) => { + { + return { + display: 'flex', + flexDirection: 'column', + marginTop: '25px', + }; + } +}); + +export const WorkspaceSettingTagItem = styled('li')<{ isActive?: boolean }>( + ({ theme, isActive }) => { + { + return { + display: 'flex', + marginBottom: '12px', + padding: '0 24px', + height: '32px', + color: isActive ? theme.colors.primaryColor : theme.colors.textColor, + fontWeight: '400', + fontSize: '16px', + lineHeight: '32px', + cursor: 'pointer', + }; + } + } +); + +export const StyledSettingTagIconContainer = styled('div')(({ theme }) => { + return { + display: 'flex', + alignItems: 'center', + marginRight: '14.64px', + width: '14.47px', + fontSize: '14.47px', + }; +}); + +export const StyledSettingH2 = styled('h2')(({ theme }) => { + return { + fontWeight: '500', + fontSize: '18px', + lineHeight: '26px', + }; +}); diff --git a/packages/app/src/components/workspace-setting/workspace-setting.tsx b/packages/app/src/components/workspace-setting/workspace-setting.tsx new file mode 100644 index 0000000000..8e059d6838 --- /dev/null +++ b/packages/app/src/components/workspace-setting/workspace-setting.tsx @@ -0,0 +1,94 @@ +import Modal from '@/ui/modal'; +import { + StyledSettingContent, + StyledSettingH2, + StyledSettingSidebar, + StyledSettingSidebarHeader, + StyledSettingTabContainer, + StyledSettingTagIconContainer, + WorkspaceSettingTagItem, +} from './style'; +import { EditIcon, UsersIcon, PublishIcon } from '@blocksuite/icons'; +import { useState } from 'react'; + +enum ActiveTab { + 'general' = 'general', + 'members' = 'members', + 'publish' = 'publish', +} + +type SettingTabProps = { + activeTab: ActiveTab; + onTabChange?: (tab: ActiveTab) => void; +}; + +const WorkspaceSettingTab = ({ activeTab, onTabChange }: SettingTabProps) => { + return ( + + { + onTabChange && onTabChange(ActiveTab.general); + }} + > + + + + General + + { + onTabChange && onTabChange(ActiveTab.members); + }} + > + + + + Members + + { + onTabChange && onTabChange(ActiveTab.publish); + }} + > + + + + Publish + + + ); +}; + +export const WorkspaceSetting = () => { + const [activeTab, setActiveTab] = useState(ActiveTab.general); + const handleTabChange = (tab: ActiveTab) => { + setActiveTab(tab); + }; + return ( + + + + + Workspace Settings + + + + {activeTab === ActiveTab.general && } + + + ); +}; + +const GeneralPage = () => { + return ( +
+ Workspace Avatar +
+ ); +}; diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx index b9f649f20f..63bf1f5d9c 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx @@ -23,7 +23,6 @@ export const WorkspaceCreate = ({ open, onClose }: WorkspaceCreateProps) => { const handlerInputChange = (workspaceName: string) => { setWorkspaceId(workspaceName); }; - console.log('workspaceName', workspaceName); return ( diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx index 94e4514fce..d06ed53f75 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceSelector.tsx @@ -8,7 +8,7 @@ export const WorkspaceSelector = () => { content={} zIndex={1000} placement="bottom-start" - trigger="hover" + trigger="click" >