| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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>
- )
- }
|