Files
AetherForge/server/web/src/main.tsx
AetherForge feba06e008 Improve portable launch, forge persistence, and operator auth UX.
Persist build extra_files for Build Manager history, print dashboard login on every start, add libp2p for Mesh P2P forge, defer WebSocket until login, and split devrun.bat from LAUNCH.bat with USB deck auto-detection.
2026-05-31 18:56:43 -07:00

31 lines
1.0 KiB
TypeScript

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import App from './App';
import { routerFuture } from './routerFuture';
import ErrorBoundary from './components/ErrorBoundary';
import './styles/global.css';
import './styles/steampunk-theme.css';
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<ErrorBoundary
fallback={
<div className="session-gate">
<div className="session-gate-card card">
<h1 className="font-display">AetherForge</h1>
<p className="form-hint">The dashboard failed to load. Hard-refresh (Ctrl+Shift+R) or clear site data for this host.</p>
<button type="button" className="btn btn-primary" onClick={() => window.location.reload()}>
Reload
</button>
</div>
</div>
}
>
<BrowserRouter future={routerFuture}>
<App />
</BrowserRouter>
</ErrorBoundary>
</React.StrictMode>
);