From 0de7782c9b6cc03ffba7cc8624d475de54406a05 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Fri, 13 Dec 2024 09:44:32 +0000 Subject: [PATCH] fix(core): should log in before accepting the invitation (#9150) --- .../core/src/desktop/pages/invite/index.tsx | 48 ++++++++----------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/packages/frontend/core/src/desktop/pages/invite/index.tsx b/packages/frontend/core/src/desktop/pages/invite/index.tsx index e8f4ad98e..2f97fe26e 100644 --- a/packages/frontend/core/src/desktop/pages/invite/index.tsx +++ b/packages/frontend/core/src/desktop/pages/invite/index.tsx @@ -25,50 +25,44 @@ const AcceptInvite = ({ }: { inviteInfo: GetInviteInfoQuery['getInviteInfo']; }) => { - const authService = useService(AuthService); - const isRevalidating = useLiveData(authService.session.isRevalidating$); - const loginStatus = useLiveData(authService.session.status$); - - useEffect(() => { - authService.session.revalidate(); - }, [authService]); - - const { jumpToSignIn } = useNavigateHelper(); const { jumpToPage } = useNavigateHelper(); const openWorkspace = useCallback(() => { jumpToPage(inviteInfo.workspace.id, 'all', RouteLogic.REPLACE); }, [inviteInfo.workspace.id, jumpToPage]); + return ( + + ); +}; + +export const Component = () => { + const authService = useService(AuthService); + const isRevalidating = useLiveData(authService.session.isRevalidating$); + const loginStatus = useLiveData(authService.session.status$); + const params = useParams<{ inviteId: string }>(); + + useEffect(() => { + authService.session.revalidate(); + }, [authService]); + + const { jumpToSignIn } = useNavigateHelper(); + useEffect(() => { if (loginStatus === 'unauthenticated' && !isRevalidating) { // We can not pass function to navigate state, so we need to save it in atom - jumpToSignIn( - `/workspace/${inviteInfo.workspace.id}/all`, - RouteLogic.REPLACE - ); + jumpToSignIn(`/invite/${params.inviteId}`, RouteLogic.REPLACE); } - }, [ - inviteInfo.workspace.id, - isRevalidating, - jumpToSignIn, - loginStatus, - openWorkspace, - ]); + }, [isRevalidating, jumpToSignIn, loginStatus, params.inviteId]); if (loginStatus === 'authenticated') { - return ( - - ); + return ; } return null; }; -export const Component = () => { +export const Middle = () => { const graphqlService = useService(GraphQLService); const params = useParams<{ inviteId: string }>(); const navigateHelper = useNavigateHelper();