Photo slots + admin page: place any upload in the strip or a live slot, sign up in place, brand links home

This commit is contained in:
2026-09-18 07:55:54 +07:00
parent bd2f08aaf7
commit 7b79e49c20
11 changed files with 320 additions and 77 deletions
+3 -2
View File
@@ -290,8 +290,8 @@ export function Workspace() {
// Recipes made in this session, guest ones included. A guest's copy lives
// here and nowhere else, so reloading the page is what deletes it.
const [created, setCreated] = useState<Recipe[]>([]);
// null = closed. The landing's register link is /app?auth=1, so it opens the
// dialog straight on the sign-up tab.
// null = closed. /app?auth=1 opens the studio's dialog straight on the sign-up
// tab; the landing page runs the same dialog in place instead of linking here.
const [authMode, setAuthMode] = useState<'login' | 'signup' | null>(() =>
(new URLSearchParams(window.location.search).has('auth') ? 'signup' : null));
@@ -1113,6 +1113,7 @@ export function Workspace() {
onExport={exportPhoto}
onSave={saveRecipe}
onAuth={() => setAuthMode('login')}
onSignup={() => setAuthMode('signup')}
onLogout={async () => {
await api.logout().catch(() => undefined);
setUser(null);