feat: move "add element" button into the scrollable

This commit is contained in:
electria 2026-06-25 17:23:05 -07:00
commit 52b83efc2c
Signed by: electria
SSH key fingerprint: SHA256:8LlB3ucPbBHqozqkhsNbaV5oG3SlzzqUj8FZDL6IPQs

View file

@ -86,55 +86,58 @@ impl State {
])
.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 {
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,
target_category: i_category - 1,
new_value,
})
} else {
None
})
.into(),
widget::button("")
.on_press_maybe(if i_category < self.table.len() - 1 {
Some(Message::MoveElement {
.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,
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(),
])
.into()
},
))
.align_x(Horizontal::Center)
.push(
widget::button("add element")
.on_press(Message::AddElement { i_category }),
),
)
.into(),
widget::button("add element")
.on_press(Message::AddElement { i_category })
.into(),
])
.align_x(Horizontal::Center)
.into()
}))
.spacing(15)