Files
myeasycms-v2/apps/web/app/auth/callback/error/page.tsx
giancarlo 667f9cbb57 Integrate i18n into AuthCallbackErrorPage
Added i18n support to the AuthCallbackErrorPage. This ensures consistent internationalization and localization across all pages, helping deliver proper error messages in different languages.
2024-04-19 15:54:24 +08:00

52 lines
1.3 KiB
TypeScript

import Link from 'next/link';
import { redirect } from 'next/navigation';
import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert';
import { Button } from '@kit/ui/button';
import { Trans } from '@kit/ui/trans';
import pathsConfig from '~/config/paths.config';
import { withI18n } from '~/lib/i18n/with-i18n';
interface Params {
searchParams: {
error: string;
invite_token: string;
};
}
function AuthCallbackErrorPage({ searchParams }: Params) {
const { error, invite_token } = searchParams;
const queryParam = invite_token ? `?invite_token=${invite_token}` : '';
const signInPath = pathsConfig.auth.signIn + queryParam;
// if there is no error, redirect the user to the sign-in page
if (!error) {
redirect(signInPath);
}
return (
<div className={'flex flex-col space-y-4 py-4'}>
<div>
<Alert variant={'destructive'}>
<AlertTitle>
<Trans i18nKey={'auth:authenticationErrorAlertHeading'} />
</AlertTitle>
<AlertDescription>
<Trans i18nKey={error} />
</AlertDescription>
</Alert>
</div>
<Button>
<Link href={signInPath}>
<Trans i18nKey={'auth:signIn'} />
</Link>
</Button>
</div>
);
}
export default withI18n(AuthCallbackErrorPage);