From 52b83efc2ceb2f822a8a00a3e8a8ef5f800decb6 Mon Sep 17 00:00:00 2001 From: electria Date: Thu, 25 Jun 2026 17:23:05 -0700 Subject: [PATCH] feat: move "add element" button into the scrollable --- src/main.rs | 85 +++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/src/main.rs b/src/main.rs index 82b846d..891bb47 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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)