/
anv
/
hackathon
Обзор
Документация
Войти
/
anv
/
hackathon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main.tsx
50 строк
1 KB
ANV
added remote app
29 мар 2025, 01:31
29 мар 2025, 01:31
2a995d5
Код
Авторство
О чём код?
import React, {lazy, useEffect, useState} from 'react'; import ReactDOM from 'react-dom/client'; import '@gravity-ui/uikit/styles/fonts.css'; import '@gravity-ui/uikit/styles/styles.css'; import './styles/custom.css'; import './styles/globals.scss'; import App from './App'; import {BrowserRouter, Route, Routes} from 'react-router-dom'; import {LoadingPage} from './components/LoadingPage/LoadingPage'; const loadRemote = () => import('remoteApp/App') .then((module) => module) .catch(() => { throw new Error('Remote module failed to load'); }); const Remote = lazy(loadRemote); const RemoteWrapper = () => { const [loading, setLoading] = useState(true); const [hasError, setHasError] = useState(false); useEffect(() => { loadRemote() .then(() => setLoading(false)) .catch(() => { setLoading(false); setHasError(true); }); }, []); if (loading || hasError) { return <LoadingPage />; } return <Remote />; }; const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); root.render( <React.StrictMode> <BrowserRouter> <Routes> <Route path="/" element={<App />} /> <Route path="/remote" element={<RemoteWrapper />} /> </Routes> </BrowserRouter> </React.StrictMode>, );