diff --git a/client/index.html b/client/index.html index 1fad17a..cd6386e 100644 --- a/client/index.html +++ b/client/index.html @@ -2,9 +2,15 @@ - - + + + + + + + + @@ -27,4 +33,4 @@
- \ No newline at end of file + diff --git a/client/public/favicon.png b/client/public/favicon.png deleted file mode 100644 index 5272d0d..0000000 Binary files a/client/public/favicon.png and /dev/null differ diff --git a/client/public/manifest.webmanifest b/client/public/manifest.webmanifest new file mode 100644 index 0000000..5c0e008 --- /dev/null +++ b/client/public/manifest.webmanifest @@ -0,0 +1,26 @@ +{ + "name": "SnatchGame", + "short_name": "SnatchGame", + "description": "Arena de intercambio social. Juego competitivo de estrategia y negociación.", + "id": "/", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#111111", + "theme_color": "#111111", + "icons": [ + { "src": "/pwa_icons/icon-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-256x256.png", "sizes": "256x256", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-384x384.png", "sizes": "384x384", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-144x144.png", "sizes": "144x144", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-128x128.png", "sizes": "128x128", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-96x96.png", "sizes": "96x96", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-72x72.png", "sizes": "72x72", "type": "image/png", "purpose": "any" }, + { "src": "/pwa_icons/icon-48x48.png", "sizes": "48x48", "type": "image/png", "purpose": "any" } + ], + "screenshots": [ + { "src": "/SnatchGame.png", "sizes": "992x1056", "type": "image/png", "form_factor": "wide", "label": "Juego - Escritorio" }, + { "src": "/SnatchGame.png", "sizes": "992x1056", "type": "image/png", "label": "Juego - General" } + ] +} diff --git a/client/public/pwa_icons/icon-128x128.png b/client/public/pwa_icons/icon-128x128.png new file mode 100644 index 0000000..2359e16 Binary files /dev/null and b/client/public/pwa_icons/icon-128x128.png differ diff --git a/client/public/pwa_icons/icon-144x144.png b/client/public/pwa_icons/icon-144x144.png new file mode 100644 index 0000000..c636064 Binary files /dev/null and b/client/public/pwa_icons/icon-144x144.png differ diff --git a/client/public/pwa_icons/icon-152x152.png b/client/public/pwa_icons/icon-152x152.png new file mode 100644 index 0000000..c53ee8b Binary files /dev/null and b/client/public/pwa_icons/icon-152x152.png differ diff --git a/client/public/pwa_icons/icon-167x167.png b/client/public/pwa_icons/icon-167x167.png new file mode 100644 index 0000000..f7ffb9b Binary files /dev/null and b/client/public/pwa_icons/icon-167x167.png differ diff --git a/client/public/pwa_icons/icon-180x180.png b/client/public/pwa_icons/icon-180x180.png new file mode 100644 index 0000000..e337feb Binary files /dev/null and b/client/public/pwa_icons/icon-180x180.png differ diff --git a/client/public/pwa_icons/icon-192x192.png b/client/public/pwa_icons/icon-192x192.png new file mode 100644 index 0000000..6814c25 Binary files /dev/null and b/client/public/pwa_icons/icon-192x192.png differ diff --git a/client/public/pwa_icons/icon-256x256.png b/client/public/pwa_icons/icon-256x256.png new file mode 100644 index 0000000..d801247 Binary files /dev/null and b/client/public/pwa_icons/icon-256x256.png differ diff --git a/client/public/pwa_icons/icon-384x384.png b/client/public/pwa_icons/icon-384x384.png new file mode 100644 index 0000000..6d33807 Binary files /dev/null and b/client/public/pwa_icons/icon-384x384.png differ diff --git a/client/public/pwa_icons/icon-48x48.png b/client/public/pwa_icons/icon-48x48.png new file mode 100644 index 0000000..bbc8cfa Binary files /dev/null and b/client/public/pwa_icons/icon-48x48.png differ diff --git a/client/public/pwa_icons/icon-512x512.png b/client/public/pwa_icons/icon-512x512.png new file mode 100644 index 0000000..9267c54 Binary files /dev/null and b/client/public/pwa_icons/icon-512x512.png differ diff --git a/client/public/pwa_icons/icon-72x72.png b/client/public/pwa_icons/icon-72x72.png new file mode 100644 index 0000000..590d5b3 Binary files /dev/null and b/client/public/pwa_icons/icon-72x72.png differ diff --git a/client/public/pwa_icons/icon-96x96.png b/client/public/pwa_icons/icon-96x96.png new file mode 100644 index 0000000..96590bd Binary files /dev/null and b/client/public/pwa_icons/icon-96x96.png differ diff --git a/client/public/sw.js b/client/public/sw.js new file mode 100644 index 0000000..2341844 --- /dev/null +++ b/client/public/sw.js @@ -0,0 +1,15 @@ +// Minimal service worker to enable PWA installability +self.addEventListener("install", () => { + // Activate immediately on install + self.skipWaiting(); +}); + +self.addEventListener("activate", (event) => { + event.waitUntil(self.clients.claim()); +}); + +// Provide a basic fetch handler (required by some browsers for installability) +self.addEventListener("fetch", (event) => { + event.respondWith(fetch(event.request)); +}); + diff --git a/client/src/main.ts b/client/src/main.ts index 22613b8..2960887 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -6,4 +6,13 @@ const app = createApp(App); app.use(router); -app.mount('#app'); \ No newline at end of file +app.mount('#app'); + +// Registrar Service Worker en producción para PWA +if ('serviceWorker' in navigator && import.meta.env.PROD) { + window.addEventListener('load', () => { + navigator.serviceWorker.register('/sw.js').catch(() => { + // no-op: registro del SW falló + }); + }); +}