diff --git a/web/core/components/dropdowns/member/index.tsx b/web/core/components/dropdowns/member/index.tsx index 914bc8e9547..0fa64ae1fe0 100644 --- a/web/core/components/dropdowns/member/index.tsx +++ b/web/core/components/dropdowns/member/index.tsx @@ -24,6 +24,7 @@ type Props = { onClose?: () => void; renderByDefault?: boolean; optionsClassName?: string; + memberIds?: string[]; } & MemberDropdownProps; export const MemberDropdown: React.FC = observer((props) => { @@ -52,6 +53,7 @@ export const MemberDropdown: React.FC = observer((props) => { value, icon, renderByDefault = true, + memberIds, } = props; // states const [isOpen, setIsOpen] = useState(false); @@ -169,6 +171,7 @@ export const MemberDropdown: React.FC = observer((props) => { > {isOpen && ( = observer((props: Props) => { - const { projectId, referenceElement, placement, isOpen, optionsClassName = "" } = props; + const { memberIds: propsMemberIds, projectId, referenceElement, placement, isOpen, optionsClassName = "" } = props; // states const [query, setQuery] = useState(""); const [popperElement, setPopperElement] = useState(null); @@ -67,7 +68,7 @@ export const MemberOptions: React.FC = observer((props: Props) => { } }, [isOpen, isMobile]); - const memberIds = projectId ? getProjectMemberIds(projectId) : workspaceMemberIds; + const memberIds = propsMemberIds ? propsMemberIds : projectId ? getProjectMemberIds(projectId) : workspaceMemberIds; const onOpen = () => { if (!memberIds && workspaceSlug && projectId) fetchProjectMembers(workspaceSlug.toString(), projectId); }; diff --git a/web/core/components/project/member-list-item.tsx b/web/core/components/project/member-list-item.tsx index 3a7c5ed0340..3b115c493c0 100644 --- a/web/core/components/project/member-list-item.tsx +++ b/web/core/components/project/member-list-item.tsx @@ -38,9 +38,9 @@ export const ProjectMemberListItem: React.FC = observer((props) => { if (!workspaceSlug || !projectId || !memberId) return; if (memberId === currentUser?.id) { - router.push(`/${workspaceSlug}/projects`); await leaveProject(workspaceSlug.toString(), projectId.toString()) .then(async () => { + router.push(`/${workspaceSlug}/projects`); captureEvent(PROJECT_MEMBER_LEAVE, { state: "SUCCESS", element: "Project settings members page", @@ -50,7 +50,7 @@ export const ProjectMemberListItem: React.FC = observer((props) => { .catch((err) => setToast({ type: TOAST_TYPE.ERROR, - title: "Error!", + title: "You can’t leave this project yet.", message: err?.error || "Something went wrong. Please try again.", }) ); @@ -58,14 +58,13 @@ export const ProjectMemberListItem: React.FC = observer((props) => { await removeMemberFromProject(workspaceSlug.toString(), projectId.toString(), memberId).catch((err) => setToast({ type: TOAST_TYPE.ERROR, - title: "Error!", + title: "You can’t remove the member from this project yet.", message: err?.error || "Something went wrong. Please try again.", }) ); }; if (!memberDetails) return null; - removeMemberModal && console.log("removeMemberModal", JSON.parse(JSON.stringify(removeMemberModal?.member))); return ( <> {removeMemberModal && ( diff --git a/web/core/components/project/settings/member-columns.tsx b/web/core/components/project/settings/member-columns.tsx index d2d12529e73..4ead03a6483 100644 --- a/web/core/components/project/settings/member-columns.tsx +++ b/web/core/components/project/settings/member-columns.tsx @@ -154,7 +154,7 @@ export const AccountTypeColumn: React.FC = observer((props) => setToast({ type: TOAST_TYPE.ERROR, - title: "Error!", + title: "You can’t change this role yet.", message: errorString ?? "An error occurred while updating member role. Please try again.", }); });