// app/screen-login.jsx — token-paste login, a quote from your own notes // overlaid on photography. Responsive across desktop / tablet / mobile. function LoginScreen() { const { login, layout, state, set } = useApp(); const [token, setToken] = React.useState(''); const [busy, setBusy] = React.useState(false); const isMobile = layout === 'mobile'; const err = state.loginError; // Bearer auth is enforced on the live API: a wrong token rejects and login() // keeps us on this screen with state.loginError set. Submit clears any prior // error, shows a checking state, and lets the store decide success/failure. const submit = async (t) => { if (busy) return; if (err) set({ loginError: null }); setBusy(true); await login(t); setBusy(false); // on success this screen has already unmounted }; const photo = (
“Doubled the garlic last time — better. Save the poaching liquid; it's practically stock.”
Paste your cookbook token to unlock your library. This is your kitchen — not a SaaS gateway. Magic-link sign-in lands with multi-user.