import { UserAvatar } from '@affine/component/user-avatar'; import { WorkspaceAvatar } from '@affine/component/workspace-avatar'; import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useBlockSuiteWorkspaceName } from '@toeverything/hooks/use-block-suite-workspace-name'; import clsx from 'clsx'; import type { AllWorkspace } from '../../../../shared'; import type { GeneralSettingKeys, GeneralSettingList, } from '../general-setting'; import { accountButton, settingSlideBar, sidebarItemsWrapper, sidebarSelectItem, sidebarSubtitle, sidebarTitle, } from './style.css'; export const SettingSidebar = ({ generalSettingList, onGeneralSettingClick, currentWorkspace, workspaceList, onWorkspaceSettingClick, selectedWorkspace, selectedGeneralKey, onAccountSettingClick, }: { generalSettingList: GeneralSettingList; onGeneralSettingClick: (key: GeneralSettingKeys) => void; currentWorkspace: AllWorkspace; workspaceList: AllWorkspace[]; onWorkspaceSettingClick: (workspace: AllWorkspace) => void; selectedWorkspace: AllWorkspace | null; selectedGeneralKey: string | null; onAccountSettingClick: () => void; }) => { const t = useAFFiNEI18N(); return (
{t['Settings']()}
{t['General']()}
{generalSettingList.map(({ title, icon, key, testId }) => { return (
{ onGeneralSettingClick(key); }} data-testid={testId} > {icon({ className: 'icon' })} {title}
); })}
{t['com.affine.settings.workspace']()}
{workspaceList.map(workspace => { return ( { onWorkspaceSettingClick(workspace); }} isCurrent={workspace.id === currentWorkspace.id} isActive={workspace.id === selectedWorkspace?.id} /> ); })}
{runtimeConfig.enableCloud && (
Account NameAccount Name
xxxxxxxx@gmail.comxxxxxxxx@gmail.com
)}
); }; const WorkspaceListItem = ({ workspace, onClick, isCurrent, isActive, }: { workspace: AllWorkspace; onClick: () => void; isCurrent: boolean; isActive: boolean; }) => { const [workspaceName] = useBlockSuiteWorkspaceName( workspace.blockSuiteWorkspace ?? null ); return (
{workspaceName} {isCurrent ?
Current
: null}
); };