d15a13e485
- Delete all ops page components (ReviewQueue, AIMonitoring, Governance, SourceMonitoring, ActivityTimeline, SignalPipeline) - Remove OPERATIONS workspace from AppShell config, nav order, path detection - Remove all /ops/* routes from App.tsx - Remove WorkspaceType.OPERATIONS from allowedWorkspaces in authService, sessionStore, permissions - Keep MarketIntelligence page (already moved to /supply/market-intelligence) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import { Box, Typography } from '@mui/material'
|
|
import { Filter, Radio } from 'lucide-react'
|
|
|
|
type EmptyContext = 'no-signals' | 'filtered-empty'
|
|
|
|
const META: Record<EmptyContext, { icon: React.ReactNode; title: string; desc: string }> = {
|
|
'no-signals': {
|
|
icon: <Radio size={32} color="#94a3b8" />,
|
|
title: 'Keine Signale vorhanden',
|
|
desc: 'Es wurden noch keine Zukunftssignale erfasst.',
|
|
},
|
|
'filtered-empty': {
|
|
icon: <Filter size={32} color="#94a3b8" />,
|
|
title: 'Keine Signale für diese Filter',
|
|
desc: 'Passen Sie die Filtereinstellungen an, um Signale anzuzeigen.',
|
|
},
|
|
}
|
|
|
|
export function FutureSignalEmptyState({ context }: { context: EmptyContext }) {
|
|
const { icon, title, desc } = META[context]
|
|
return (
|
|
<Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', gap: 1.5, py: 8, px: 3 }}>
|
|
{icon}
|
|
<Typography variant="subtitle1" sx={{ fontWeight: 600 }} color="text.secondary">{title}</Typography>
|
|
<Typography variant="body2" color="text.secondary" sx={{ textAlign: 'center', maxWidth: 280 }}>{desc}</Typography>
|
|
</Box>
|
|
)
|
|
}
|