Skip to content

Commit c190184

Browse files
committed
feat(navbar): implement ui and dataset version display
1 parent e9664ca commit c190184

5 files changed

Lines changed: 51 additions & 0 deletions

File tree

src/entities/vehicle/api/use-vehicles.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,13 @@ export function useVehicles() {
1111
select: (data) => data.vehicles,
1212
});
1313
}
14+
15+
export function useVehicleMetadata() {
16+
return useQuery({
17+
queryKey: ['vehicles'],
18+
queryFn: fetchLatestVehicles,
19+
staleTime: APP_CONSTANTS.CACHE.STALE_TIME_MS,
20+
gcTime: APP_CONSTANTS.CACHE.GC_TIME_MS,
21+
select: (data) => data.metadata,
22+
});
23+
}

src/vite-env.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ declare module '*.txt?raw' {
44
const content: string;
55
export default content;
66
}
7+
8+
declare const __APP_VERSION__: string;

src/widgets/LayoutHeader/ui/LayoutHeader.module.css

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,22 @@
7474
align-items: center;
7575
}
7676

77+
.versionInfo {
78+
display: flex;
79+
flex-direction: column;
80+
align-items: flex-end;
81+
justify-content: center;
82+
margin-right: var(--space-2);
83+
line-height: 1.2;
84+
}
85+
86+
.versionText {
87+
font-size: var(--text-xs);
88+
color: var(--text-tertiary);
89+
font-family: var(--font-mono);
90+
white-space: nowrap;
91+
}
92+
7793
/* Mobile */
7894
@media (max-width: 768px) {
7995
.header {
@@ -110,6 +126,10 @@
110126
.contributeButton > span {
111127
display: none !important;
112128
}
129+
130+
.versionInfo {
131+
display: none;
132+
}
113133
}
114134

115135
.contributeButton {

src/widgets/LayoutHeader/ui/LayoutHeader.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import styles from './LayoutHeader.module.css';
88
import { Info, Github } from 'lucide-react';
99
import { AboutModal } from '@/widgets/AboutModal';
1010

11+
import { useVehicleMetadata } from '@/entities/vehicle/api/use-vehicles';
12+
1113
export function LayoutHeader({ className }: { className?: string }) {
14+
const { data: metadata } = useVehicleMetadata();
1215
const [isAboutModalOpen, setIsAboutModalOpen] = useState(() => {
1316
try {
1417
const hasSeen = localStorage.getItem('hasSeenAboutModal');
@@ -36,6 +39,19 @@ export function LayoutHeader({ className }: { className?: string }) {
3639
<SearchBar />
3740
</div>
3841
<div className={styles.actions}>
42+
<div className={styles.versionInfo}>
43+
<span className={styles.versionText} title={`UI Version: v${__APP_VERSION__}`}>
44+
UI v{__APP_VERSION__}
45+
</span>
46+
{metadata && (
47+
<span
48+
className={styles.versionText}
49+
title={`Dataset Commit: ${metadata.dataset_commit}`}
50+
>
51+
Data v{metadata.etl_version}
52+
</span>
53+
)}
54+
</div>
3955
<Button
4056
variant="ghost"
4157
size="sm"

vite.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import path from 'path';
55
// https://vite.dev/config/
66
export default defineConfig({
77
base: '/open-ev-data-ui/',
8+
define: {
9+
__APP_VERSION__: JSON.stringify(process.env.npm_package_version),
10+
},
811
plugins: [react()],
912
resolve: {
1013
alias: {

0 commit comments

Comments
 (0)