From 67c5da57bf4aa1283cc5af4b8e3fe257654054dc Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Tue, 9 Jun 2026 21:11:11 +0200 Subject: [PATCH] feat(web): render objects 'Updated' as a tz-aware timestamp via formatTimestamp (#42) --- web/src/objects/objects-table.tsx | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/web/src/objects/objects-table.tsx b/web/src/objects/objects-table.tsx index 046c33f..8073e32 100644 --- a/web/src/objects/objects-table.tsx +++ b/web/src/objects/objects-table.tsx @@ -8,6 +8,7 @@ import { useObjectsPage } from "../api/queries"; import { useDebouncedValue } from "../lib/use-debounced-value"; import { focusRing } from "../lib/focus-ring"; import { segmentClass, rowStateClass } from "../lib/class-recipes"; +import { formatTimestamp } from "../lib/format-timestamp"; import { useConfig } from "../config/config-context"; import { VisibilityBadge } from "./visibility-badge"; import { Button, buttonVariants } from "@/components/ui/button"; @@ -120,16 +121,6 @@ export function ObjectsTable() { else next.set("offset", String(value)); }); - const dateFmt = new Intl.DateTimeFormat(i18n.language, { - dateStyle: "medium", - timeZone: default_timezone, - }); - const formatUpdated = (iso: string) => { - const parsed = new Date(iso); - - return Number.isNaN(parsed.getTime()) ? iso : dateFmt.format(parsed); - }; - const headerCell = (col: SortColumn) => { const active = sort === col; const ariaSort = active ? (order === "asc" ? "ascending" : "descending") : "none"; @@ -267,7 +258,9 @@ export function ObjectsTable() { {object.current_location ?? "—"} {object.number_of_objects} - {formatUpdated(object.updated_at)} + + {formatTimestamp(object.updated_at, default_timezone, i18n.language)} + ); })}