Skip to content

Commit 36d6f1e

Browse files
authored
Merge pull request #47 from VectorInstitute/add_update_ts
Add last updated timestamp
2 parents 6fda326 + 795614a commit 36d6f1e

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

services/analytics/app/analytics-content.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ async function handleLogout() {
2222
}
2323

2424
export default function AnalyticsContent({ user }: AnalyticsContentProps) {
25-
const { data, loading, error, refetch } = useAnalyticsData();
25+
const { data, loading, error, lastUpdated, refetch } = useAnalyticsData();
2626

2727
if (loading && !data) {
2828
return <LoadingState />;
@@ -36,7 +36,7 @@ export default function AnalyticsContent({ user }: AnalyticsContentProps) {
3636

3737
return (
3838
<div className="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800">
39-
<PageHeader user={user} onLogout={handleLogout} />
39+
<PageHeader user={user} onLogout={handleLogout} lastUpdated={lastUpdated} />
4040

4141
<div className="max-w-7xl mx-auto px-4 md:px-8 pb-8">
4242
<div className="mb-8 animate-slide-up">

services/analytics/app/hooks/use-analytics-data.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ interface UseAnalyticsDataResult {
55
data: AnalyticsSnapshot | null;
66
loading: boolean;
77
error: string | null;
8+
lastUpdated: Date | undefined;
89
refetch: () => void;
910
}
1011

@@ -14,6 +15,7 @@ export function useAnalyticsData(): UseAnalyticsDataResult {
1415
const [data, setData] = useState<AnalyticsSnapshot | null>(null);
1516
const [loading, setLoading] = useState(true);
1617
const [error, setError] = useState<string | null>(null);
18+
const [lastUpdated, setLastUpdated] = useState<Date | undefined>(undefined);
1719

1820
const fetchData = useCallback(async () => {
1921
try {
@@ -23,6 +25,8 @@ export function useAnalyticsData(): UseAnalyticsDataResult {
2325
}
2426
const json = await response.json();
2527
setData(json);
28+
// Use the timestamp from the snapshot data (when it was collected)
29+
setLastUpdated(json.timestamp ? new Date(json.timestamp) : undefined);
2630
setError(null);
2731
} catch (err) {
2832
console.error('Failed to fetch analytics data:', err);
@@ -43,6 +47,7 @@ export function useAnalyticsData(): UseAnalyticsDataResult {
4347
data,
4448
loading,
4549
error,
50+
lastUpdated,
4651
refetch: fetchData,
4752
};
4853
}

services/analytics/app/template/[templateName]/template-teams-content.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default function TemplateTeamsContent({ user, templateName }: TemplateTea
1919
const [data, setData] = useState<AnalyticsSnapshot | null>(null);
2020
const [loading, setLoading] = useState(true);
2121
const [error, setError] = useState<string | null>(null);
22+
const [lastUpdated, setLastUpdated] = useState<Date | null>(null);
2223
const [sortColumn, setSortColumn] = useState<SortColumn>('workspaces_for_template');
2324
const [sortDirection, setSortDirection] = useState<SortDirection>('desc');
2425

@@ -39,6 +40,8 @@ export default function TemplateTeamsContent({ user, templateName }: TemplateTea
3940
}
4041
const json = await response.json();
4142
setData(json);
43+
// Use the timestamp from the snapshot data (when it was collected)
44+
setLastUpdated(json.timestamp ? new Date(json.timestamp) : null);
4245
setError(null);
4346
} catch (err) {
4447
console.error('Failed to fetch analytics data:', err);
@@ -188,6 +191,11 @@ export default function TemplateTeamsContent({ user, templateName }: TemplateTea
188191
<p className="text-slate-700 dark:text-slate-300 text-lg">
189192
Team breakdown for this template
190193
</p>
194+
{lastUpdated && (
195+
<p className="text-sm text-slate-500 dark:text-slate-400 mt-2">
196+
Last updated: {lastUpdated.toLocaleTimeString()}
197+
</p>
198+
)}
191199
</div>
192200
<div className="flex items-center gap-4">
193201
{user && (

0 commit comments

Comments
 (0)