diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index dc7cb19..5e9c222 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -22,3 +22,8 @@ jobs: cd server npm install --only=prod pm2 restart gotoServer + + cd ../client + npm install --only=prod + npm run build + pm2 restart gotoFrontend diff --git a/.gitignore b/.gitignore index 824445a..719c295 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ temp.txt client/src/pages/PrevLoginPage.tsx server/jwk.json + +/zz_icons \ No newline at end of file diff --git a/client/package.json b/client/package.json index aa0dc86..d74cddc 100644 --- a/client/package.json +++ b/client/package.json @@ -21,7 +21,8 @@ "react-scripts": "5.0.1", "typescript": "^4.9.5", "universal-cookie": "^7.1.4", - "web-vitals": "^2.1.4" + "web-vitals": "^2.1.4", + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" }, "scripts": { "start": "react-scripts start", @@ -46,8 +47,5 @@ "last 1 firefox version", "last 1 safari version" ] - }, - "devDependencies": { - "@babel/plugin-proposal-private-property-in-object": "^7.21.11" } } diff --git a/client/public/favicon.ico b/client/public/favicon.ico index a11777c..17fbc9d 100644 Binary files a/client/public/favicon.ico and b/client/public/favicon.ico differ diff --git a/client/public/icons/apple-icon-180.png b/client/public/icons/apple-icon-180.png new file mode 100644 index 0000000..a7c198d Binary files /dev/null and b/client/public/icons/apple-icon-180.png differ diff --git a/client/public/icons/manifest-icon-192.maskable.png b/client/public/icons/manifest-icon-192.maskable.png new file mode 100644 index 0000000..d3e666e Binary files /dev/null and b/client/public/icons/manifest-icon-192.maskable.png differ diff --git a/client/public/icons/manifest-icon-512.maskable.png b/client/public/icons/manifest-icon-512.maskable.png new file mode 100644 index 0000000..a63cdec Binary files /dev/null and b/client/public/icons/manifest-icon-512.maskable.png differ diff --git a/client/public/index.html b/client/public/index.html index 4e7be5e..138047f 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -3,11 +3,15 @@ + + + + @@ -41,5 +45,10 @@ To begin the development, run `npm start` or `yarn start`. To create a production bundle, use `npm run build` or `yarn build`. --> + diff --git a/client/public/manifest.json b/client/public/manifest.json index 97d8821..b048ad0 100644 --- a/client/public/manifest.json +++ b/client/public/manifest.json @@ -1,21 +1,31 @@ { "short_name": "GoTo", "name": "GoTogether", - "icons": [ + "icons": + [ { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" + "src": "icons/manifest-icon-192.maskable.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "icons/manifest-icon-192.maskable.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" }, { - "src": "logo192.png", + "src": "icons/manifest-icon-512.maskable.png", + "sizes": "512x512", "type": "image/png", - "sizes": "192x192" + "purpose": "any" }, { - "src": "logo512.png", + "src": "icons/manifest-icon-512.maskable.png", + "sizes": "512x512", "type": "image/png", - "sizes": "512x512" + "purpose": "maskable" } ], "start_url": ".", diff --git a/client/public/service-worker.js b/client/public/service-worker.js index 83ece68..d38b216 100644 --- a/client/public/service-worker.js +++ b/client/public/service-worker.js @@ -1,5 +1,3 @@ -// service-worker.js - self.addEventListener('push', event => { const payload = event.data ? event.data.json() : { name: '', destination: '', date: '', time: '' }; let message; @@ -9,7 +7,7 @@ self.addEventListener('push', event => { message = `${payload.name} is returning from ${payload.destination} on ${payload.date} at ${payload.time}. Click here to get contact details!` const notificationOptions = { body: message, - icon:"/logo192.png", + icon:"icons/manifest-icon-192.maskable.png", data: { destination: payload.destination, date: payload.date, @@ -27,9 +25,24 @@ self.addEventListener('notificationclick', event => { event.notification.close(); const payload = event.notification.data; - const url = `https://goto-iitbbs.vercel.app/showCompanions/${payload.destination}/${payload.date}/${payload.time}/${payload.dir}`; + const url = `https://goto.webnd-iitbbs.org/showCompanions/${payload.destination}/${payload.date}/${payload.time}/${payload.dir}`; event.waitUntil( clients.openWindow(url) ); }); + +importScripts( + 'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js' +); + +workbox.routing.registerRoute( + ({request}) => request.destination === 'image', + new workbox.strategies.CacheFirst() +); + +workbox.routing.registerRoute( + ({url}) => url.origin === 'https://fonts.googleapis.com' || + url.origin === 'https://fonts.gstatic.com', + new workbox.strategies.StaleWhileRevalidate() +); \ No newline at end of file diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx index 1facda5..b0003ad 100644 --- a/client/src/components/Navbar.tsx +++ b/client/src/components/Navbar.tsx @@ -10,6 +10,8 @@ import { useLocation } from "react-router-dom" import { useEffect } from "react" import { useToast } from "../utils/ToastContext" +import logo from "../logo.png" + const Navbar: React.FC = ({isLogged, profile, siteName, onLogout}) => { const navigate = useNavigate(); // const openTripsDialogButton = useRef(null); @@ -140,14 +142,27 @@ const Navbar: React.FC = ({isLogged, profile, siteName, onLogout})