blob: fed6c4c5f9570ed7a99031ed3b92d0bcab819413 (
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
41
42
43
44
45
46
47
48
49
50
|
// rocie - An enterprise grocery management system - Web app
//
// Copyright (C) 2026 Benedikt Peetz <benedikt.peetz@b-peetz.de>
// SPDX-License-Identifier: GPL-3.0-or-later
//
// This file is part of Rocie.
//
// You should have received a copy of the License along with this program.
// If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
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>
}
}
|