blob: d5a452dbe7b6ce2957132ec4026f2c0fd3ae219d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
use leptos::{
IntoView, component,
error::ErrorBoundary,
prelude::{Children, ClassAttribute, CollectView, ElementChild, Get},
view,
};
use crate::components::site_header::SiteHeader;
#[component]
pub(crate) fn CatchErrors(children: Children) -> impl IntoView {
view! {
<ErrorBoundary fallback=|errors| {
view! {
<SiteHeader
logo=icondata_io::IoRoseSharp
back_location="/"
name="Errors occurred"
/>
<h1>"Uh oh! Something went wrong!"</h1>
<p>"Errors: "</p>
<ul class="flex flex-col gap-1">
{move || {
errors
.get()
.into_iter()
.map(|(_, e)| {
view! {
<li class="bg-gray-200 rounded-lg m-2 p-1">{e.to_string()}</li>
}
})
.collect_view()
}}
</ul>
}
}>{children()}</ErrorBoundary>
}
}
|