Add version/build-date status bar to dashboard footer

Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/9efbf677-2d92-487b-abae-9adf0c728f88

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-28 11:09:38 +00:00
parent b1dd322ec1
commit 1bb3f71230
7 changed files with 73 additions and 7 deletions
+32 -7
View File
@@ -3,7 +3,9 @@
import { useState } from 'react';
import Link from 'next/link';
import { usePathname, useRouter } from 'next/navigation';
import { useQuery } from '@tanstack/react-query';
import { useAuthStore } from '@/store/authStore';
import { versionApi } from '@/lib/api';
import {
LayoutDashboard,
Mail,
@@ -30,6 +32,12 @@ export function DashboardLayout({ children }: DashboardLayoutProps) {
const router = useRouter();
const { user, logout } = useAuthStore();
const { data: versionInfo } = useQuery({
queryKey: ['version'],
queryFn: () => versionApi.get(),
staleTime: Infinity,
});
const handleLogout = () => {
logout();
router.push('/login');
@@ -235,13 +243,30 @@ export function DashboardLayout({ children }: DashboardLayoutProps) {
{/* Footer */}
<footer className="border-t border-gray-200 bg-white py-4 px-4 sm:px-6 lg:px-8">
<div className="mx-auto max-w-7xl flex flex-wrap justify-center gap-4 text-xs text-gray-400">
<Link href="/impressum" className="hover:text-gray-600 transition-colors">
Impressum
</Link>
<Link href="/datenschutz" className="hover:text-gray-600 transition-colors">
Datenschutz
</Link>
<div className="mx-auto max-w-7xl flex flex-wrap items-center justify-between gap-2 text-xs text-gray-400">
<div className="flex flex-wrap gap-4">
<Link href="/impressum" className="hover:text-gray-600 transition-colors">
Impressum
</Link>
<Link href="/datenschutz" className="hover:text-gray-600 transition-colors">
Datenschutz
</Link>
</div>
{versionInfo && (
<div className="flex flex-wrap gap-3">
<span>v{versionInfo.version}</span>
{versionInfo.build_date && (
<span>
Built{' '}
{new Date(versionInfo.build_date).toLocaleDateString(undefined, {
year: 'numeric',
month: 'short',
day: 'numeric',
})}
</span>
)}
</div>
)}
</div>
</footer>
</div>
+14
View File
@@ -755,4 +755,18 @@ export const adminNotificationsApi = {
},
};
// ── Version API ─────────────────────────────────────────────────────────
export interface VersionInfo {
version: string;
build_date: string | null;
}
export const versionApi = {
async get(): Promise<VersionInfo> {
const response = await api.get<VersionInfo>('/version');
return response.data;
},
};
export default api;