feat: remove private workspace from list

This commit is contained in:
MingLiang Wang
2022-12-26 18:03:44 +08:00
parent ad9079319b
commit 091183785c
3 changed files with 32 additions and 19 deletions
@@ -98,32 +98,32 @@ export const SelectorPopperContent = ({
</SelectorPopperContainer>
) : (
<SelectorPopperContainer placement="bottom-start">
<PrivateWorkspaceItem />
<PrivateWorkspaceItem
privateWorkspaceId={
workspacesMeta.find(
workspace => workspace.type === WorkspaceType.Private
)?.id
}
/>
<StyledDivider />
<WorkspaceGroupTitle>Workspace</WorkspaceGroupTitle>
<WorkspaceWrapper>
{workspacesMeta.map(workspace => {
return (
return workspace.type !== WorkspaceType.Private ? (
<WorkspaceItem
type={workspace.type}
key={workspace.id}
id={workspace.id}
icon={
workspace.type === WorkspaceType.Private
? user.avatar_url
: (workspaces[workspace.id]?.meta.avatar &&
`/api/blob/${workspaces[workspace.id]?.meta.avatar}`) ||
`loading...`
}
onClick={handleClickSettingWorkspace}
name={
workspace.type === WorkspaceType.Private
? user.name
: workspaces[workspace.id]?.meta.name || `loading...`
(workspaces[workspace.id]?.meta.avatar &&
`/api/blob/${workspaces[workspace.id]?.meta.avatar}`) ||
`loading...`
}
onClickSetting={handleClickSettingWorkspace}
name={workspaces[workspace.id]?.meta.name || `loading...`}
memberCount={workSpaceDetails[workspace.id]?.memberCount || 1}
/>
);
) : null;
})}
</WorkspaceWrapper>
<CreateWorkspaceItem />
@@ -5,13 +5,26 @@ import {
PrivateWorkspaceWrapper,
WorkspaceItemContent,
} from './styles';
import { useRouter } from 'next/router';
export const PrivateWorkspaceItem = () => {
type PrivateWorkspaceItemProps = {
privateWorkspaceId?: string;
};
export const PrivateWorkspaceItem = ({
privateWorkspaceId,
}: PrivateWorkspaceItemProps) => {
const { user } = useAppState();
const router = useRouter();
const handleClick = () => {
if (privateWorkspaceId) {
router.push(`/workspace/${privateWorkspaceId}`);
}
};
if (user) {
const Username = user.name;
return (
<PrivateWorkspaceWrapper>
<PrivateWorkspaceWrapper onClick={handleClick}>
<WorkspaceItemAvatar alt={Username} src={user.avatar_url}>
{Username}
</WorkspaceItemAvatar>
@@ -16,7 +16,7 @@ interface WorkspaceItemProps {
icon: string;
type: WorkspaceType;
memberCount: number;
onClick?: (workspaceId: string) => void;
onClickSetting?: (workspaceId: string) => void;
}
export const WorkspaceItem = ({
@@ -24,7 +24,7 @@ export const WorkspaceItem = ({
name,
icon,
type,
onClick,
onClickSetting,
memberCount,
}: WorkspaceItemProps) => {
const router = useRouter();
@@ -32,7 +32,7 @@ export const WorkspaceItem = ({
const { currentWorkspaceId } = useAppState();
const handleClickSetting = async () => {
onClick && onClick(id);
onClickSetting && onClickSetting(id);
};
return (