- Add web-push VAPID backend with push_subscriptions table (migration 078) - Backend push module with sendPushToUser/sendPushToRoom helpers - Push routes: GET vapid-key, POST subscribe, DELETE unsubscribe - Trigger push on new chat messages in direct/group rooms - PWA manifest, service worker, and icons (72–512px) - Frontend push lib: SW registration, subscribe/unsubscribe helpers - Push API in api.ts, SW registered in main.tsx - usePushSubscription hook for auto-subscribe on permission grant - PushPermissionRow component in ChatWidget settings view Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
980 B
JSON
21 lines
980 B
JSON
{
|
|
"name": "HotelSync PMS",
|
|
"short_name": "HotelSync",
|
|
"description": "Система управления отелем HotelSync",
|
|
"start_url": "/",
|
|
"display": "standalone",
|
|
"background_color": "#ffffff",
|
|
"theme_color": "#4F46E5",
|
|
"orientation": "portrait-primary",
|
|
"icons": [
|
|
{ "src": "/icons/icon-72.png", "sizes": "72x72", "type": "image/png" },
|
|
{ "src": "/icons/icon-96.png", "sizes": "96x96", "type": "image/png" },
|
|
{ "src": "/icons/icon-128.png", "sizes": "128x128", "type": "image/png" },
|
|
{ "src": "/icons/icon-144.png", "sizes": "144x144", "type": "image/png" },
|
|
{ "src": "/icons/icon-152.png", "sizes": "152x152", "type": "image/png" },
|
|
{ "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" },
|
|
{ "src": "/icons/icon-384.png", "sizes": "384x384", "type": "image/png" },
|
|
{ "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" }
|
|
]
|
|
}
|