pass whole state to setter, to emit tasks

This commit is contained in:
🪞👃🪞 2025-03-24 04:54:35 +02:00
parent d26c46d6e1
commit 859da8e5d1
5 changed files with 85 additions and 48 deletions

View file

@ -78,19 +78,27 @@ impl Taggart {
{
let value = (column.getter)(&self.entries[self.cursor]);
let value = format!("{}", value.unwrap_or_default());
self.mode = Some(Mode::Edit { index: value.len(), value });
self.mode = Some(Mode::Edit {
index: value.len(),
value: value.into(),
});
}
}
pub fn edit_cancel (&mut self) {
self.mode = None;
}
pub fn edit_confirm (&mut self) {
if let Some(Mode::Edit { value, .. }) = &self.mode
let value = if let Some(Mode::Edit { value, .. }) = &self.mode {
Some(value.clone())
} else {
None
};
if let Some(value) = value
&& let Some(column) = self.columns.0.get(self.column)
&& let Some(setter) = &column.setter
&& self.entries.get_mut(self.cursor).is_some()
{
setter(self.entries.as_mut_slice(), self.cursor, value);
setter(self, self.cursor, value.as_ref());
self.mode = None;
}
}
@ -98,7 +106,7 @@ impl Taggart {
if let Some(Mode::Edit { value, index }) = &self.mode {
self.mode = Some(Mode::Edit {
index: *index + 1,
value: format!("{value}{c}")
value: format!("{value}{c}").into()
});
}
}