Round 13: PWA Offline Mode, Rate Limiting, Behavior Analytics, Interventions, Audit Logging

This commit is contained in:
Mustafa Cetin committed 2026-07-29 10:23:50 +00:00
1 parent ceea8fb591
commit ff4dd670d4
33 files changed
+6327 -509

No files matched your search

+10
View File
@@ -115,6 +115,7 @@ import {
} from '@/components/ui/command';
import { toast } from 'sonner';
import { useWebSocket, usePushNotifications, playNotificationSound, getNotificationSoundPref } from '@/lib/websocket';
import { OfflineIndicator, PWAInstallPrompt, useServiceWorker, OfflineSyncManager } from '@/components/offline-indicator';
import DashboardView from './dashboard-view';
import ClassesView from './classes-view';
@@ -257,6 +258,9 @@ export default function AppLayout() {
const [schoolYears, setSchoolYears] = useState<SchoolYear[]>([]);
const [selectedYearId, setSelectedYearId] = useState<string>(storeSchoolYearId ?? '');
// Service Worker registration for PWA
useServiceWorker();
// WebSocket connection for real-time push notifications
const { connected: wsConnected } = useWebSocket();
const { notification: pushNotification } = usePushNotifications();
@@ -636,6 +640,12 @@ export default function AppLayout() {
return (
<SidebarProvider>
{/* Offline indicator bar */}
<OfflineIndicator />
{/* PWA install prompt */}
<PWAInstallPrompt />
{/* Offline sync manager */}
<OfflineSyncManager />
<Sidebar
variant="sidebar"
collapsible="icon"