diff --git a/code/client/src/ui/pages/workspace/components/ManageWorkspaceDialog.tsx b/code/client/src/ui/pages/workspace/components/ManageWorkspaceDialog.tsx
index 1bbcb63a..cf113a55 100644
--- a/code/client/src/ui/pages/workspace/components/ManageWorkspaceDialog.tsx
+++ b/code/client/src/ui/pages/workspace/components/ManageWorkspaceDialog.tsx
@@ -2,20 +2,19 @@ import Dialog from '@ui/components/dialog/Dialog';
import { RxCross1 } from 'react-icons/rx';
import { MdManageAccounts } from 'react-icons/md';
import './ManageMembersDialog.scss';
+import { WorkspaceMeta } from '@notespace/shared/src/workspace/types/workspace';
type ManageWorkspaceDialogProps = {
- members: string[];
+ workspace: WorkspaceMeta;
onAddMember: (email: string) => void;
onRemoveMember: (email: string) => void;
- isPrivate: boolean;
toggleVisibility: () => void;
};
function ManageWorkspaceDialog({
- members,
+ workspace,
onAddMember,
onRemoveMember,
- isPrivate,
toggleVisibility,
}: ManageWorkspaceDialogProps) {
return (
@@ -28,13 +27,13 @@ function ManageWorkspaceDialog({
submitText="Add Member"
extraContent={
-
+
Current Members
- {members?.map(member => (
+ {workspace.members?.map((member: string) => (
-
{member}
- {members.length > 1 && (
+ {workspace.members.length > 1 && (
diff --git a/code/client/src/ui/pages/workspaces/components/WorkspaceContextMenu.tsx b/code/client/src/ui/pages/workspaces/components/WorkspaceContextMenu.tsx
index 1f07db67..7dab28f9 100644
--- a/code/client/src/ui/pages/workspaces/components/WorkspaceContextMenu.tsx
+++ b/code/client/src/ui/pages/workspaces/components/WorkspaceContextMenu.tsx
@@ -1,44 +1,31 @@
import PopupMenu from '@ui/components/popup-menu/PopupMenu';
-import { ReactNode, useEffect, useState } from 'react';
+import { ReactNode } from 'react';
import { MdDelete, MdEdit } from 'react-icons/md';
import { useAuth } from '@/contexts/auth/useAuth';
import ManageWorkspaceDialog from '@ui/pages/workspace/components/ManageWorkspaceDialog';
+import { WorkspaceMeta } from '@notespace/shared/src/workspace/types/workspace';
type WorkspaceContextMenuProps = {
+ workspace: WorkspaceMeta;
children: ReactNode;
onRename: () => void;
onDelete: () => void;
- onGetMembers: () => Promise;
onAddMember: (email: string) => Promise;
onRemoveMember: (email: string) => Promise;
- isPrivate: boolean;
toggleVisibility: () => Promise;
};
function WorkspaceContextMenu({
+ workspace,
children,
onRename,
onDelete,
- onGetMembers,
onAddMember,
onRemoveMember,
- isPrivate,
toggleVisibility,
}: WorkspaceContextMenuProps) {
- const [members, setMembers] = useState([]);
- const [isMember, setIsMember] = useState(false);
const { currentUser } = useAuth();
-
- useEffect(() => {
- async function fetchMembers() {
- const members = await onGetMembers();
- setMembers(members);
- setIsMember(members.includes(currentUser?.email || ''));
- }
- fetchMembers();
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [currentUser]);
-
+ const isMember = workspace.members.includes(currentUser?.email || '');
return (