feat(meetings): center clock, fullscreen toggle, quick-note tab (#583)
- Replace HeaderClock with richer analog+weekday+digital block, always
centered in the header (both president and normal views). Drop the
PresidentClockBar render from the toolbar; the dead helper is left
in place but unused.
- Lift fullscreen state to ExecutiveMeetingsPageInner with
sessionStorage persistence, Esc handler, auto-exit when the user
leaves the schedule tab. Hide the page header when active and show a
floating "Exit fullscreen" pill. New Maximize/Minimize toggle in the
schedule toolbar portal.
- Add MeetingsQuickNoteTab: a fixed amber vertical pill pinned to the
left edge of the schedule view that navigates to /notes?new=1.
- notes.tsx: detect ?new=1, switch to the Active tab, bump a numeric
openTrigger that the top Composer reacts to by opening + focusing
the textarea, then scrub the query param so navigation doesn't
re-trigger.
- i18n: add executiveMeetings.fullscreen.{enter,exit} and
executiveMeetings.quickNote.label in ar.json and en.json.
tsc clean. Push to Gitea still blocked by Tailscale; user to retry.
This commit is contained in:
@@ -1173,7 +1173,7 @@
|
||||
"exit": "الخروج من ملء الشاشة"
|
||||
},
|
||||
"quickNote": {
|
||||
"label": "اكتب ملاحظة"
|
||||
"label": "اكتب ملاحظة…"
|
||||
},
|
||||
"noMeetings": "لا توجد اجتماعات في هذا اليوم",
|
||||
"virtual": "اتصال مرئي",
|
||||
|
||||
@@ -1081,7 +1081,7 @@
|
||||
"exit": "Exit fullscreen"
|
||||
},
|
||||
"quickNote": {
|
||||
"label": "Take a note"
|
||||
"label": "Take a note…"
|
||||
},
|
||||
"noMeetings": "No meetings scheduled for this day",
|
||||
"virtual": "Virtual",
|
||||
|
||||
@@ -820,7 +820,7 @@ function MeetingsQuickNoteTab({
|
||||
onClick: () => void;
|
||||
}) {
|
||||
const { t } = useTranslation();
|
||||
const label = t("executiveMeetings.quickNote.label", lang === "ar" ? "اكتب ملاحظة" : "Take a note");
|
||||
const label = t("executiveMeetings.quickNote.label", lang === "ar" ? "اكتب ملاحظة…" : "Take a note…");
|
||||
// Tab sits on the page edge that is visually "left" in LTR and "right"
|
||||
// in RTL — but the spec calls for "left of meetings page", so we pin
|
||||
// to physical left in both directions. Hidden in print.
|
||||
@@ -831,7 +831,7 @@ function MeetingsQuickNoteTab({
|
||||
aria-label={label}
|
||||
title={label}
|
||||
data-testid="em-quick-note-tab"
|
||||
className="hidden md:flex fixed left-0 top-[40vh] z-30 flex-col items-center justify-center gap-2 w-7 py-3 rounded-r-lg bg-amber-200 hover:bg-amber-300 border border-amber-300 border-l-0 text-[#0B1E3F] shadow-sm transition-colors print:hidden"
|
||||
className="flex fixed left-0 top-[40vh] z-30 flex-col items-center justify-center gap-2 w-7 py-3 rounded-r-lg bg-amber-200 hover:bg-amber-300 border border-amber-300 border-l-0 text-[#0B1E3F] shadow-sm transition-all duration-150 hover:translate-x-0.5 print:hidden"
|
||||
style={{ writingMode: "vertical-rl" as const }}
|
||||
>
|
||||
<Plus className="w-4 h-4 rotate-90" aria-hidden="true" />
|
||||
|
||||
Reference in New Issue
Block a user