Skip to main content

modde_ui/components/
update_banner.rs

1use iced::widget::{button, container, row, text};
2use iced::{Element, Length};
3
4use crate::action_button::{ButtonAction, DescribedButtonExt};
5use crate::app::Message;
6
7pub fn view(update: &modde_core::update_check::UpdateInfo) -> Element<'_, Message> {
8    let label = text(format!(
9        "Update available: modde {} (current: {})",
10        update.latest_version, update.current_version
11    ))
12    .size(13);
13
14    let open = button(text("Open release page").size(12))
15        .style(button::primary)
16        .padding([4, 10])
17        .on_action(ButtonAction::OpenUpdateReleasePage);
18
19    let dismiss = button(text("Dismiss").size(12))
20        .style(button::secondary)
21        .padding([4, 10])
22        .on_action(ButtonAction::DismissUpdateBanner);
23
24    container(
25        row![
26            label,
27            iced::widget::Space::new().width(Length::Fill),
28            open,
29            dismiss
30        ]
31        .align_y(iced::Alignment::Center)
32        .spacing(8),
33    )
34    .padding([6, 10])
35    .width(Length::Fill)
36    .style(container::bordered_box)
37    .into()
38}