Skip to content

Commit

Permalink
feat(filepicker): add file selection persistence
Browse files Browse the repository at this point in the history
- Introduced `FileSelected` field to `Model` to store the selected file name.
- Updated `Update` method to restore the selected file index based on `FileSelected`.
- Adjusted min and max values to ensure the selected file is within the visible range.
  • Loading branch information
CoMfUcIoS committed Sep 30, 2024
1 parent 4382fdf commit 28744cb
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion filepicker/filepicker.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ func New() Model {
maxStack: newStack(),
KeyMap: DefaultKeyMap(),
Styles: DefaultStyles(),
FileSelected: "",
}
}

Expand Down Expand Up @@ -247,8 +248,27 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
if msg.id != m.id {
break
}
if m.FileSelected != "" {
for i, f := range msg.entries {
if f.Name() == m.FileSelected {
m.selected = i
m.FileSelected = ""

break
}
}
}
m.files = msg.entries
m.max = max(m.max, m.Height-1)
if m.selected < m.min {
m.min = m.selected
m.max = m.min + m.Height - 1
} else if m.selected > m.max {
m.max = m.selected
m.min = m.max - m.Height + 1
} else {
m.min = max(0, m.min)
m.max = max(m.Height-1, m.max)
}
case tea.WindowSizeMsg:
if m.AutoHeight {
m.Height = msg.Height - marginBottom
Expand Down

0 comments on commit 28744cb

Please sign in to comment.