featuer change for calendar

This commit is contained in:
Matthias Hochmeister
2026-03-03 08:57:32 +01:00
parent ad069fde10
commit 146f79cf00
9 changed files with 617 additions and 64 deletions

View File

@@ -13,15 +13,14 @@ import { useAuth } from '../contexts/AuthContext';
import DashboardLayout from '../components/dashboard/DashboardLayout';
import SkeletonCard from '../components/shared/SkeletonCard';
import UserProfile from '../components/dashboard/UserProfile';
import NextcloudCard from '../components/dashboard/NextcloudCard';
import VikunjaCard from '../components/dashboard/VikunjaCard';
import BookstackCard from '../components/dashboard/BookstackCard';
import NextcloudTalkWidget from '../components/dashboard/NextcloudTalkWidget';
import UpcomingEventsWidget from '../components/dashboard/UpcomingEventsWidget';
import StatsCard from '../components/dashboard/StatsCard';
import ActivityFeed from '../components/dashboard/ActivityFeed';
import InspectionAlerts from '../components/vehicles/InspectionAlerts';
import EquipmentAlerts from '../components/equipment/EquipmentAlerts';
import AtemschutzDashboardCard from '../components/atemschutz/AtemschutzDashboardCard';
import PersonalWarningsBanner from '../components/dashboard/PersonalWarningsBanner';
import { vehiclesApi } from '../services/vehicles';
import { equipmentApi } from '../services/equipment';
import type { VehicleStats } from '../types/vehicle.types';
@@ -89,6 +88,17 @@ function Dashboard() {
</Grid>
)}
{/* Personal Atemschutz Warnings — shown only when relevant */}
{user && (
<Grid item xs={12}>
<Fade in={!dataLoading} timeout={600} style={{ transitionDelay: '150ms' }}>
<Box>
<PersonalWarningsBanner user={user} />
</Box>
</Fade>
</Grid>
)}
{/* Live vehicle KPI — einsatzbereit count from API */}
<Grid item xs={12} sm={6} md={3}>
{dataLoading ? (
@@ -143,51 +153,13 @@ function Dashboard() {
</Fade>
</Grid>
{/* Service Integration Cards */}
<Grid item xs={12}>
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
Dienste und Integrationen
</Typography>
</Grid>
<Grid item xs={12} md={4}>
{dataLoading ? (
<SkeletonCard variant="basic" />
) : (
<Fade in={true} timeout={600} style={{ transitionDelay: '400ms' }}>
<Box>
<NextcloudCard
onClick={() => console.log('Nextcloud clicked')}
/>
</Box>
</Fade>
)}
</Grid>
<Grid item xs={12} md={4}>
{dataLoading ? (
<SkeletonCard variant="basic" />
) : (
<Fade in={true} timeout={600} style={{ transitionDelay: '450ms' }}>
<Box>
<VikunjaCard
onClick={() => console.log('Vikunja clicked')}
/>
</Box>
</Fade>
)}
</Grid>
<Grid item xs={12} md={4}>
{dataLoading ? (
<SkeletonCard variant="basic" />
) : (
<Fade in={true} timeout={600} style={{ transitionDelay: '500ms' }}>
<Box>
<BookstackCard
onClick={() => console.log('Bookstack clicked')}
/>
</Box>
</Fade>
)}
{/* Upcoming Events Widget */}
<Grid item xs={12} md={6}>
<Fade in={!dataLoading} timeout={600} style={{ transitionDelay: '440ms' }}>
<Box>
<UpcomingEventsWidget />
</Box>
</Fade>
</Grid>
{/* Nextcloud Talk Widget */}