ontv 0.1.3

A rich desktop application for tracking tv shows
Documentation
use crate::prelude::*;

#[derive(Debug, Clone)]
pub(crate) enum Message {}

#[derive(Default)]
pub(crate) struct Errors;

impl Errors {
    pub(crate) fn view(&self, cx: &CtxtRef<'_>) -> Element<'static, Message> {
        let mut page = w::Column::new();

        for e in cx.state.errors().rev() {
            let mut error = w::Column::new();

            match e.id {
                Some(ErrorId::Search(..)) => {
                    error = error.push(
                        w::text("Search error")
                            .size(SUBTITLE_SIZE)
                            .style(cx.warning_text()),
                    );
                }
                None => {
                    error = error.push(
                        w::text("Error")
                            .size(SUBTITLE_SIZE)
                            .style(cx.warning_text()),
                    );
                }
            }

            error = error.push(w::text(format!("At: {}", e.timestamp)).size(SMALL));
            error = error.push(w::text(&e.message));

            for cause in &e.causes {
                error = error.push(w::text(format!("Caused by: {cause}")));
            }

            page = page.push(error.spacing(SPACE));
        }

        default_container(page.spacing(GAP).padding(GAP)).into()
    }
}