use iced::{Element, Length, Padding, widget::container};
use crate::style::chrome_container_style_with_radius;
#[derive(Debug, PartialEq)]
pub(crate) struct FooterGeometry {
pub(crate) pad_x: f32,
pub(crate) pad_y: f32,
pub(crate) radius: f32,
}
impl FooterGeometry {
pub(crate) const fn unstyled() -> Self {
Self {
pad_x: 16.0,
pad_y: 6.0,
radius: 0.0,
}
}
}
pub fn app_footer<'a, Message>(content: Element<'a, Message>) -> Element<'a, Message>
where
Message: Clone + 'a,
{
build_footer(content, FooterGeometry::unstyled())
}
pub(crate) fn build_footer<'a, Message>(
content: Element<'a, Message>,
geometry: FooterGeometry,
) -> Element<'a, Message>
where
Message: Clone + 'a,
{
container(content)
.width(Length::Fill)
.padding(Padding::from([geometry.pad_y, geometry.pad_x]))
.style(move |theme| chrome_container_style_with_radius(theme, geometry.radius))
.into()
}