52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import Link from 'next/link';
|
|
|
|
import { PasswordResetRequestContainer } from '@kit/auth/password-reset';
|
|
import { pathsConfig } from '@kit/shared/config';
|
|
import { Button } from '@kit/ui/button';
|
|
import { Heading } from '@kit/ui/heading';
|
|
import { Trans } from '@kit/ui/trans';
|
|
|
|
import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
|
|
import { withI18n } from '~/lib/i18n/with-i18n';
|
|
|
|
export const generateMetadata = async () => {
|
|
const { t } = await createI18nServerInstance();
|
|
|
|
return {
|
|
title: t('auth:passwordResetLabel'),
|
|
};
|
|
};
|
|
|
|
const { callback, passwordUpdate, signIn } = pathsConfig.auth;
|
|
const redirectPath = `${callback}?next=${passwordUpdate}`;
|
|
|
|
function PasswordResetPage() {
|
|
return (
|
|
<>
|
|
<div className={'flex flex-col items-center gap-1'}>
|
|
<Heading level={4} className={'tracking-tight'}>
|
|
<Trans i18nKey={'auth:passwordResetLabel'} />
|
|
</Heading>
|
|
|
|
<p className={'text-muted-foreground text-sm'}>
|
|
<Trans i18nKey={'auth:passwordResetSubheading'} />
|
|
</p>
|
|
</div>
|
|
|
|
<div className={'flex flex-col space-y-4'}>
|
|
<PasswordResetRequestContainer redirectPath={redirectPath} />
|
|
|
|
<div className={'flex justify-center text-xs'}>
|
|
<Button asChild variant={'link'} size={'sm'}>
|
|
<Link href={signIn}>
|
|
<Trans i18nKey={'auth:passwordRecoveredQuestion'} />
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default withI18n(PasswordResetPage);
|