From 065d1c257180add4a280d80911237fa0f502aad2 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Wed, 23 Sep 2026 22:08:44 -0400 Subject: [PATCH] Post sits after the tag, not under the ledger A footer across the panel put Post directly below the ledger in the bottom dock, since the ledger is the tall column -- so you could read a figure, hit Post and never pass the tag. An untagged adjustment is invisible to the bridge and ungrouped in the change log, so the layout has to route you through that field rather than leave it beside the work. Co-Authored-By: Claude Opus 5 --- ui/src/components/OperationPanel.jsx | 29 +++++++++++++--------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/ui/src/components/OperationPanel.jsx b/ui/src/components/OperationPanel.jsx index a4df1de..cbb6adf 100644 --- a/ui/src/components/OperationPanel.jsx +++ b/ui/src/components/OperationPanel.jsx @@ -1395,6 +1395,19 @@ export default function OperationPanel({ placeholder="optional" className={`${TEXT} w-full`} /> + {/* Last field, then the button. In the bottom dock the ledger is the tall + column and this one is short, so a footer under both put Post directly + below the ledger -- you could read a figure, hit Post, and never pass + the tag at all. An untagged adjustment is invisible to the bridge and + to the change log's grouping, so the layout has to walk you through + the field rather than leave it off to the side. */} +
+ submitOp(activeOp)} busy={!!opBusy}> + {opBusy ? POSTING : POST} + + {opBusy && writing rows…} +
+ ) @@ -1476,22 +1489,6 @@ export default function OperationPanel({ )} - {/* Last, because it is last: pick the operation, read the ledger, name - the change, post it. The blank label keeps Post in the same column as - every other button in the panel rather than at an edge of its own. - Sticky, because the bottom dock is a fixed height with its own scroll - -- a primary action that has to be scrolled to is a primary action - people miss. */} - {hasSlice && ( -
- - submitOp(activeOp)} busy={!!opBusy}> - {opBusy ? POSTING : POST} - - - {opBusy && writing rows — the pivot updates when it finishes} -
- )} ) }