fix date modal left/right

This commit is contained in:
jpt 2025-04-13 12:46:38 -05:00
parent fea33eb62e
commit 257b8795bc

View File

@ -154,9 +154,8 @@ class DateModal(ModalScreen):
def compose(self):
with Vertical():
with Horizontal():
yield Label(f"{self.pieces[0]}")
yield Label(f"{self.pieces[1]}", classes="selected-date")
yield Label(f"{self.pieces[2]}")
for i in range(3):
yield Label(f"{self.pieces[i]}", classes="selected-date" if self.selected == i else "")
yield Label("""(h/j/k/l) move (enter) confirm (esc) quit
(p)ast (t)oday (f)uture""", classes="hints")
@ -173,18 +172,11 @@ class DateModal(ModalScreen):
def action_cursor_left(self):
# cycle Y/M/D
self.selected = (self.selected - 1) % 3
self._update_highlight()
self.mutate_reactive(DateModal.pieces)
def action_cursor_right(self):
self.selected = (self.selected + 1) % 3
self._update_highlight()
def _update_highlight(self):
for idx, lbl in enumerate(self.query("Label")):
if idx == self.selected:
lbl.add_class("selected-date")
else:
lbl.remove_class("selected-date")
self.mutate_reactive(DateModal.pieces)
def max_for(self, piece):
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]