3v324v23's picture
feat: BYOK modal - visitors enter their own Groq key, stored in sessionStorage, auto-deleted on tab close
9c34cbf
Raw
History Blame Contribute Delete
1.05 kB
/**
* @license
* SPDX-License-Identifier: Apache-2.0
*/
import { useState } from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Home from './pages/Home';
import Studio from './pages/Studio';
import KeySetupModal from './components/KeySetupModal';
export default function App() {
// WHAT: Gate the app behind the key setup modal.
// WHY: We want every visitor to see the BYOK instructions before hitting /generate.
// Once they set a key (or skip), `ready` flips to true and the app loads normally.
const [ready, setReady] = useState(false);
return (
<>
{/* Show the key setup modal on every fresh session */}
<KeySetupModal onReady={() => setReady(true)} />
{/* Only render routes once the user has dismissed the modal */}
{ready && (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/studio/:jobId" element={<Studio />} />
</Routes>
</BrowserRouter>
)}
</>
);
}