54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
|
|
import React from 'react';
|
||
|
|
import { createRoot } from 'react-dom/client';
|
||
|
|
import { HashRouter } from 'react-router-dom';
|
||
|
|
import { NetworkService } from './src/api/request.ts';
|
||
|
|
import { useIpStore } from './src/store';
|
||
|
|
import { useEffect } from 'react';
|
||
|
|
import { useAdminStore } from './src/store/adminStore.ts';
|
||
|
|
import {useCheckAdmin} from './src/utils/checkAdmin.ts'
|
||
|
|
|
||
|
|
import {
|
||
|
|
ModalProvider,
|
||
|
|
useModalContext,
|
||
|
|
ThemeProvider
|
||
|
|
} from './src/store';
|
||
|
|
|
||
|
|
import WindowComponent from './src/components/modalwindows/modalWindow.tsx';
|
||
|
|
import Router from './src/router.tsx';
|
||
|
|
|
||
|
|
const MainComponent = () => {
|
||
|
|
|
||
|
|
const checkAdmin = useCheckAdmin()
|
||
|
|
const {ipAddress} = useIpStore()
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
const checkAdminStatus = async () => {
|
||
|
|
await checkAdmin()
|
||
|
|
}
|
||
|
|
checkAdminStatus()
|
||
|
|
}, [ipAddress])
|
||
|
|
|
||
|
|
|
||
|
|
const { isOpen, modalType, modalData } = useModalContext();
|
||
|
|
return (
|
||
|
|
<>
|
||
|
|
<WindowComponent isOpen={isOpen} type={modalType} data={modalData} />
|
||
|
|
<Router />
|
||
|
|
</>
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
const container = document.getElementById('root');
|
||
|
|
if (!container) {
|
||
|
|
throw new Error('Root element with id "root" not found');
|
||
|
|
}
|
||
|
|
const root = createRoot(container);
|
||
|
|
root.render(
|
||
|
|
<ThemeProvider>
|
||
|
|
<HashRouter>
|
||
|
|
<ModalProvider>
|
||
|
|
<MainComponent />
|
||
|
|
</ModalProvider>
|
||
|
|
</HashRouter>
|
||
|
|
</ThemeProvider>
|
||
|
|
);
|