Task #602: quick-note button in schedule fullscreen mode
The amber "ملاحظة / Note" button (#600) lives in the Executive Meetings page header. The whole header is hidden in fullscreen, so the quick-note panel — which itself already works in fullscreen — had no entry point. User had to exit fullscreen, add the note, then re-enter. Added a floating amber pill next to the existing fullscreen-exit pill at the top-end of the page. Mirrors the header button exactly: - Same handler (setQuickNoteOpen + setQuickNoteTrigger). - Same gating: only Schedule section, hidden while the panel is open or while the bulk-actions toolbar is active. - Same i18n key (executiveMeetings.quickNote.label) — no new strings. - Same amber palette (bg-amber-100 / border-amber-300 / text-[#0B1E3F]) with the Plus icon and label. - Positioned at `top-3 end-14` so it sits inboard of the exit pill (`end-3`, w-9) in both LTR (to the left) and RTL (to the right), with no overlap. - `print:hidden`, `data-testid="em-fullscreen-quicknote"`. Single JSX addition (~36 lines incl. comment) in artifacts/tx-os/src/pages/executive-meetings.tsx, right after the exit-fullscreen button. No other files touched. No new state, no new i18n, no API changes, no dependency changes. Non-fullscreen layout is untouched. tx-os tsc passes.
This commit is contained in:
@@ -1016,6 +1016,43 @@ function ExecutiveMeetingsPageInner() {
|
|||||||
<Minimize2 className="w-5 h-5" />
|
<Minimize2 className="w-5 h-5" />
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
|
{/* #602: floating amber quick-note pill — the only entry point to
|
||||||
|
the quick-note panel while the page header is hidden in
|
||||||
|
fullscreen. Same gating + handler as the header button at
|
||||||
|
~L1067 so the two behave identically; positioned inboard of
|
||||||
|
the exit pill (end-14 sits to the left of end-3 in LTR and to
|
||||||
|
the right in RTL). Hidden when the panel is already open or
|
||||||
|
while the bulk-actions toolbar is competing for attention. */}
|
||||||
|
{isFullscreen &&
|
||||||
|
section === "schedule" &&
|
||||||
|
!bulkToolbarActive &&
|
||||||
|
!quickNoteOpen && (
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onClick={() => {
|
||||||
|
setQuickNoteOpen(true);
|
||||||
|
setQuickNoteTrigger((n) => n + 1);
|
||||||
|
}}
|
||||||
|
data-testid="em-fullscreen-quicknote"
|
||||||
|
aria-label={t(
|
||||||
|
"executiveMeetings.quickNote.label",
|
||||||
|
lang === "ar" ? "ملاحظة" : "Note",
|
||||||
|
)}
|
||||||
|
title={t(
|
||||||
|
"executiveMeetings.quickNote.label",
|
||||||
|
lang === "ar" ? "ملاحظة" : "Note",
|
||||||
|
)}
|
||||||
|
className="fixed top-3 end-14 z-50 inline-flex items-center gap-1.5 rounded-full bg-amber-100 hover:bg-amber-200 border border-amber-300 text-[#0B1E3F] h-9 px-3 text-sm font-medium shadow-lg print:hidden"
|
||||||
|
>
|
||||||
|
<Plus className="w-4 h-4" />
|
||||||
|
<span>
|
||||||
|
{t(
|
||||||
|
"executiveMeetings.quickNote.label",
|
||||||
|
lang === "ar" ? "ملاحظة" : "Note",
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
<header
|
<header
|
||||||
ref={headerRef}
|
ref={headerRef}
|
||||||
data-testid="em-page-header"
|
data-testid="em-page-header"
|
||||||
|
|||||||
Reference in New Issue
Block a user