diff --git a/CHANGELOG.md b/CHANGELOG.md index 9813dc6e..69478439 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ and this project adheres to - 🐛(frontend) fall back to user.full_name on request-entry - 🚸(frontend) show two initials in the Avatar when possible - 🩹(all) clear the SonarCloud reliability finding and the lint debt +- 🐛(frontend) stop the installed app reopening the room it came from ## [1.24.0] - 2026-07-21 diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index b3cf9874..0c3025fd 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -36,6 +36,9 @@ WORKDIR /home/frontend ARG VITE_API_BASE_URL ENV VITE_API_BASE_URL=${VITE_API_BASE_URL} +ARG VITE_APP_TITLE +ENV VITE_APP_TITLE=${VITE_APP_TITLE} + RUN npm run build # ---- Front-end image ---- diff --git a/src/frontend/public/site.webmanifest b/src/frontend/public/site.webmanifest deleted file mode 100644 index 45dc8a20..00000000 --- a/src/frontend/public/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"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 diff --git a/src/frontend/site.webmanifest b/src/frontend/site.webmanifest new file mode 100644 index 00000000..04186631 --- /dev/null +++ b/src/frontend/site.webmanifest @@ -0,0 +1,18 @@ +{ + "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" +} diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts index fd12d6fb..241dc98c 100644 --- a/src/frontend/vite.config.ts +++ b/src/frontend/vite.config.ts @@ -26,6 +26,20 @@ export default defineConfig(({ mode }) => { dest: 'assets/mediapipe/wasm', rename: { stripBase: 4 }, }, + { + // Kept out of public/ so the instance title reaches the manifest, + // the way index.html gets it through %VITE_APP_TITLE%. + src: 'site.webmanifest', + dest: '.', + transform: (content) => { + const title = env.VITE_APP_TITLE + return JSON.stringify({ + ...JSON.parse(content), + name: title, + short_name: title, + }) + }, + }, ], }), env.VITE_ANALYZE === 'true' &&