überarbeitung des event-admins fortgesetzt

This commit is contained in:
Codex Agent
2025-11-25 13:03:42 +01:00
parent fd788ef770
commit 596dcbf18a
20 changed files with 998 additions and 2210 deletions

View File

@@ -169,15 +169,15 @@ export function AdminLayout({ title, subtitle, actions, children, disableCommand
<div aria-hidden className="absolute inset-0 bg-gradient-to-b from-white/80 via-white/60 to-transparent dark:from-slate-950 dark:via-slate-950/90 dark:to-slate-950/80" />
<div className="relative z-10 flex min-h-svh flex-col">
<header className="sticky top-0 z-40 border-b border-slate-200/70 bg-white/90 backdrop-blur-xl dark:border-white/10 dark:bg-slate-950/80">
<div className="mx-auto flex w-full max-w-6xl flex-col gap-3 px-4 py-4 sm:flex-row sm:items-center sm:justify-between sm:px-6">
<div className="space-y-1">
<div className="mx-auto flex w-full max-w-6xl flex-wrap items-start justify-between gap-3 px-4 py-4 sm:flex-nowrap sm:items-center sm:px-6">
<div className="min-w-0 space-y-1">
<p className="text-[10px] font-semibold uppercase tracking-[0.4em] text-rose-500 dark:text-rose-200">{t('app.brand')}</p>
<div>
<h1 className="text-xl font-semibold text-slate-900 dark:text-white sm:text-2xl">{title}</h1>
{subtitle ? <p className="text-xs text-slate-600 dark:text-slate-300 sm:text-sm">{subtitle}</p> : null}
</div>
</div>
<div className="flex flex-wrap items-center gap-2">
<div className="flex flex-wrap items-center gap-2 sm:justify-end">
{disableCommandShelf ? <EventSwitcher compact /> : null}
{actions}
<NotificationCenter />

View File

@@ -31,7 +31,6 @@ import {
ADMIN_EVENT_PHOTOS_PATH,
ADMIN_EVENT_TASKS_PATH,
ADMIN_EVENT_PHOTOBOOTH_PATH,
ADMIN_EVENT_TOOLKIT_PATH,
} from '../constants';
import { formatEventDate, resolveEngagementMode, resolveEventDisplayName } from '../lib/events';
@@ -192,11 +191,11 @@ export function CommandShelf() {
href: ADMIN_EVENT_PHOTOBOOTH_PATH(slug),
},
{
key: 'toolkit',
label: t('commandShelf.actions.toolkit.label', 'Event-Day Toolkit'),
key: 'members',
label: t('eventMenu.guests', 'Team & Gäste'),
description: t('commandShelf.actions.toolkit.desc', 'Broadcasts, Aufgaben & Quicklinks.'),
icon: MessageSquare,
href: ADMIN_EVENT_TOOLKIT_PATH(slug),
href: ADMIN_EVENT_MEMBERS_PATH(slug),
},
];
@@ -275,7 +274,7 @@ export function CommandShelf() {
size="sm"
variant="ghost"
className="rounded-full text-rose-600 hover:bg-rose-50 dark:text-rose-200 dark:hover:bg-rose-200/10"
onClick={() => navigate(ADMIN_EVENT_TOOLKIT_PATH(slug))}
onClick={() => navigate(ADMIN_EVENT_VIEW_PATH(slug))}
>
<Sparkles className="mr-2 h-4 w-4" />
{t('commandShelf.cta.toolkit', 'Event-Day öffnen')}

View File

@@ -22,7 +22,6 @@ import {
ADMIN_EVENT_MEMBERS_PATH,
ADMIN_EVENT_PHOTOS_PATH,
ADMIN_EVENT_TASKS_PATH,
ADMIN_EVENT_TOOLKIT_PATH,
ADMIN_EVENT_VIEW_PATH,
ADMIN_EVENT_PHOTOBOOTH_PATH,
} from '../constants';
@@ -37,7 +36,6 @@ function buildEventLinks(slug: string, t: ReturnType<typeof useTranslation>['t']
{ key: 'guests', label: t('eventMenu.guests', 'Team & Gäste'), href: ADMIN_EVENT_MEMBERS_PATH(slug) },
{ key: 'tasks', label: t('eventMenu.tasks', 'Aufgaben'), href: ADMIN_EVENT_TASKS_PATH(slug) },
{ key: 'invites', label: t('eventMenu.invites', 'Einladungen'), href: ADMIN_EVENT_INVITES_PATH(slug) },
{ key: 'toolkit', label: t('eventMenu.toolkit', 'Toolkit'), href: ADMIN_EVENT_TOOLKIT_PATH(slug) },
];
}