noscript varianten eingebaut, matomo integration erweitert und als konfiguration aufgenommen.

This commit is contained in:
Codex Agent
2025-12-05 17:02:03 +01:00
parent 946d09764a
commit c1bd4c1eb3
15 changed files with 331 additions and 95 deletions

View File

@@ -13,8 +13,6 @@ import {
ClipboardList,
Package as PackageIcon,
} from 'lucide-react';
import toast from 'react-hot-toast';
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
@@ -254,20 +252,7 @@ export default function DashboardPage() {
const shownToastsRef = React.useRef<Set<string>>(new Set());
React.useEffect(() => {
limitWarnings.forEach((warning) => {
const toastKey = `${warning.id}-${warning.message}`;
if (shownToastsRef.current.has(toastKey)) {
return;
}
shownToastsRef.current.add(toastKey);
toast(warning.message, {
icon: warning.tone === 'danger' ? '🚨' : '⚠️',
id: toastKey,
});
});
}, [limitWarnings]);
// Limit warnings werden ausschließlich in der Limits-Karte angezeigt; keine Toasts mehr
const limitScopeLabels = React.useMemo(
() => ({
@@ -533,13 +518,6 @@ export default function DashboardPage() {
return (
<AdminLayout title={adminTitle} subtitle={adminSubtitle}>
{errorMessage && (
<Alert variant="destructive">
<AlertTitle>{t('dashboard.alerts.errorTitle')}</AlertTitle>
<AlertDescription>{errorMessage}</AlertDescription>
</Alert>
)}
{loading ? (
<DashboardSkeleton />
) : (