Перевод обработчиков нажатия клавиш со строк на объект клавиш, комментарии
This commit is contained in:
parent
c69a7ae84b
commit
2192b3647f
11 changed files with 240 additions and 210 deletions
|
|
@ -3,6 +3,7 @@ package setup
|
|||
import (
|
||||
"bubble/setup/ui"
|
||||
"bubble/types"
|
||||
"github.com/charmbracelet/bubbles/key"
|
||||
"github.com/charmbracelet/bubbles/spinner"
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
"github.com/charmbracelet/lipgloss"
|
||||
|
|
@ -60,25 +61,25 @@ func (m *ModalModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
return m, nil
|
||||
case tea.KeyMsg:
|
||||
//Отслеживаем нажатие клавиш модального окна
|
||||
switch msg.String() {
|
||||
case "left", "shift+tab":
|
||||
//Обработчик нажатия клавиш left и shift+tab нужен для перевода фокуса на прошлую кнопку.
|
||||
switch {
|
||||
case key.Matches(msg, types.MainKeys.Up) || key.Matches(msg, types.MainKeys.Left):
|
||||
//Обработчик нажатия клавиш перехода на прошлую кнопку.
|
||||
//Уменьшаем фокус, если фокус стал меньше 0, значит он вышел за пределы кнопок,
|
||||
//переводим его на последнюю кнопку.
|
||||
m.focus--
|
||||
if m.focus < 0 {
|
||||
m.focus = len(m.buttons) - 1
|
||||
}
|
||||
case "right", "tab":
|
||||
//Обработчик нажатия клавиш right и tab нужен для перевода фокуса на следующую кнопку.
|
||||
case key.Matches(msg, types.MainKeys.Down) || key.Matches(msg, types.MainKeys.Right):
|
||||
//Обработчик нажатия клавиш перехода на следующую кнопку.
|
||||
//Увеличиваем фокус, если фокус стал равен количество кнопок, значит он вышел за их пределы,
|
||||
//переводим его на первую позицию, то есть на 0
|
||||
m.focus++
|
||||
if m.focus >= len(m.buttons) {
|
||||
m.focus = 0
|
||||
}
|
||||
case "enter":
|
||||
//Обработчик клавиши enter нужен для подтверждения кнопки.
|
||||
case key.Matches(msg, types.MainKeys.Confirm):
|
||||
//Обработчик клавиши подтверждения выбранной кнопки.
|
||||
//Если у модального окна есть кнопки.
|
||||
//Получаем значение нажатой кнопки, а после если у модального окна прописана функция,
|
||||
//то передаем значение кнопки в функцию модального окна.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue