mirror of
https://github.com/RWejlgaard/org.git
synced 2026-09-02 01:15:35 +00:00
feat: initialize datepicker when opening set-date modes
Claude-Session: https://claude.ai/code/session_01BA1doywpQD49rP1vezTe9U
This commit is contained in:
parent
ecd261e377
commit
51bd9b16b9
2 changed files with 30 additions and 4 deletions
|
|
@ -159,3 +159,25 @@ func TestCalendarEscCancels(t *testing.T) {
|
||||||
t.Fatalf("expected mode to return to list, got %v", rm.mode)
|
t.Fatalf("expected mode to return to list, got %v", rm.mode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOpeningDeadlineModeInitializesCalendar(t *testing.T) {
|
||||||
|
cfg := config.DefaultConfig()
|
||||||
|
item := &model.Item{Title: "Task", Level: 1}
|
||||||
|
of := &model.OrgFile{Items: []*model.Item{item}}
|
||||||
|
m := InitialModel(of, cfg, false, "")
|
||||||
|
// default deadline key is "d"
|
||||||
|
res, _ := m.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'d'}})
|
||||||
|
rm := res.(uiModel)
|
||||||
|
if rm.mode != modeSetDeadline {
|
||||||
|
t.Fatalf("expected modeSetDeadline, got %v", rm.mode)
|
||||||
|
}
|
||||||
|
if !rm.datepicker.Selected {
|
||||||
|
t.Fatal("expected datepicker to have a selected date")
|
||||||
|
}
|
||||||
|
if rm.dateTextFocused {
|
||||||
|
t.Fatal("expected calendar focus (dateTextFocused false)")
|
||||||
|
}
|
||||||
|
if rm.editingItem != item {
|
||||||
|
t.Fatal("expected editingItem to be the cursor item")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -318,10 +318,12 @@ func (m uiModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
if len(items) > 0 && m.cursor < len(items) {
|
if len(items) > 0 && m.cursor < len(items) {
|
||||||
m.editingItem = items[m.cursor]
|
m.editingItem = items[m.cursor]
|
||||||
m.mode = modeSetDeadline
|
m.mode = modeSetDeadline
|
||||||
|
m.datepicker = newDatePicker(m.editingItem.Deadline)
|
||||||
|
m.dateTextFocused = false
|
||||||
m.textinput.SetValue("")
|
m.textinput.SetValue("")
|
||||||
m.textinput.Placeholder = "YYYY-MM-DD or +N (days from today)"
|
m.textinput.Placeholder = "YYYY-MM-DD or +N (days from today)"
|
||||||
m.textinput.Focus()
|
m.textinput.Blur()
|
||||||
return m, textinput.Blink
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
case key.Matches(msg, m.keys.SetScheduled):
|
case key.Matches(msg, m.keys.SetScheduled):
|
||||||
|
|
@ -329,10 +331,12 @@ func (m uiModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
if len(items) > 0 && m.cursor < len(items) {
|
if len(items) > 0 && m.cursor < len(items) {
|
||||||
m.editingItem = items[m.cursor]
|
m.editingItem = items[m.cursor]
|
||||||
m.mode = modeSetScheduled
|
m.mode = modeSetScheduled
|
||||||
|
m.datepicker = newDatePicker(m.editingItem.Scheduled)
|
||||||
|
m.dateTextFocused = false
|
||||||
m.textinput.SetValue("")
|
m.textinput.SetValue("")
|
||||||
m.textinput.Placeholder = "YYYY-MM-DD or +N (days from today)"
|
m.textinput.Placeholder = "YYYY-MM-DD or +N (days from today)"
|
||||||
m.textinput.Focus()
|
m.textinput.Blur()
|
||||||
return m, textinput.Blink
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
case key.Matches(msg, m.keys.SetPriority):
|
case key.Matches(msg, m.keys.SetPriority):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue