Route tenant admin PWA via /event-admin

This commit is contained in:
Codex Agent
2025-10-10 15:20:52 +02:00
parent 417b1da484
commit 52197f216d
20 changed files with 112 additions and 75 deletions

View File

@@ -11,6 +11,7 @@ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/com
import { AdminLayout } from '../components/AdminLayout';
import { getEvents, TenantEvent, getPackages } from '../api';
import { isAuthError } from '../auth/tokens';
import { adminPath, ADMIN_SETTINGS_PATH } from '../constants';
export default function EventsPage() {
const [rows, setRows] = React.useState<TenantEvent[]>([]);
@@ -41,11 +42,11 @@ export default function EventsPage() {
<>
<Button
className="bg-gradient-to-r from-pink-500 via-fuchsia-500 to-purple-500 text-white shadow-lg shadow-pink-500/20"
onClick={() => navigate('/admin/events/new')}
onClick={() => navigate(adminPath('/events/new'))}
>
<Plus className="h-4 w-4" /> Neues Event
</Button>
<Link to="/admin/settings">
<Link to={ADMIN_SETTINGS_PATH}>
<Button variant="outline" className="border-pink-200 text-pink-600 hover:bg-pink-50">
<Settings className="h-4 w-4" /> Einstellungen
</Button>
@@ -111,7 +112,7 @@ export default function EventsPage() {
{loading ? (
<LoadingState />
) : rows.length === 0 ? (
<EmptyState onCreate={() => navigate('/admin/events/new')} />
<EmptyState onCreate={() => navigate(adminPath('/events/new'))} />
) : (
<div className="space-y-4">
{rows.map((event) => (
@@ -163,15 +164,15 @@ function EventCard({ event }: { event: TenantEvent }) {
<div className="mt-4 flex flex-wrap gap-2">
<Button asChild variant="outline" className="border-pink-200 text-pink-700 hover:bg-pink-50">
<Link to={`/admin/events/view?slug=${encodeURIComponent(slug)}`}>
<Link to={adminPath(`/events/view?slug=${encodeURIComponent(slug)}`)}>
Details <ArrowRight className="ml-1 h-3.5 w-3.5" />
</Link>
</Button>
<Button asChild variant="outline" className="border-fuchsia-200 text-fuchsia-700 hover:bg-fuchsia-50">
<Link to={`/admin/events/edit?slug=${encodeURIComponent(slug)}`}>Bearbeiten</Link>
<Link to={adminPath(`/events/edit?slug=${encodeURIComponent(slug)}`)}>Bearbeiten</Link>
</Button>
<Button asChild variant="outline" className="border-sky-200 text-sky-700 hover:bg-sky-50">
<Link to={`/admin/events/photos?slug=${encodeURIComponent(slug)}`}>Fotos moderieren</Link>
<Link to={adminPath(`/events/photos?slug=${encodeURIComponent(slug)}`)}>Fotos moderieren</Link>
</Button>
<Button asChild variant="outline" className="border-amber-200 text-amber-600 hover:bg-amber-50">
<a href={`/e/${slug}`} target="_blank" rel="noreferrer">
@@ -238,3 +239,4 @@ function renderName(name: TenantEvent['name']): string {
}
return 'Unbenanntes Event';
}