fix(): include workspace in reset password flow (#10617)

Fix #10586
This commit is contained in:
Antoine Moreaux
2025-03-03 16:47:33 +01:00
committed by GitHub
parent b8d944bd6e
commit 2325e0ae0f
13 changed files with 186 additions and 90 deletions

View File

@ -1,50 +1,12 @@
import { useRecoilValue } from 'recoil';
import { Button, H2Title } from 'twenty-ui';
import { currentUserState } from '@/auth/states/currentUserState';
import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar';
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
import { useLingui } from '@lingui/react/macro';
import { useEmailPasswordResetLinkMutation } from '~/generated/graphql';
import { useHandleResetPassword } from '@/auth/sign-in-up/hooks/useHandleResetPassword';
export const ChangePassword = () => {
const { t } = useLingui();
const { enqueueSnackBar } = useSnackBar();
const currentUser = useRecoilValue(currentUserState);
const [emailPasswordResetLink] = useEmailPasswordResetLinkMutation();
const handlePasswordResetClick = async () => {
if (!currentUser?.email) {
enqueueSnackBar(t`Invalid email`, {
variant: SnackBarVariant.Error,
});
return;
}
try {
const { data } = await emailPasswordResetLink({
variables: {
email: currentUser.email,
},
});
if (data?.emailPasswordResetLink?.success === true) {
enqueueSnackBar(t`Password reset link has been sent to the email`, {
variant: SnackBarVariant.Success,
});
} else {
enqueueSnackBar(t`There was an issue`, {
variant: SnackBarVariant.Error,
});
}
} catch (error) {
enqueueSnackBar((error as Error).message, {
variant: SnackBarVariant.Error,
});
}
};
const { handleResetPassword } = useHandleResetPassword();
return (
<>
@ -53,7 +15,7 @@ export const ChangePassword = () => {
description={t`Receive an email containing password update link`}
/>
<Button
onClick={handlePasswordResetClick}
onClick={handleResetPassword()}
variant="secondary"
title={t`Change Password`}
/>