Files
viral_project/openshorts/dashboard/src/main.jsx
T

40 lines
1.1 KiB
React

import { StrictMode, useState, useEffect } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.jsx'
import Landing from './Landing.jsx'
import Legal from './Legal.jsx'
function Root() {
const resolveView = () => {
const hash = window.location.hash;
if (hash === '#legal') return 'legal';
if (hash === '#app' || localStorage.getItem('openshorts_skip_landing') === '1') return 'app';
return 'landing';
};
const [view, setView] = useState(resolveView);
useEffect(() => {
const handleHashChange = () => setView(resolveView());
window.addEventListener('hashchange', handleHashChange);
return () => window.removeEventListener('hashchange', handleHashChange);
}, []);
const handleLaunchApp = () => {
localStorage.setItem('openshorts_skip_landing', '1');
window.location.hash = '#app';
setView('app');
};
if (view === 'legal') return <Legal />;
if (view === 'app') return <App />;
return <Landing onLaunchApp={handleLaunchApp} />;
}
createRoot(document.getElementById('root')).render(
<StrictMode>
<Root />
</StrictMode>,
)