2023-03-09 09:08:42 -05:00
|
|
|
import { OpenSplatnet } from 'components/OpenSplatnet';
|
2023-03-08 16:36:14 -05:00
|
|
|
import { LogPanel, RunPanel } from 'components/RunPanel';
|
2023-03-06 15:32:09 -05:00
|
|
|
import { STAT_INK } from 'constant';
|
2024-01-30 05:54:51 -05:00
|
|
|
import React, { Suspense } from 'react'
|
2023-03-06 07:21:29 -05:00
|
|
|
import { useTranslation } from 'react-i18next';
|
2024-01-30 05:54:51 -05:00
|
|
|
import { Link } from 'react-router-dom';
|
|
|
|
|
import { ErrorBoundary } from 'react-error-boundary';
|
|
|
|
|
import { FallbackComponent } from 'components/ErrorContent';
|
|
|
|
|
import { Loading } from 'components/Loading';
|
2023-03-04 08:10:30 -05:00
|
|
|
|
2023-03-06 07:21:29 -05:00
|
|
|
export const Home: React.FC = () => {
|
|
|
|
|
const { t } = useTranslation();
|
2023-03-03 09:06:14 -05:00
|
|
|
|
2024-01-30 05:54:51 -05:00
|
|
|
return <ErrorBoundary FallbackComponent={FallbackComponent}>
|
|
|
|
|
<Suspense fallback={<Loading />}>
|
|
|
|
|
<div className='flex p-2 w-full h-full gap-2'>
|
|
|
|
|
<div className='max-w-full h-full md:max-w-sm flex-auto'>
|
|
|
|
|
<div className='flex flex-col gap-2 h-full'>
|
|
|
|
|
<LogPanel className='sm:hidden flex-auto' />
|
|
|
|
|
<RunPanel />
|
|
|
|
|
<Link to='/settings' className='btn'>{t('设置')}</Link>
|
|
|
|
|
<div className='flex gap-2 flex-auto-all'>
|
|
|
|
|
<OpenSplatnet>{t('打开鱿鱼圈3')}</OpenSplatnet>
|
|
|
|
|
<a className='btn w-full' href={STAT_INK} target='_blank' rel='noreferrer'>{t('前往 stat.ink')}</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-03-09 06:33:32 -05:00
|
|
|
</div>
|
2024-01-30 05:54:51 -05:00
|
|
|
<LogPanel className='hidden sm:block flex-1' />
|
2023-03-06 15:32:09 -05:00
|
|
|
</div>
|
2024-01-30 05:54:51 -05:00
|
|
|
</Suspense>
|
|
|
|
|
</ErrorBoundary>
|
2023-03-04 06:19:24 -05:00
|
|
|
}
|