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
+13 -1
View File
@@ -15,6 +15,7 @@ export function TopBar({
onExport,
onSave,
onAuth,
onSignup,
onLogout,
}: {
recipeName: string;
@@ -26,6 +27,7 @@ export function TopBar({
onExport: () => void;
onSave: () => void;
onAuth: () => void;
onSignup: () => void;
onLogout: () => void;
}) {
const { t, lang, setLang } = useI18n();
@@ -129,10 +131,20 @@ export function TopBar({
{user ? (
<>
<p className="hint">{t('auth.loggedInAs', { email: user.email })}</p>
{user.admin ? (
<a className="btn" data-key="nav-admin" href="/admin">{t('nav.admin')}</a>
) : null}
<button type="button" className="btn" onClick={onLogout}>{t('nav.logout')}</button>
</>
) : (
<button type="button" className="btn primary" onClick={onAuth}>{t('nav.login')}</button>
<>
<button type="button" className="btn primary" data-key="nav-login" onClick={onAuth}>
{t('nav.login')}
</button>
<button type="button" className="btn" data-key="nav-signup" onClick={onSignup}>
{t('nav.signup')}
</button>
</>
)}
</div>
) : null}