Merge branch 'pwa'

This commit is contained in:
2025-08-16 09:21:46 -04:00
4 changed files with 65 additions and 629 deletions

613
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,49 @@
import type { NextConfig } from "next"; import type { NextConfig } from "next";
const withPWA = require("next-pwa")({ const nextConfig: NextConfig = {
dest: "public",
register: true,
skipWaiting: true,
disable: process.env.NODE_ENV === "development",
});
// const nextConfig: NextConfig = {
// /* config options here */
// reactStrictMode: true,
// };
const nextConfig: NextConfig = withPWA({
/* config options here */
reactStrictMode: true, reactStrictMode: true,
output: "standalone", output: "standalone",
images: { images: {
formats: ["image/webp", "image/avif"], formats: ["image/webp", "image/avif"],
}, },
}); async headers() {
return [
{
source: "/(.*)",
headers: [
{
key: "X-Content-Type-Options",
value: "nosniff",
},
{
key: "X-Frame-Options",
value: "DENY",
},
{
key: "Referrer-Policy",
value: "strict-origin-when-cross-origin",
},
],
},
{
source: "/sw.js",
headers: [
{
key: "Content-Type",
value: "application/javascript; charset=utf-8",
},
{
key: "Cache-Control",
value: "no-cache, no-store, must-revalidate",
},
{
key: "Content-Security-Policy",
value: "default-src 'self'; script-src 'self'",
},
],
},
];
},
};
export default nextConfig; export default nextConfig;

View File

@@ -18,7 +18,6 @@
"lucide-react": "^0.539.0", "lucide-react": "^0.539.0",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"next": "15.4.6", "next": "15.4.6",
"next-pwa": "^5.6.0",
"react": "19.1.0", "react": "19.1.0",
"react-dom": "19.1.0", "react-dom": "19.1.0",
"tailwind-merge": "^3.3.1" "tailwind-merge": "^3.3.1"

25
src/app/manifest.ts Normal file
View File

@@ -0,0 +1,25 @@
import type { MetadataRoute } from "next";
export default function manifest(): MetadataRoute.Manifest {
return {
name: "local-ical PWA",
short_name: "local-ical",
description: "Local iCal editor with AI features",
start_url: "/",
display: "standalone",
background_color: "#ffffff",
theme_color: "#000000",
icons: [
{
src: "/icon-192x192.png",
sizes: "192x192",
type: "image/png",
},
{
src: "/icon-512x512.png",
sizes: "512x512",
type: "image/png",
},
],
};
}