From bdf17fafff02733c76b8977b2c19bb87db0864d1 Mon Sep 17 00:00:00 2001 From: "jianjian.ma" Date: Mon, 27 Mar 2023 17:41:44 +0800 Subject: [PATCH 1/3] feat: add PWA support --- app/layout.tsx | 1 + public/serviceWorker.js | 35 +++++++++++++++++++++++++++++++++++ public/site.webmanifest | 22 +++++++++++++++++++++- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 public/serviceWorker.js diff --git a/app/layout.tsx b/app/layout.tsx index 095d3a18..3a6315f7 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -50,6 +50,7 @@ export default function RootLayout({ href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap" rel="stylesheet" > + {children} diff --git a/public/serviceWorker.js b/public/serviceWorker.js new file mode 100644 index 00000000..dff7af9a --- /dev/null +++ b/public/serviceWorker.js @@ -0,0 +1,35 @@ +const CHATGPT_NEXT_WEB_CACHE = "chatgpt-next-web-cache"; + +self.addEventListener('activate', function (event) { + console.log('ServiceWorker activated.'); +}); + +self.addEventListener('install', function (event) { + event.waitUntil( + caches.open(CHATGPT_NEXT_WEB_CACHE) + .then(function (cache) { + return cache.addAll([ + '/', + ]); + }) + ); +}); + +self.addEventListener('fetch', function (event) { + event.respondWith( + caches.match(event.request) + .then(function (response) { + return response || fetch(event.request); + }) + ); +}); + +if ('serviceWorker' in navigator) { + window.addEventListener('load', function () { + navigator.serviceWorker.register('/serviceWorker.js').then(function (registration) { + console.log('ServiceWorker registration successful with scope: ', registration.scope); + }, function (err) { + console.error('ServiceWorker registration failed: ', err); + }); + }); +} \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest index 45dc8a20..117f33b8 100644 --- a/public/site.webmanifest +++ b/public/site.webmanifest @@ -1 +1,21 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file +{ + "name": "ChatGPT Next Web", + "short_name": "ChatGPT", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "start_url": "/", + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" + } + \ No newline at end of file From 689b7bab2692a9fe0271d1392819ba9b7ff59239 Mon Sep 17 00:00:00 2001 From: "jianjian.ma" Date: Mon, 27 Mar 2023 17:53:32 +0800 Subject: [PATCH 2/3] feat: add PWA support --- .eslintignore | 1 + app/layout.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..08975255 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +public/serviceWorker.js \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index 3a6315f7..f42e1044 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -50,7 +50,7 @@ export default function RootLayout({ href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap" rel="stylesheet" > - + {children} From 5593c067c4a576f35ff11e40c2c0e98352a74db5 Mon Sep 17 00:00:00 2001 From: "jianjian.ma" Date: Mon, 27 Mar 2023 18:02:35 +0800 Subject: [PATCH 3/3] feat: add PWA support --- app/layout.tsx | 2 +- public/serviceWorker.js | 13 +------------ public/serviceWorkerRegister.js | 9 +++++++++ 3 files changed, 11 insertions(+), 13 deletions(-) create mode 100644 public/serviceWorkerRegister.js diff --git a/app/layout.tsx b/app/layout.tsx index f42e1044..e4df377c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -50,7 +50,7 @@ export default function RootLayout({ href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap" rel="stylesheet" > - + {children} diff --git a/public/serviceWorker.js b/public/serviceWorker.js index dff7af9a..585633fc 100644 --- a/public/serviceWorker.js +++ b/public/serviceWorker.js @@ -9,7 +9,6 @@ self.addEventListener('install', function (event) { caches.open(CHATGPT_NEXT_WEB_CACHE) .then(function (cache) { return cache.addAll([ - '/', ]); }) ); @@ -22,14 +21,4 @@ self.addEventListener('fetch', function (event) { return response || fetch(event.request); }) ); -}); - -if ('serviceWorker' in navigator) { - window.addEventListener('load', function () { - navigator.serviceWorker.register('/serviceWorker.js').then(function (registration) { - console.log('ServiceWorker registration successful with scope: ', registration.scope); - }, function (err) { - console.error('ServiceWorker registration failed: ', err); - }); - }); -} \ No newline at end of file +}); \ No newline at end of file diff --git a/public/serviceWorkerRegister.js b/public/serviceWorkerRegister.js new file mode 100644 index 00000000..8405f21a --- /dev/null +++ b/public/serviceWorkerRegister.js @@ -0,0 +1,9 @@ +if ('serviceWorker' in navigator) { + window.addEventListener('load', function () { + navigator.serviceWorker.register('/serviceWorker.js').then(function (registration) { + console.log('ServiceWorker registration successful with scope: ', registration.scope); + }, function (err) { + console.error('ServiceWorker registration failed: ', err); + }); + }); +} \ No newline at end of file