Version 3 of the kit: - Radix UI replaced with Base UI (using the Shadcn UI patterns) - next-intl replaces react-i18next - enhanceAction deprecated; usage moved to next-safe-action - main layout now wrapped with [locale] path segment - Teams only mode - Layout updates - Zod v4 - Next.js 16.2 - Typescript 6 - All other dependencies updated - Removed deprecated Edge CSRF - Dynamic Github Action runner
49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
'use client';
|
|
|
|
import { TriangleAlert } from 'lucide-react';
|
|
|
|
import { useCaptureException } from '@kit/monitoring/hooks';
|
|
import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert';
|
|
import { AppBreadcrumbs } from '@kit/ui/app-breadcrumbs';
|
|
import { Button } from '@kit/ui/button';
|
|
import { PageBody, PageHeader } from '@kit/ui/page';
|
|
import { Trans } from '@kit/ui/trans';
|
|
|
|
export default function BillingErrorPage({
|
|
error,
|
|
reset,
|
|
}: {
|
|
error: Error & { digest?: string };
|
|
reset: () => void;
|
|
}) {
|
|
useCaptureException(error);
|
|
|
|
return (
|
|
<>
|
|
<PageHeader description={<AppBreadcrumbs />} />
|
|
|
|
<PageBody>
|
|
<div className={'flex flex-col space-y-4'}>
|
|
<Alert variant={'destructive'}>
|
|
<TriangleAlert className={'h-4'} />
|
|
|
|
<AlertTitle>
|
|
<Trans i18nKey={'billing.planPickerAlertErrorTitle'} />
|
|
</AlertTitle>
|
|
|
|
<AlertDescription>
|
|
<Trans i18nKey={'billing.planPickerAlertErrorDescription'} />
|
|
</AlertDescription>
|
|
</Alert>
|
|
|
|
<div>
|
|
<Button variant={'outline'} onClick={reset}>
|
|
<Trans i18nKey={'common.retry'} />
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</PageBody>
|
|
</>
|
|
);
|
|
}
|