83 lines
3.1 KiB
TypeScript
83 lines
3.1 KiB
TypeScript
import { Route, Routes } from 'react-router-dom';
|
|
import { Introduction } from "./views/Introduction/Introduction";
|
|
import { CreateSeed } from './views/CreateSeed/CreateSeed';
|
|
import { Lockscreen } from './views/Lockscreen/Lockscreen';
|
|
import { ConfirmSeed } from './views/ConfirmSeed/ConfirmSeed';
|
|
import { SetPassword } from './views/SetPassword/SetPassword';
|
|
import { Main } from './views/Main/Main';
|
|
import { ExistsSeed } from './views/ExistsSeed/ExistsSeed';
|
|
import { Box, Divider } from '@mantine/core';
|
|
import './style.css'
|
|
import { useRosettaColors } from './hooks/useRosettaColors';
|
|
import { Buffer } from 'buffer';
|
|
import { InformationProvider } from './providers/InformationProvider/InformationProvider';
|
|
import { BlacklistProvider } from './providers/BlacklistProvider/BlacklistProvider';
|
|
import { useAccountProvider } from './providers/AccountProvider/useAccountProvider';
|
|
import { ImageViwerProvider } from './providers/ImageViewerProvider/ImageViewerProvider';
|
|
import { AvatarProvider } from './providers/AvatarProvider/AvatarProvider';
|
|
import { Topbar } from './components/Topbar/Topbar';
|
|
import { ContextMenuProvider } from './providers/ContextMenuProvider/ContextMenuProvider';
|
|
import { SettingsProvider } from './providers/SettingsProvider/SettingsProvider';
|
|
import { DialogListProvider } from './providers/DialogListProvider/DialogListProvider';
|
|
import { DialogStateProvider } from './providers/DialogStateProvider.tsx/DialogStateProvider';
|
|
import { DeviceConfirm } from './views/DeviceConfirm/DeviceConfirm';
|
|
window.Buffer = Buffer;
|
|
|
|
export default function App() {
|
|
const { allAccounts, accountProviderLoaded } = useAccountProvider();
|
|
const colors = useRosettaColors();
|
|
|
|
|
|
const getViewByLoginState = () => {
|
|
if (!accountProviderLoaded) {
|
|
return <></>
|
|
}
|
|
if (allAccounts.length <= 0) {
|
|
/**
|
|
* Если аккаунтов нет
|
|
*/
|
|
return <Introduction />
|
|
}
|
|
if (allAccounts.length > 0) {
|
|
/**
|
|
* Если есть аккаунт, но только один
|
|
*/
|
|
return <Lockscreen />
|
|
}
|
|
return <Introduction></Introduction>
|
|
}
|
|
|
|
return (
|
|
<InformationProvider>
|
|
<DialogStateProvider>
|
|
<DialogListProvider>
|
|
<BlacklistProvider>
|
|
<SettingsProvider>
|
|
<Box h={'100%'}>
|
|
<Topbar></Topbar>
|
|
<Divider color={colors.borderColor}></Divider>
|
|
<ContextMenuProvider>
|
|
<ImageViwerProvider>
|
|
<AvatarProvider>
|
|
<Routes>
|
|
<Route path="/" element={
|
|
getViewByLoginState()
|
|
} />
|
|
<Route path="/create-seed" element={<CreateSeed />} />
|
|
<Route path="/confirm-seed" element={<ConfirmSeed />} />
|
|
<Route path="/set-password" element={<SetPassword />} />
|
|
<Route path="/main/*" element={<Main />} />
|
|
<Route path="/exists-seed" element={<ExistsSeed />} />
|
|
<Route path="/deviceconfirm" element={<DeviceConfirm />} />
|
|
</Routes>
|
|
</AvatarProvider>
|
|
</ImageViwerProvider>
|
|
</ContextMenuProvider>
|
|
</Box>
|
|
</SettingsProvider>
|
|
</BlacklistProvider>
|
|
</DialogListProvider>
|
|
</DialogStateProvider>
|
|
</InformationProvider>
|
|
);
|
|
} |