feat: move "add category" to the top
this makes everything symmetrical
This commit is contained in:
parent
c28204bd9f
commit
05ee2fc381
1 changed files with 70 additions and 64 deletions
146
src/main.rs
146
src/main.rs
|
|
@ -64,78 +64,84 @@ impl State {
|
||||||
state
|
state
|
||||||
}
|
}
|
||||||
fn view(&self) -> Element<'_, Message, Theme, Renderer> {
|
fn view(&self) -> Element<'_, Message, Theme, Renderer> {
|
||||||
widget::row(self.table.iter().enumerate().map(|(i_category, category)| {
|
widget::column([
|
||||||
widget::column([
|
widget::button("add category")
|
||||||
widget::row([
|
.on_press(Message::AddCategory)
|
||||||
widget::text_input("category", &category.header)
|
.into(),
|
||||||
.on_input(move |new_value| Message::CategoryChanged {
|
widget::row(self.table.iter().enumerate().map(|(i_category, category)| {
|
||||||
i_category,
|
widget::column([
|
||||||
new_value,
|
widget::row([
|
||||||
})
|
widget::text_input("category", &category.header)
|
||||||
.size(30)
|
.on_input(move |new_value| Message::CategoryChanged {
|
||||||
.into(),
|
i_category,
|
||||||
widget::button("X")
|
new_value,
|
||||||
.style(widget::button::danger)
|
})
|
||||||
.on_press(Message::RemoveCategory { i_category })
|
.size(30)
|
||||||
.height(50)
|
.into(),
|
||||||
|
widget::button("X")
|
||||||
|
.style(widget::button::danger)
|
||||||
|
.on_press(Message::RemoveCategory { i_category })
|
||||||
|
.height(50)
|
||||||
|
.into(),
|
||||||
|
])
|
||||||
|
.align_y(Vertical::Center)
|
||||||
|
.into(),
|
||||||
|
widget::scrollable(widget::column(category.elements.iter().enumerate().map(
|
||||||
|
|(i_element, element)| {
|
||||||
|
widget::row([
|
||||||
|
widget::text_input("content", &element)
|
||||||
|
.on_input(move |new_value| Message::ElementChanged {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
new_value,
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
|
widget::button("←")
|
||||||
|
.on_press_maybe(if i_category > 0 {
|
||||||
|
Some(Message::MoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
target_category: i_category - 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
|
widget::button("→")
|
||||||
|
.on_press_maybe(if i_category < self.table.len() - 1 {
|
||||||
|
Some(Message::MoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
target_category: i_category + 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
|
widget::button("X")
|
||||||
|
.style(widget::button::warning)
|
||||||
|
.on_press(Message::RemoveElement {
|
||||||
|
i_category,
|
||||||
|
i_element,
|
||||||
|
})
|
||||||
|
.into(),
|
||||||
|
])
|
||||||
|
.into()
|
||||||
|
},
|
||||||
|
)))
|
||||||
|
.into(),
|
||||||
|
widget::button("add element")
|
||||||
|
.on_press(Message::AddElement { i_category })
|
||||||
.into(),
|
.into(),
|
||||||
])
|
])
|
||||||
.align_y(Vertical::Center)
|
.align_x(Horizontal::Center)
|
||||||
.into(),
|
.into()
|
||||||
widget::scrollable(widget::column(category.elements.iter().enumerate().map(
|
}))
|
||||||
|(i_element, element)| {
|
.spacing(15)
|
||||||
widget::row([
|
.padding(15)
|
||||||
widget::text_input("content", &element)
|
.into(),
|
||||||
.on_input(move |new_value| Message::ElementChanged {
|
])
|
||||||
i_category,
|
.align_x(Horizontal::Center)
|
||||||
i_element,
|
|
||||||
new_value,
|
|
||||||
})
|
|
||||||
.into(),
|
|
||||||
widget::button("←")
|
|
||||||
.on_press_maybe(if i_category > 0 {
|
|
||||||
Some(Message::MoveElement {
|
|
||||||
i_category,
|
|
||||||
i_element,
|
|
||||||
target_category: i_category - 1,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
})
|
|
||||||
.into(),
|
|
||||||
widget::button("→")
|
|
||||||
.on_press_maybe(if i_category < self.table.len() - 1 {
|
|
||||||
Some(Message::MoveElement {
|
|
||||||
i_category,
|
|
||||||
i_element,
|
|
||||||
target_category: i_category + 1,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
})
|
|
||||||
.into(),
|
|
||||||
widget::button("X")
|
|
||||||
.style(widget::button::warning)
|
|
||||||
.on_press(Message::RemoveElement {
|
|
||||||
i_category,
|
|
||||||
i_element,
|
|
||||||
})
|
|
||||||
.into(),
|
|
||||||
])
|
|
||||||
.into()
|
|
||||||
},
|
|
||||||
)))
|
|
||||||
.into(),
|
|
||||||
widget::button("add element")
|
|
||||||
.on_press(Message::AddElement { i_category })
|
|
||||||
.into(),
|
|
||||||
])
|
|
||||||
.align_x(Horizontal::Center)
|
|
||||||
.into()
|
|
||||||
}))
|
|
||||||
.push(widget::button("add category").on_press(Message::AddCategory))
|
|
||||||
.spacing(15)
|
|
||||||
.padding(15)
|
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
fn update(&mut self, message: Message) -> Task<Message> {
|
fn update(&mut self, message: Message) -> Task<Message> {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue