@@ -5,6 +5,7 @@ import (
55 "strings"
66
77 "github.com/charmbracelet/bubbles/v2/filepicker"
8+ "github.com/charmbracelet/bubbles/v2/help"
89 "github.com/charmbracelet/bubbles/v2/key"
910 tea "github.com/charmbracelet/bubbletea/v2"
1011 "github.com/charmbracelet/lipgloss/v2"
@@ -36,6 +37,8 @@ type model struct {
3637 filePicker filepicker.Model
3738 highlightedFile string
3839 image image.Model
40+ keyMap KeyMap
41+ help help.Model
3942}
4043
4144func NewFilePickerCmp() FilePicker {
@@ -51,7 +54,15 @@ func NewFilePickerCmp() FilePicker {
5154 fp.SetHeight(fileSelectionHight)
5255
5356 image := image.New(1, 1, "")
54− return &model{filePicker: fp, image: image}
57+
58+ help := help.New()
59+ help.Styles = t.S().Help
60+ return &model{
61+ filePicker: fp,
62+ image: image,
63+ keyMap: DefaultKeyMap(),
64+ help: help,
65+ }
5566}
5667
5768func (m *model) Init() tea.Cmd {
@@ -71,8 +82,10 @@ func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
7182 styles.File = styles.File.Width(m.width)
7283 m.filePicker.Styles = styles
7384 return m, nil
74−
7585 case tea.KeyPressMsg:
86+ if key.Matches(msg, m.keyMap.Close) {
87+ return m, util.CmdHandler(dialogs.CloseDialogMsg{})
88+ }
7689 if key.Matches(msg, m.filePicker.KeyMap.Back) {
7790 // make sure we don't go back if we are at the home directory
7891 homeDir, _ := os.UserHomeDir()
@@ -114,6 +127,7 @@ func (m *model) View() tea.View {
114127 t.S().Base.Padding(0, 1, 1, 1).Render(core.Title("Add Image", m.width-4)),
115128 m.imagePreview(),
116129 m.filePicker.View(),
130+ t.S().Base.Width(m.width-2).PaddingLeft(1).AlignHorizontal(lipgloss.Left).Render(m.help.View(m.keyMap)),
117131 )
118132 return tea.NewView(m.style().Render(content))
119133}