Refine the default system settings structure and model pricing editor so pricing configuration is easier to scan and edit.
63 lines
1.9 KiB
TypeScript
Vendored
63 lines
1.9 KiB
TypeScript
Vendored
import { useNavigate, useRouter } from '@tanstack/react-router'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { cn } from '@/lib/utils'
|
|
import { Button } from '@/components/ui/button'
|
|
|
|
const FEEDBACK_URL = 'https://github.com/QuantumNous/new-api/issues'
|
|
|
|
type GeneralErrorProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
minimal?: boolean
|
|
}
|
|
|
|
export function GeneralError({
|
|
className,
|
|
minimal = false,
|
|
}: GeneralErrorProps) {
|
|
const { t } = useTranslation()
|
|
const navigate = useNavigate()
|
|
const { history } = useRouter()
|
|
return (
|
|
<div className={cn('h-svh w-full', className)}>
|
|
<div className='m-auto flex h-full w-full flex-col items-center justify-center gap-2'>
|
|
{!minimal && (
|
|
<h1 className='text-[7rem] leading-tight font-bold'>500</h1>
|
|
)}
|
|
<span className='font-medium'>
|
|
{t('Oops! Something went wrong')} {`:')`}
|
|
</span>
|
|
<p className='text-muted-foreground text-center'>
|
|
{t('We apologize for the inconvenience.')} <br />{' '}
|
|
{t('Please try again later.')}
|
|
</p>
|
|
{!minimal && (
|
|
<p className='text-muted-foreground text-center text-sm'>
|
|
{t('If this keeps happening, please report it on GitHub Issues.')}
|
|
</p>
|
|
)}
|
|
{!minimal && (
|
|
<div className='mt-6 flex flex-wrap justify-center gap-4'>
|
|
<Button variant='outline' onClick={() => history.go(-1)}>
|
|
{t('Go Back')}
|
|
</Button>
|
|
<Button
|
|
variant='outline'
|
|
render={
|
|
<a
|
|
href={FEEDBACK_URL}
|
|
target='_blank'
|
|
rel='noopener noreferrer'
|
|
/>
|
|
}
|
|
>
|
|
{t('Report an issue')}
|
|
</Button>
|
|
<Button onClick={() => navigate({ to: '/' })}>
|
|
{t('Back to Home')}
|
|
</Button>
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|