feat: Set up PWA infrastructure with service worker, offline support, and manifest
- Created service worker (public/sw.js) with caching strategies - Cache-first strategy for static assets - Stale-while-revalidate for API responses and pages - Network-first fallback strategy - Implemented offline fallback page (/offline) - Updated manifest.json with complete PWA metadata - Added service worker registration in app layout - Created ServiceWorkerRegistration component for client-side registration - Generated SVG icons for PWA (192x192 and 512x512) - Added PWA meta tags for iOS Safari support Validates Requirements: 4.1, 4.3, 4.4
This commit is contained in:
@@ -1,12 +1,23 @@
|
||||
import type { Metadata } from 'next'
|
||||
import './globals.css'
|
||||
import ServiceWorkerRegistration from '@/components/ServiceWorkerRegistration'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Ultimate Lists',
|
||||
description: 'The ultimate todo list app',
|
||||
description: 'The ultimate todo list app with advanced task management',
|
||||
manifest: '/manifest.json',
|
||||
themeColor: '#3B82F6',
|
||||
viewport: 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
|
||||
appleWebApp: {
|
||||
capable: true,
|
||||
statusBarStyle: 'default',
|
||||
title: 'Ultimate Lists',
|
||||
},
|
||||
applicationName: 'Ultimate Lists',
|
||||
icons: {
|
||||
icon: '/icon-192.svg',
|
||||
apple: '/icon-192.svg',
|
||||
},
|
||||
}
|
||||
|
||||
export default function RootLayout({
|
||||
@@ -16,7 +27,17 @@ export default function RootLayout({
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className="bg-gray-50 min-h-screen">{children}</body>
|
||||
<head>
|
||||
<link rel="apple-touch-icon" href="/icon-192.svg" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
||||
<meta name="apple-mobile-web-app-title" content="Ultimate Lists" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
</head>
|
||||
<body className="bg-gray-50 min-h-screen">
|
||||
<ServiceWorkerRegistration />
|
||||
{children}
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user