feat: add setting entry of setting workspace

This commit is contained in:
MingLiang Wang
2022-12-20 15:11:18 +08:00
parent 2bf44326f3
commit d60ab98729
4 changed files with 59 additions and 9 deletions
@@ -10,9 +10,20 @@ import {
ListItem,
LoginItem,
} from './WorkspaceItem';
import { WorkspaceSetting } from '@/components/workspace-setting';
import { useState } from 'react';
export const SelectorPopperContent = () => {
const { user, workspacesMeta } = useAppState();
const [settingWorkspaceId, setSettingWorkspaceId] = useState<string | null>(
null
);
const handleClickSettingWorkspace = (workspaceId: string) => {
setSettingWorkspaceId(workspaceId);
};
const handleCloseWorkSpace = () => {
setSettingWorkspaceId(null);
};
return !user ? (
<SelectorPopperContainer placement="bottom-start">
<LoginItem />
@@ -36,12 +47,16 @@ export const SelectorPopperContent = () => {
id={workspace.id}
name={`workspace-${workspace.id}`}
icon={''}
onClick={handleClickSettingWorkspace}
/>
);
})}
</WorkspaceWrapper>
<CreateWorkspaceItem />
<WorkspaceSetting
isShow={Boolean(settingWorkspaceId)}
onClose={handleCloseWorkSpace}
/>
<StyledDivider />
<ListItem
icon={<InformationIcon />}
@@ -2,9 +2,16 @@ import { SettingsIcon } from '@blocksuite/icons';
import { styled } from '@/styles';
import { IconButton } from '@/ui/button';
export const FooterSetting = () => {
type SettingProps = {
onClick?: () => void;
};
export const FooterSetting = ({ onClick }: SettingProps) => {
const handleClick = () => {
onClick && onClick();
};
return (
<Wrapper className="footer-setting">
<Wrapper className="footer-setting" onClick={handleClick}>
<SettingsIcon />
</Wrapper>
);
@@ -12,11 +12,21 @@ interface WorkspaceItemProps {
id: string;
name: string;
icon: string;
onClick?: (workspaceId: string) => void;
}
export const WorkspaceItem = ({ id, name, icon }: WorkspaceItemProps) => {
export const WorkspaceItem = ({
id,
name,
icon,
onClick,
}: WorkspaceItemProps) => {
const router = useRouter();
const handleClickSetting = async () => {
onClick && onClick(id);
};
return (
<StyledWrapper
onClick={() => {
@@ -31,7 +41,7 @@ export const WorkspaceItem = ({ id, name, icon }: WorkspaceItemProps) => {
</WorkspaceItemContent>
<Footer>
<FooterUsers />
<FooterSetting />
<FooterSetting onClick={handleClickSetting} />
</Footer>
</StyledWrapper>
);