diff --git a/artifacts/tx-os/src/pages/notes.tsx b/artifacts/tx-os/src/pages/notes.tsx index c2743787..82bafdf2 100644 --- a/artifacts/tx-os/src/pages/notes.tsx +++ b/artifacts/tx-os/src/pages/notes.tsx @@ -777,14 +777,32 @@ export default function NotesPage() { The sticky header above keeps the controls pinned. */}
- {/* Task #514: composer moved INSIDE the main content column so it - shares the same row (and same top edge) as the FoldersRail on - desktop. On narrow widths the row stacks (`flex-col`); the - `order-*` classes keep the composer ABOVE the folders rail in - that case so the original mobile reading order is preserved. - Hidden conditions (Inbox/Sent/Archived/Shared) are unchanged - — see `showTopComposer`. */} -
+ {/* Task #514: switched the folders+content row from flex to CSS + grid so the top composer can sit at the SAME vertical + position as the FoldersRail on desktop, while still + preserving the original mobile reading order + (composer → rail → content). Pure flex can't do both: on + desktop we need composer + content stacked in the right + column, on mobile we need composer above the rail — + incompatible with a single flex direction. Grid solves it + with explicit `col-start` / `row-start` placement on md+ + and natural `order-*` flow on mobile. Hidden-composer views + (Inbox / Sent / Archived / Shared-with-me) collapse cleanly + to the original two-cell layout via conditional row-span + / row-start. */} +
+ {showTopComposer && ( +
+ setSendForNoteId(id)} + /> +
+ )} {showFolders && ( setFolderShareFor(f)} mode={view === "active" && folderSelection.kind === "all" ? "chips-only" : "rail"} - className={showTopComposer ? "order-2 md:order-1" : undefined} + className={`order-2 md:order-none md:col-start-1 md:row-start-1${ + showTopComposer ? " md:row-span-2" : "" + }`} /> )} -
- {showTopComposer && ( -
- setSendForNoteId(id)} - /> -
- )} +
{view === "active" && folderSelection.kind === "shared-folder" && ( // Recipient view of a folder shared with the current user. Rendered // before the regular active branch so we never mount the Composer