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} -
- )} ) }