feat(tui-go): interactive clarification question view
Render stage clarification questions as an AskUserQuestion-style form: header chip, prompt, selectable option chips, and a free-text custom slot. Arrow/hjkl nav, space to select, e for custom, enter to submit. Submit guards on all-answered and sends ClarificationResponse; the parked stage re-runs with the answers in context.
This commit is contained in:
@@ -55,6 +55,9 @@ func (m Model) View() string {
|
||||
m.renderFooter(),
|
||||
)
|
||||
|
||||
if m.displayState() == StateClarification {
|
||||
return m.center(m.clarificationModal())
|
||||
}
|
||||
if m.overlay != OverlayNone {
|
||||
return m.renderOverlay(base)
|
||||
}
|
||||
@@ -218,6 +221,9 @@ func (m Model) renderFooter() string {
|
||||
case m.displayState() == StateApproval:
|
||||
// Approval actions live in the band itself; the footer offers navigation only.
|
||||
hints = []string{hint("l", "back"), hint("e", "events"), hint("q", "quit")}
|
||||
case m.displayState() == StateClarification:
|
||||
// The question form owns its keys; the footer mirrors the essentials.
|
||||
hints = []string{hint("←→", "option"), hint("↑↓", "question"), hint("spc", "select"), hint("enter", "submit"), hint("esc", "later")}
|
||||
case m.displayState() == StateIdle:
|
||||
if nrw {
|
||||
hints = []string{hint("i", "name"), hint("/", "filter"), hint("w", "wf"), hint("p", "cmds"), hint("q", "quit")}
|
||||
|
||||
Reference in New Issue
Block a user