95e02aca57
- Add @ducanh2912/next-pwa with NetworkFirst runtime caching (24h, 200 entries) - Disabled in development to avoid SW interference - Generate icon-192.png, icon-512.png, apple-touch-icon.png from SVG - Update manifest.json to use PNG icons (required for Android install prompt) - Add apple-touch-icon + appleWebApp metadata to layout - Add /offline fallback page shown when network unavailable Offline behavior: cached reads work on all platforms; background sync for new events not supported (iOS Safari has no Background Sync API). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
721 B
TypeScript
31 lines
721 B
TypeScript
import type { NextConfig } from "next";
|
|
import withPWAInit from "@ducanh2912/next-pwa";
|
|
|
|
const withPWA = withPWAInit({
|
|
dest: "public",
|
|
cacheOnFrontEndNav: true,
|
|
aggressiveFrontEndNavCaching: true,
|
|
reloadOnOnline: true,
|
|
disable: process.env.NODE_ENV === "development",
|
|
workboxOptions: {
|
|
disableDevLogs: true,
|
|
runtimeCaching: [
|
|
{
|
|
urlPattern: /^https?.*/,
|
|
handler: "NetworkFirst",
|
|
options: {
|
|
cacheName: "grow-api-cache",
|
|
expiration: { maxEntries: 200, maxAgeSeconds: 24 * 60 * 60 },
|
|
networkTimeoutSeconds: 10,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
});
|
|
|
|
const nextConfig: NextConfig = {
|
|
output: "standalone",
|
|
};
|
|
|
|
export default withPWA(nextConfig);
|