layouts schick gemacht und packagelimits weiter implementiert

This commit is contained in:
Codex Agent
2025-11-01 22:55:13 +01:00
parent 79b209de9a
commit 8e6c66f0db
16 changed files with 756 additions and 422 deletions

View File

@@ -2,6 +2,7 @@ import React from 'react';
import { NavLink } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { cn } from '@/lib/utils';
import toast from 'react-hot-toast';
import {
ADMIN_HOME_PATH,
ADMIN_EVENTS_PATH,
@@ -10,6 +11,7 @@ import {
ADMIN_ENGAGEMENT_PATH,
} from '../constants';
import { LanguageSwitcher } from './LanguageSwitcher';
import { registerApiErrorListener } from '../lib/apiError';
const navItems = [
{ to: ADMIN_HOME_PATH, labelKey: 'navigation.dashboard', end: true },
@@ -36,6 +38,18 @@ export function AdminLayout({ title, subtitle, actions, children }: AdminLayoutP
};
}, []);
React.useEffect(() => {
const unsubscribe = registerApiErrorListener((detail) => {
const fallback = t('errors.generic');
const message = detail?.message?.trim() ? detail.message : fallback;
toast.error(message, {
id: detail?.code ? `api-error-${detail.code}` : undefined,
});
});
return unsubscribe;
}, [t]);
return (
<div className="min-h-screen bg-brand-gradient text-brand-slate">
<header className="border-b border-brand-rose-soft bg-brand-card/90 shadow-brand-primary backdrop-blur-md">