adding chat features, admin features and bug fixes

This commit is contained in:
Matthias Hochmeister
2026-03-12 08:16:34 +01:00
parent 7b14e3d5ba
commit 31f1414e06
43 changed files with 2610 additions and 16 deletions

View File

@@ -0,0 +1,61 @@
import { useState } from 'react';
import { Box, Tabs, Tab, Typography } from '@mui/material';
import { Navigate } from 'react-router-dom';
import DashboardLayout from '../components/dashboard/DashboardLayout';
import ServiceManagerTab from '../components/admin/ServiceManagerTab';
import SystemHealthTab from '../components/admin/SystemHealthTab';
import UserOverviewTab from '../components/admin/UserOverviewTab';
import NotificationBroadcastTab from '../components/admin/NotificationBroadcastTab';
import { useAuth } from '../contexts/AuthContext';
interface TabPanelProps {
children: React.ReactNode;
index: number;
value: number;
}
function TabPanel({ children, value, index }: TabPanelProps) {
if (value !== index) return null;
return <Box sx={{ pt: 3 }}>{children}</Box>;
}
function AdminDashboard() {
const [tab, setTab] = useState(0);
const { user } = useAuth();
const isAdmin = user?.groups?.includes('dashboard_admin') ?? false;
if (!isAdmin) {
return <Navigate to="/dashboard" replace />;
}
return (
<DashboardLayout>
<Typography variant="h4" sx={{ mb: 3 }}>Administration</Typography>
<Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
<Tabs value={tab} onChange={(_e, v) => setTab(v)}>
<Tab label="Services" />
<Tab label="System" />
<Tab label="Benutzer" />
<Tab label="Broadcast" />
</Tabs>
</Box>
<TabPanel value={tab} index={0}>
<ServiceManagerTab />
</TabPanel>
<TabPanel value={tab} index={1}>
<SystemHealthTab />
</TabPanel>
<TabPanel value={tab} index={2}>
<UserOverviewTab />
</TabPanel>
<TabPanel value={tab} index={3}>
<NotificationBroadcastTab />
</TabPanel>
</DashboardLayout>
);
}
export default AdminDashboard;