2023-09-08 11:53:08 +02:00
|
|
|
use crate::components::modal_box::DialogOpener;
|
|
|
|
|
use leptos::*;
|
2023-09-22 21:26:13 +02:00
|
|
|
use crate::backend::data::ApiResponse;
|
2023-09-27 11:36:52 +02:00
|
|
|
use crate::locales::trl;
|
2023-09-08 11:53:08 +02:00
|
|
|
|
|
|
|
|
#[component]
|
|
|
|
|
pub fn ServerErr(
|
2023-09-22 21:26:13 +02:00
|
|
|
result: RwSignal<Option<Result<ApiResponse<()>, ServerFnError>>>,
|
2023-09-08 11:53:08 +02:00
|
|
|
opener: DialogOpener,
|
|
|
|
|
) -> impl IntoView {
|
2023-09-15 13:55:01 +02:00
|
|
|
view! {{move || {
|
2023-09-08 11:53:08 +02:00
|
|
|
if let Some(val) = result.get() {
|
2023-09-27 11:36:52 +02:00
|
|
|
match val {
|
|
|
|
|
Ok(resp) => if let ApiResponse::Error(err) = resp {
|
2023-10-09 17:33:20 +02:00
|
|
|
opener.display_err();
|
2023-09-27 11:36:52 +02:00
|
|
|
view! {
|
2023-10-09 17:33:20 +02:00
|
|
|
<div class="alert alert-danger" style={move || {
|
|
|
|
|
if opener.show_err() {
|
|
|
|
|
""
|
|
|
|
|
} else {
|
|
|
|
|
"display: none"
|
|
|
|
|
}
|
|
|
|
|
}}>
|
2023-09-27 11:36:52 +02:00
|
|
|
{trl(&err)}
|
|
|
|
|
</div>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
opener.hide();
|
|
|
|
|
view! {<div></div>}
|
|
|
|
|
}
|
|
|
|
|
Err(e) => {
|
|
|
|
|
view! {
|
|
|
|
|
<div class="alert alert-danger">
|
|
|
|
|
"Server error: " {e.to_string()}
|
|
|
|
|
</div>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-09-08 11:53:08 +02:00
|
|
|
} else {
|
2023-09-15 13:55:01 +02:00
|
|
|
view! {<div></div>}
|
2023-09-08 11:53:08 +02:00
|
|
|
}
|
|
|
|
|
}}
|
|
|
|
|
}
|
|
|
|
|
}
|