mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 16:21:41 +00:00
update
This commit is contained in:
parent
aa92bb3356
commit
7eb6a6cab5
133
src/ts/pages/index.tsx
Normal file
133
src/ts/pages/index.tsx
Normal file
|
@ -0,0 +1,133 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { Route, Routes } from 'react-router-dom';
|
||||
import { observer } from 'mobx-react-lite';
|
||||
|
||||
import dataGripStore, { DataParseStatusEnum } from 'ts/store/DataGrip';
|
||||
import DropZone from 'ts/components/DropZone';
|
||||
import Sponsor from 'ts/components/Sponsor';
|
||||
import SplashScreen from 'ts/components/SplashScreen';
|
||||
import Confirm from 'ts/components/ModalWindow/Confirm';
|
||||
|
||||
import PageWrapper from './PageWrapper';
|
||||
import Team from './Team/index';
|
||||
import Person from './Person/index';
|
||||
import PrintAll from './PrintAll/index';
|
||||
import Welcome from './Welcome/index';
|
||||
import Settings from './Settings/index';
|
||||
import DebugPage from './Debug/index';
|
||||
|
||||
interface IViewWithChartsProps {
|
||||
showSplashScreen: boolean;
|
||||
}
|
||||
|
||||
function ViewWithCharts({ showSplashScreen }: IViewWithChartsProps) {
|
||||
return (
|
||||
<>
|
||||
<Sponsor />
|
||||
<Confirm />
|
||||
<Routes>
|
||||
<Route
|
||||
path="/settings"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<Settings />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
<Route
|
||||
path="/debug"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<DebugPage />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
<Route
|
||||
path="/print"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<PrintAll />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
<Route
|
||||
path="/:type/:page"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<Team />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
<Route
|
||||
path="/:type/:page/:userId"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<Person />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
<Route
|
||||
path="*"
|
||||
element={(
|
||||
<PageWrapper>
|
||||
<Team />
|
||||
</PageWrapper>
|
||||
)}
|
||||
/>
|
||||
</Routes>
|
||||
{showSplashScreen && <SplashScreen />}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function ViewWithWelcome() {
|
||||
return (
|
||||
<Routes>
|
||||
<Route
|
||||
path="*"
|
||||
element={(
|
||||
<Welcome />
|
||||
)}
|
||||
/>
|
||||
</Routes>
|
||||
);
|
||||
}
|
||||
|
||||
const Main = observer(() => {
|
||||
const [showSplashScreen, setShowSplashScreen] = useState<boolean>(true);
|
||||
const status = dataGripStore.status;
|
||||
|
||||
useEffect(() => {
|
||||
// @ts-ignore
|
||||
dataGripStore.setCommits(window?.report || []);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (status !== DataParseStatusEnum.DONE || window.location.hash) return;
|
||||
window.location.hash = '#/team/total';
|
||||
}, [status]);
|
||||
|
||||
if (status === DataParseStatusEnum.PROCESSING) return null;
|
||||
|
||||
return (
|
||||
<>
|
||||
{status === DataParseStatusEnum.DONE && (
|
||||
<ViewWithCharts showSplashScreen={showSplashScreen} />
|
||||
)}
|
||||
{status === DataParseStatusEnum.WAITING && (
|
||||
<ViewWithWelcome />
|
||||
)}
|
||||
<DropZone
|
||||
onChange={(type: string, data: any[]) => {
|
||||
setShowSplashScreen(false);
|
||||
if (type === 'dump') dataGripStore.setCommits(data);
|
||||
setTimeout(() => {
|
||||
setShowSplashScreen(true);
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
});
|
||||
|
||||
export default Main;
|
Loading…
Reference in a new issue