43 lines
No EOL
1.2 KiB
TypeScript
43 lines
No EOL
1.2 KiB
TypeScript
import { Routes, Route, Outlet } from 'react-router-dom';
|
|
import WorkSpace from './components/workSpace/workSpace';
|
|
import { useIpStore } from './store';
|
|
import { useEffect, useState } from 'react';
|
|
import { NetworkService } from './api/request';
|
|
import { CreateUser } from './components/register';
|
|
import RouterLoader from './components/UI/routerLoader';
|
|
|
|
export default function Router() {
|
|
|
|
const { ipAddress } = useIpStore();
|
|
const [configExists, setConfigExists] = useState<boolean | null>(null);
|
|
|
|
useEffect(() => {
|
|
const fetchServerConf = async () => {
|
|
try {
|
|
let response = await NetworkService.checkServerConf(ipAddress);
|
|
if(response.status === 200) {
|
|
setConfigExists(response.data.has_users);
|
|
}
|
|
} catch (error) {
|
|
console.error('Error checking server config:', error);
|
|
setConfigExists(false);
|
|
}
|
|
};
|
|
|
|
fetchServerConf();
|
|
}, [ipAddress]);
|
|
|
|
if (configExists === null) {
|
|
return <RouterLoader loaderText='Идёт загрузка данных'/>
|
|
}
|
|
|
|
if (configExists === false) {
|
|
return <CreateUser/>;
|
|
}
|
|
|
|
return (
|
|
<Routes>
|
|
<Route path='/' element={<WorkSpace />} />
|
|
</Routes>
|
|
);
|
|
} |