diff --git a/web/src/shared/api/types.ts b/web/src/shared/api/types.ts index b3a4a1554..3aa00ffcf 100644 --- a/web/src/shared/api/types.ts +++ b/web/src/shared/api/types.ts @@ -487,7 +487,7 @@ export interface LdapInfo { } export interface ApplicationInfo { - version: string; + version: string | null; network_present: boolean; smtp_enabled: boolean; external_openid_enabled: boolean; diff --git a/web/src/shared/components/Navigation/Navigation.tsx b/web/src/shared/components/Navigation/Navigation.tsx index 54b90b983..30cf102e8 100644 --- a/web/src/shared/components/Navigation/Navigation.tsx +++ b/web/src/shared/components/Navigation/Navigation.tsx @@ -223,11 +223,15 @@ export const Navigation = () => { })); }, [aliasesCount, destinationsCount, rulesCount]); + const rawVersion = useApp((s) => s.appInfo.version); + const semverVersion = rawVersion ? rawVersion.split('+')[0] : null; + if (!isAdmin || !isOpen) return null; return (
+ {semverVersion && {semverVersion}}
.version-badge { + display: flex; + justify-content: center; + align-items: center; + margin-left: var(--spacing-md); + font: var(--t-body-xxs-500); + font-family: var(--font-family-jetbrains); + color: var(--fg-neutral); + background-color: var(--bg-emphasis); + border-radius: var(--radius-sm); + padding: 2px var(--spacing-xs); + } + & > .control { margin-left: auto; diff --git a/web/src/shared/hooks/useApp.tsx b/web/src/shared/hooks/useApp.tsx index 8863d4c00..ad8c6bb03 100644 --- a/web/src/shared/hooks/useApp.tsx +++ b/web/src/shared/hooks/useApp.tsx @@ -20,7 +20,7 @@ const defaults: StoreValues = { }, network_present: false, smtp_enabled: false, - version: '', + version: null, }, settingsEssentials: undefined, wizardState: undefined,