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.
Key idea
Replace key binding configuration with event callback
We shouldn't have to configure the key bindings of each input element (
Input
,Select
, andDropDown
) when creating a "page". Instead, these input elements should provide an interface for setting up event callbacks. Each input element should only have two events:Enter
orArrowDown
.Esc
orArrowUp
The event handler callback has type
func (data interface{}, key gocui.Key) error
. You can create a handler to:data
sent by the input element, then decide whether go to the next input element.Esc
that triggered the On Leave event, then the UI should go to the previous page. But if it'sArrowUp
, then we should go to the previous input element on the same page.Create a "Page" widget to create a page with ease
A
Page
element is responsible for:Some PoC
Page
widget to create the DNS configuration page LINK