diff --git a/artifacts/tx-os/src/pages/executive-meetings.tsx b/artifacts/tx-os/src/pages/executive-meetings.tsx index 84e1acbe..6add65c2 100644 --- a/artifacts/tx-os/src/pages/executive-meetings.tsx +++ b/artifacts/tx-os/src/pages/executive-meetings.tsx @@ -115,7 +115,7 @@ import { EditableCell } from "@/components/editable-cell"; // from the schedule row quick-actions menu shares one implementation. import { PostponeDialog } from "@/components/executive-meetings/upcoming-meeting-alert"; import { AnalogClock } from "@/components/executive-meetings/analog-clock"; -import { formatDate, formatWeekday } from "@/lib/i18n-format"; +import { formatDate, formatTime as formatTimeI18n, formatWeekday } from "@/lib/i18n-format"; import { safeHtml, htmlToPlainText, wrapAsParagraph } from "@/lib/safe-html"; import { ALERT_COLOR_PRESETS, @@ -781,6 +781,34 @@ export default function ExecutiveMeetingsPage() { ); } +function PresidentClockBar({ date, lang }: { date: string; lang: "ar" | "en" }) { + const [now, setNow] = useState(() => new Date()); + useEffect(() => { + const id = window.setInterval(() => setNow(new Date()), 1000); + return () => window.clearInterval(id); + }, []); + return ( +
+ +
+
+ {formatWeekday(date, lang, "long")} + ยท + + {formatTimeI18n(now, lang, { hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: true })} + +
+
+ {formatDate(date, lang)} +
+
+
+ ); +} + function HeaderClock({ lang }: { lang: "ar" | "en" }) { const [now, setNow] = useState(() => new Date()); useEffect(() => { @@ -2677,20 +2705,7 @@ function ScheduleSection({ /> {isPresidentView && ( -
- -
-
- {formatWeekday(date, lang, "long")} -
-
- {formatDate(date, lang)} -
-
-
+ )} );