ShowMenuModel
is used to create an interactive menu using Bubble Tea, which allows users to make a single selection from a list of choices.
Field | Type | Description |
---|---|---|
Default | string | The default selected item in the menu. |
Other | bool | Flag to include an "Other" option for custom input. |
OtherString | string | The string displayed for the "Other" option. |
Prompt | string | The prompt message displayed above the choices. |
Choices | []string | The list of choices available in the menu. |
Selected | map[int]string | The map tracking which items are selected. |
cursor | int | The cursor's current position in the choice list. |
typing | bool | Flag indicating if the user is currently typing. |
textInput | textinput.Model | The model for text input when "Other" is selected. |
ShowMenu
displays an interactive menu using the ShowMenuModel
and returns the user's selection as a string.
menu := ShowMenuModel{
Prompt: "Select an option:",
Choices: []string{"Option 1", "Option 2"},
Other: true,
}
selected := ShowMenu(menu, nil)
fmt.Println("Selected:", selected)
ShowMenuMultipleModel
is similar to ShowMenuModel
but allows for multiple selections.
Field | Type | Description |
---|---|---|
Defaults | []string | The default selections. |
Prompt | string | The prompt message displayed above the choices. |
Choices | []string | The list of choices available in the menu. |
Selected | map[int]string | The map tracking which items are selected. |
cursor | int | The cursor's current position in the choice list. |
typing | bool | Flag indicating if the user is currently typing. |
textInput | textinput.Model | The model for text input when "Other" is selected. |
Other | bool | Flag to include an "Other" option for custom input. |
OtherString | string | The string displayed for the "Other" option. |
SelectionLimit | int | The maximum number of selections allowed. |
SelectedDelimiter | string | The delimiter for selected items in the returned string. |
ShowMenuMultipleOptions
displays an interactive menu for multiple selections using the ShowMenuMultipleModel
.
multiMenu := ShowMenuMultipleModel{
Prompt: "Select options:",
Choices: []string{"Option 1", "Option 2", "Option 3"},
Other: true,
}
selectedItems := ShowMenuMultipleOptions(multiMenu, nil)
fmt.Println("Selected items:", selectedItems)
These menu models and functions create interactive, terminal-based menus for single or multiple selections, with support for custom user input.