diff --git a/package.json b/package.json index 0db8143..c98e568 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "frangipane-client", "private": true, "version": "0.1.0", + "backendVersion": "1.0.0", "type": "module", "scripts": { "dev": "vite", diff --git a/src/App.vue b/src/App.vue index 0eecf19..18b52fb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,6 +4,9 @@ + +
@@ -11,7 +14,28 @@ diff --git a/src/locales/en.ftl b/src/locales/en.ftl index 5f8afc5..7e29e98 100644 --- a/src/locales/en.ftl +++ b/src/locales/en.ftl @@ -83,6 +83,11 @@ settings-updating = Updating... settings-error-required = Username and Email are required. settings-error-failed = Update failed +## Warning +warning-wrongversion-title = Wrong app version +warning-wrongversion-message = The backend expects version {$expectedBackendVersion} while your version of the app ({$appVersion}) supports backend version {$backendVersion}. Please update to avoid potential issues. +warning-wrongversion-dismiss = I know what I'm doing + ## Shared shared-cancel = Cancel shared-error = An error occurred diff --git a/src/locales/fr.ftl b/src/locales/fr.ftl index f493455..4d42468 100644 --- a/src/locales/fr.ftl +++ b/src/locales/fr.ftl @@ -81,6 +81,11 @@ settings-upload-avatar-title = Importer un avatar settings-error-required = Le nom d'utilisateur et l'email sont requis. settings-error-failed = Échec de la mise à jour +## Warning +warning-wrongversion-title = Mauvaise version de l'application +warning-wrongversion-message = Le backend attend la version {$expectedBackendVersion} alors que votre version de l'application ({$appVersion}) prend en charge la version {$backendVersion} du backend. Veuillez mettre à jour pour éviter d'éventuels problèmes. +warning-wrongversion-dismiss = Je sais ce que je fais + ## Shared shared-cancel = Annuler shared-error = Une erreur est survenue diff --git a/src/types.ts b/src/types.ts index 95221b2..ac4229f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -50,3 +50,7 @@ export interface RoomInvite { sender_uuid: string sender_username: string } + +export interface VersionResponse { + version: string +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index fc81239..3d6cf68 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -5,3 +5,6 @@ declare module "*.vue" { const component: DefineComponent<{}, {}, any>; export default component; } + +declare const __APP_VERSION__: string +declare const __BACKEND_VERSION__: string diff --git a/vite.config.ts b/vite.config.ts index 570276d..dc8d0dc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; +import packageJson from './package.json' // Import package.json // @ts-expect-error process is a nodejs global const host = process.env.TAURI_DEV_HOST; @@ -31,4 +32,9 @@ export default defineConfig(async () => ({ ignored: ["**/src-tauri/**"], }, }, + + define: { + '__APP_VERSION__': JSON.stringify(packageJson.version), + '__BACKEND_VERSION__': JSON.stringify(packageJson.backendVersion) + } }));