From 721beb21061c2b755324181da0a94010e5498d08 Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Thu, 24 Aug 2023 23:31:50 +0530 Subject: [PATCH 1/4] fix: workspace accepted invitation redirects to the workspace --- apps/app/pages/invitations.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/app/pages/invitations.tsx b/apps/app/pages/invitations.tsx index 34aeca8f389..151713d8788 100644 --- a/apps/app/pages/invitations.tsx +++ b/apps/app/pages/invitations.tsx @@ -34,6 +34,8 @@ import { USER_WORKSPACE_INVITATIONS } from "constants/fetch-keys"; // constants import { ROLE } from "constants/workspace"; +// Todo: Convert this logic to checkboxes + const OnBoard: NextPage = () => { const [invitationsRespond, setInvitationsRespond] = useState([]); const [isJoiningWorkspaces, setIsJoiningWorkspaces] = useState(false); @@ -50,6 +52,8 @@ const OnBoard: NextPage = () => { workspaceService.userWorkspaceInvitations() ); + console.log("invitations", invitations); + const handleInvitation = ( workspace_invitation: IWorkspaceMemberInvitation, action: "accepted" | "withdraw" @@ -78,10 +82,11 @@ const OnBoard: NextPage = () => { workspaceService .joinWorkspaces({ invitations: invitationsRespond }) .then(() => { - mutateInvitations(); mutate("USER_WORKSPACES"); - setIsJoiningWorkspaces(false); + const firstInviteId = invitationsRespond[0]; + const redirectWorkspace = invitations?.find((i) => i.id === firstInviteId)?.workspace; + router.push(`/${redirectWorkspace?.slug}`); }) .catch(() => setIsJoiningWorkspaces(false)); }; From b6e6fe1e9a4cbf3bc7e11c3bfcf6a8bd2801472a Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Thu, 24 Aug 2023 23:32:52 +0530 Subject: [PATCH 2/4] chore: removing logs --- apps/app/pages/invitations.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/app/pages/invitations.tsx b/apps/app/pages/invitations.tsx index 151713d8788..65f3e364e96 100644 --- a/apps/app/pages/invitations.tsx +++ b/apps/app/pages/invitations.tsx @@ -52,8 +52,6 @@ const OnBoard: NextPage = () => { workspaceService.userWorkspaceInvitations() ); - console.log("invitations", invitations); - const handleInvitation = ( workspace_invitation: IWorkspaceMemberInvitation, action: "accepted" | "withdraw" From 5bb6e4dac36062cdc66f5b5cc91c1f38af84cb9b Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Thu, 24 Aug 2023 23:43:34 +0530 Subject: [PATCH 3/4] fix: updating user last workspace id with newly joined one --- apps/app/pages/invitations.tsx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/app/pages/invitations.tsx b/apps/app/pages/invitations.tsx index 65f3e364e96..6185f1b88b4 100644 --- a/apps/app/pages/invitations.tsx +++ b/apps/app/pages/invitations.tsx @@ -33,8 +33,10 @@ import type { IWorkspaceMemberInvitation } from "types"; import { USER_WORKSPACE_INVITATIONS } from "constants/fetch-keys"; // constants import { ROLE } from "constants/workspace"; +import userService from "services/user.service"; -// Todo: Convert this logic to checkboxes +// TODO: Convert this logic to checkboxes +// TODO: Add loading button for join workspace const OnBoard: NextPage = () => { const [invitationsRespond, setInvitationsRespond] = useState([]); @@ -81,12 +83,23 @@ const OnBoard: NextPage = () => { .joinWorkspaces({ invitations: invitationsRespond }) .then(() => { mutate("USER_WORKSPACES"); - setIsJoiningWorkspaces(false); const firstInviteId = invitationsRespond[0]; const redirectWorkspace = invitations?.find((i) => i.id === firstInviteId)?.workspace; - router.push(`/${redirectWorkspace?.slug}`); + userService + .updateUser({ last_workspace_id: redirectWorkspace?.id }) + .then(() => { + setIsJoiningWorkspaces(false); + router.push(`/${redirectWorkspace?.slug}`); + }) + .catch(() => { + // todo: add toast message + setIsJoiningWorkspaces(false); + }); }) - .catch(() => setIsJoiningWorkspaces(false)); + .catch(() => { + // todo: add toast message + setIsJoiningWorkspaces(false); + }); }; return ( From d0be94fb4fad19c2d1ea0ef57503bca47a2f1f48 Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Sun, 27 Aug 2023 20:13:35 +0530 Subject: [PATCH 4/4] adding error toast --- apps/app/pages/invitations.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/apps/app/pages/invitations.tsx b/apps/app/pages/invitations.tsx index 6185f1b88b4..8e823b45072 100644 --- a/apps/app/pages/invitations.tsx +++ b/apps/app/pages/invitations.tsx @@ -35,9 +35,6 @@ import { USER_WORKSPACE_INVITATIONS } from "constants/fetch-keys"; import { ROLE } from "constants/workspace"; import userService from "services/user.service"; -// TODO: Convert this logic to checkboxes -// TODO: Add loading button for join workspace - const OnBoard: NextPage = () => { const [invitationsRespond, setInvitationsRespond] = useState([]); const [isJoiningWorkspaces, setIsJoiningWorkspaces] = useState(false); @@ -92,12 +89,20 @@ const OnBoard: NextPage = () => { router.push(`/${redirectWorkspace?.slug}`); }) .catch(() => { - // todo: add toast message + setToastAlert({ + type: "error", + title: "Error!", + message: "Something went wrong, Please try again.", + }); setIsJoiningWorkspaces(false); }); }) .catch(() => { - // todo: add toast message + setToastAlert({ + type: "error", + title: "Error!", + message: "Something went wrong, Please try again.", + }); setIsJoiningWorkspaces(false); }); }; @@ -183,6 +188,7 @@ const OnBoard: NextPage = () => { size="md" onClick={submitInvitations} disabled={isJoiningWorkspaces || invitationsRespond.length === 0} + loading={isJoiningWorkspaces} > Accept & Join