A checkbox has been added for user acceptance of terms and conditions during sign-up. This change includes adding a new adjustable flag in the configuration to control the display of the checkbox. A new file "terms-and-conditions-form-field.tsx" is added to handle the checkbox UI part. Also, localization support has been added for the feature.
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import Link from 'next/link';
|
|
|
|
import { SignUpMethodsContainer } from '@kit/auth/sign-up';
|
|
import { Button } from '@kit/ui/button';
|
|
import { Heading } from '@kit/ui/heading';
|
|
import { Trans } from '@kit/ui/trans';
|
|
|
|
import authConfig from '~/config/auth.config';
|
|
import pathsConfig from '~/config/paths.config';
|
|
import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
|
|
import { withI18n } from '~/lib/i18n/with-i18n';
|
|
|
|
export const generateMetadata = async () => {
|
|
const i18n = await createI18nServerInstance();
|
|
|
|
return {
|
|
title: i18n.t('auth:signUp'),
|
|
};
|
|
};
|
|
|
|
interface Props {
|
|
searchParams: {
|
|
invite_token?: string;
|
|
};
|
|
}
|
|
|
|
const paths = {
|
|
callback: pathsConfig.auth.callback,
|
|
appHome: pathsConfig.app.home,
|
|
};
|
|
|
|
function SignUpPage({ searchParams }: Props) {
|
|
const inviteToken = searchParams.invite_token;
|
|
|
|
const signInPath =
|
|
pathsConfig.auth.signIn +
|
|
(inviteToken ? `?invite_token=${inviteToken}` : '');
|
|
|
|
return (
|
|
<>
|
|
<Heading level={4}>
|
|
<Trans i18nKey={'auth:signUpHeading'} />
|
|
</Heading>
|
|
|
|
<SignUpMethodsContainer
|
|
providers={authConfig.providers}
|
|
displayTermsCheckbox={authConfig.displayTermsCheckbox}
|
|
inviteToken={inviteToken}
|
|
paths={paths}
|
|
/>
|
|
|
|
<div className={'justify-centers flex'}>
|
|
<Button asChild variant={'link'} size={'sm'}>
|
|
<Link href={signInPath}>
|
|
<Trans i18nKey={'auth:alreadyHaveAnAccount'} />
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default withI18n(SignUpPage);
|