BACK-555 - Fix TUI task composer editing bugs and add Ctrl+W word delete - #809
Open
janosmiko wants to merge 3 commits into
Open
BACK-555 - Fix TUI task composer editing bugs and add Ctrl+W word delete#809janosmiko wants to merge 3 commits into
janosmiko wants to merge 3 commits into
Conversation
The shipped composer did not work around neo-neo-bblessed defects (verified against the installed library): - textbox backspace deletes then returns before the trailing render (no repaint) - textarea backspace/delete branches are empty under fullUnicode screens (no-op) - list hardcodes selected=0 and ignores the selected option, so the Status picker always opened on Draft - list binds j/k only under vi, which filter-popup never set Fixes: - filter-popup: picker.select(selectedIndex) + vi:true (also fixes the board's own single-select filter popups' preselection and j/k navigation) - task-composer: ignoreKeys backspace/delete on the Title textbox and own deletion + render via deleteLastChar/deleteLastWord; Ctrl+W deletes the previous word in both inputs - resting Status resolves via getDefaultCreateStatus (exported from task-wizard), matching the CLI wizard
Focus was shown only by a gray/yellow border, which is too subtle in the full layout where the Status/Type/Priority/Create/Cancel controls have no cursor. Invert the active control in both layouts, and highlight the label of the active text input (keeping typed text readable) so tab/shift+tab focus is obvious.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes editing bugs in the TUI task composer (shipped in #791) and brings it to BACK-430 first-slice parity. All four bugs trace to
neo-neo-bblesseddefects the composer did not work around, verified against the installed library.Bugs fixed
textarea.ts:449backspace branch is empty underfullUnicode, whichcreateScreenalways setstextbox.ts:117-122deletes then returns before the trailingscreen.render()ignoreKeyson the textbox + composer owns deletion + renderlist.ts:47hardcodesselected = 0and ignores theselectedoption, so the picker always opened on index 0 (Draft)picker.select(selectedIndex)in sharedfilter-popup.tslist.ts:119/124bind j/k only undervi, whichfilter-popupnever setvi: truein sharedfilter-popup.tsThe
filter-popup.tsfixes also correct the board's own filter popups, which had the same preselection and j/k gaps.Added
Parity
getDefaultCreateStatus(exported fromtask-wizard.ts), matching the CLI wizard's canonical "To Do" instead of a literalstatuses[0].Tests
deleteLastChar/deleteLastWord.Verification
bunx tsc --noEmitcleanbun run check .cleanbun test: 1781 pass / 4 skip / 2 fail — the two failures (freezes selected task bytes,runs post-commit hooks against the real index) are pre-existing git-hook tests that also fail on a cleanmaincheckout, unrelated to this change.Note: j/k navigation is a TUI-only interaction the test harness can't drive (list nav binds on the raw
keypressevent); verified manually.