Skip to content

Commit

Permalink
fix(core): should log in before accepting the invitation (#9150)
Browse files Browse the repository at this point in the history
  • Loading branch information
JimmFly committed Dec 13, 2024
1 parent 293a155 commit 0de7782
Showing 1 changed file with 17 additions and 23 deletions.
40 changes: 17 additions & 23 deletions packages/frontend/core/src/desktop/pages/invite/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,50 +25,44 @@ const AcceptInvite = ({
}: {
inviteInfo: GetInviteInfoQuery['getInviteInfo'];
}) => {
const { jumpToPage } = useNavigateHelper();

const openWorkspace = useCallback(() => {
jumpToPage(inviteInfo.workspace.id, 'all', RouteLogic.REPLACE);
}, [inviteInfo.workspace.id, jumpToPage]);

return (
<AcceptInvitePage inviteInfo={inviteInfo} onOpenWorkspace={openWorkspace} />
);
};

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();
const { jumpToPage } = useNavigateHelper();

const openWorkspace = useCallback(() => {
jumpToPage(inviteInfo.workspace.id, 'all', RouteLogic.REPLACE);
}, [inviteInfo.workspace.id, jumpToPage]);

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 (
<AcceptInvitePage
inviteInfo={inviteInfo}
onOpenWorkspace={openWorkspace}
/>
);
return <Middle />;
}

return null;
};

export const Component = () => {
export const Middle = () => {
const graphqlService = useService(GraphQLService);
const params = useParams<{ inviteId: string }>();
const navigateHelper = useNavigateHelper();
Expand Down

0 comments on commit 0de7782

Please sign in to comment.