* ESLint rule: only take explicit boolean predicates in if statements Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Merge main Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix frontend linter errors Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix jest Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Refactor according to review Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> * Fix lint on new code Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br> --------- Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { useCallback } from 'react';
|
|
import { useNavigate } from 'react-router-dom';
|
|
import { useRecoilValue } from 'recoil';
|
|
|
|
import { CurrentWorkspace } from '@/auth/states/currentWorkspaceState.ts';
|
|
import { billingState } from '@/client-config/states/billingState.ts';
|
|
import { AppPath } from '@/types/AppPath.ts';
|
|
import { WorkspaceMember } from '~/generated/graphql.tsx';
|
|
|
|
export const useNavigateAfterSignInUp = () => {
|
|
const navigate = useNavigate();
|
|
const billing = useRecoilValue(billingState);
|
|
const navigateAfterSignInUp = useCallback(
|
|
(
|
|
currentWorkspace: CurrentWorkspace,
|
|
currentWorkspaceMember: WorkspaceMember | null,
|
|
) => {
|
|
if (
|
|
billing?.isBillingEnabled === true &&
|
|
!['active', 'trialing'].includes(currentWorkspace.subscriptionStatus)
|
|
) {
|
|
navigate(AppPath.PlanRequired);
|
|
return;
|
|
}
|
|
|
|
if (currentWorkspace.activationStatus !== 'active') {
|
|
navigate(AppPath.CreateWorkspace);
|
|
return;
|
|
}
|
|
|
|
if (
|
|
!currentWorkspaceMember?.name.firstName ||
|
|
!currentWorkspaceMember?.name.lastName
|
|
) {
|
|
navigate(AppPath.CreateProfile);
|
|
return;
|
|
}
|
|
|
|
navigate(AppPath.Index);
|
|
},
|
|
[billing, navigate],
|
|
);
|
|
return { navigateAfterSignInUp };
|
|
};
|