Add page for displaying error

This commit is contained in:
Ethan Girouard 2024-10-21 22:57:27 -04:00
parent 88e2a229a4
commit f1e177c7b0
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146
4 changed files with 45 additions and 1 deletions

View File

@ -1,2 +1,3 @@
pub mod login;
pub mod signup;
pub mod signup;
pub mod error;

24
src/pages/error.rs Normal file
View File

@ -0,0 +1,24 @@
use leptos::*;
use leptos_icons::*;
use std::fmt::Display;
#[component]
pub fn ServerError<E: Display + 'static>(
#[prop(optional, into, default="An Error Occurred".into())]
title: TextProp,
#[prop(optional, into)]
message: TextProp,
#[prop(optional, into)]
error: Option<ServerFnError<E>>,
) -> impl IntoView {
view! {
<div class="error-container home-component">
<div class="error-header">
<Icon icon=icondata::BiErrorSolid />
<h1>{title}</h1>
</div>
<p>{message}</p>
<p>{error.map(|error| format!("{}", error))}</p>
</div>
}
}

18
style/error.scss Normal file
View File

@ -0,0 +1,18 @@
.error-container {
.error-header {
display: inline-grid;
svg {
width: 30px;
height: 30px;
grid-row-start: 1;
align-self: center;
padding-right: 10px;
}
h1 {
grid-row-start: 1;
align-self: center;
}
}
}

View File

@ -9,6 +9,7 @@
@import 'search.scss';
@import 'personal.scss';
@import 'upload.scss';
@import 'error.scss';
body {
font-family: sans-serif;