Frontend:
- Установлен Sonner для toast уведомлений
- Создан Service Worker (public/sw.js) для Web Push
- Реализован хук useWebPush для управления подписками
- Добавлены утилиты Web Push (lib/push.ts)
- Создан компонент NotificationCenter с UI
- Интегрирован в AppShell (header desktop + mobile)
- Добавлен Toaster в Providers
API методы:
- getVapidPublicKey() - получение VAPID ключа
- subscribePush() - создание подписки
- unsubscribePush() - удаление подписки
- getPushSubscriptions() - список подписок
Возможности:
- � Web Push (работают даже когда вкладка закрыта)
- � NotificationCenter с badge и историей
- � Toast уведомления (Sonner)
- ⚙️ Настройки push подписок
- � Респонсивный дизайн
Документация: frontend/NOTIFICATIONS_IMPLEMENTATION.md
18 lines
489 B
TypeScript
18 lines
489 B
TypeScript
"use client";
|
|
|
|
import { UserProvider } from "@/contexts/UserContext";
|
|
import { CalendarProvider } from "@/contexts/CalendarContext";
|
|
import { ReactNode } from "react";
|
|
import { Toaster } from "sonner";
|
|
|
|
export function Providers({ children }: { children: ReactNode }) {
|
|
return (
|
|
<UserProvider>
|
|
<CalendarProvider>
|
|
<Toaster position="top-right" richColors />
|
|
{children}
|
|
</CalendarProvider>
|
|
</UserProvider>
|
|
);
|
|
}
|