Round 13: PWA Offline Mode, Rate Limiting, Behavior Analytics, Interventions, Audit Logging
This commit is contained in:
1 parent
ceea8fb591
commit
ff4dd670d4
33 files changed
+6327
-509
No files matched your search
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user