diff --git a/internal/tui/components/dialogs/filepicker/filepicker.go b/internal/tui/components/dialogs/filepicker/filepicker.go index c3bda21e1577e47ec7b679eb958c70c5160e13a0..1a427a2a19751c3a5888d0b44eea00cb84042d3f 100644 --- a/internal/tui/components/dialogs/filepicker/filepicker.go +++ b/internal/tui/components/dialogs/filepicker/filepicker.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/charmbracelet/bubbles/v2/filepicker" + "github.com/charmbracelet/bubbles/v2/help" "github.com/charmbracelet/bubbles/v2/key" tea "github.com/charmbracelet/bubbletea/v2" "github.com/charmbracelet/lipgloss/v2" @@ -36,6 +37,8 @@ type model struct { filePicker filepicker.Model highlightedFile string image image.Model + keyMap KeyMap + help help.Model } func NewFilePickerCmp() FilePicker { @@ -51,7 +54,15 @@ func NewFilePickerCmp() FilePicker { fp.SetHeight(fileSelectionHight) image := image.New(1, 1, "") - return &model{filePicker: fp, image: image} + + help := help.New() + help.Styles = t.S().Help + return &model{ + filePicker: fp, + image: image, + keyMap: DefaultKeyMap(), + help: help, + } } func (m *model) Init() tea.Cmd { @@ -71,8 +82,10 @@ func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { styles.File = styles.File.Width(m.width) m.filePicker.Styles = styles return m, nil - case tea.KeyPressMsg: + if key.Matches(msg, m.keyMap.Close) { + return m, util.CmdHandler(dialogs.CloseDialogMsg{}) + } if key.Matches(msg, m.filePicker.KeyMap.Back) { // make sure we don't go back if we are at the home directory homeDir, _ := os.UserHomeDir() @@ -114,6 +127,7 @@ func (m *model) View() tea.View { t.S().Base.Padding(0, 1, 1, 1).Render(core.Title("Add Image", m.width-4)), m.imagePreview(), m.filePicker.View(), + t.S().Base.Width(m.width-2).PaddingLeft(1).AlignHorizontal(lipgloss.Left).Render(m.help.View(m.keyMap)), ) return tea.NewView(m.style().Render(content)) } diff --git a/internal/tui/components/dialogs/filepicker/keys.go b/internal/tui/components/dialogs/filepicker/keys.go index d5f3a971808ff30e1503e1c4654944b867fd90b0..f8b18a93534853073be473e1aba6ce5332f0d488 100644 --- a/internal/tui/components/dialogs/filepicker/keys.go +++ b/internal/tui/components/dialogs/filepicker/keys.go @@ -12,7 +12,6 @@ type KeyMap struct { Up, Forward, Backward, - InsertCWD, Close key.Binding } @@ -38,10 +37,7 @@ func DefaultKeyMap() KeyMap { key.WithKeys("left", "h"), key.WithHelp("left/h", "move backward"), ), - InsertCWD: key.NewBinding( - key.WithKeys("i"), - key.WithHelp("i", "manual path input"), - ), + Close: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "close/exit"), @@ -63,8 +59,8 @@ func (k KeyMap) FullHelp() [][]key.Binding { // ShortHelp implements help.KeyMap. func (k KeyMap) ShortHelp() []key.Binding { return []key.Binding{ - k.InsertCWD, key.NewBinding( + key.WithKeys("right", "l", "left", "h", "up", "k", "down", "j"), key.WithHelp("↑↓←→", "navigate"), ), k.Select,