Skip to content

Commit

Permalink
feat: added support for error page heads (#179)
Browse files Browse the repository at this point in the history
* feat: added support for error page heads

Examples need updating.

* feat: finalized error page heads

All examples are now updated.

* fix: fixed hydration bug

Needed to render the error page heads without a hydration context.
  • Loading branch information
arctic-hen7 authored Aug 21, 2022
1 parent 54db776 commit 41590b1
Show file tree
Hide file tree
Showing 31 changed files with 628 additions and 261 deletions.
13 changes: 0 additions & 13 deletions examples/.base/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,3 @@ tokio = { version = "1", features = [ "macros", "rt", "rt-multi-thread" ] }
perseus-integration = { path = "../../../packages/perseus-integration", default-features = false }

[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"

[lib]
name = "lib"
path = "src/lib.rs"
crate-type = [ "cdylib", "rlib" ]

[[bin]]
name = "perseus-example-base"
path = "src/lib.rs"

[package.metadata.wasm-pack.profile.release]
wasm-opt = [ "-Oz" ]
35 changes: 25 additions & 10 deletions examples/.base/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
11 changes: 8 additions & 3 deletions examples/comprehensive/tiny/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ pub fn main<G: Html>() -> PerseusApp<G> {
}
})
})
.error_pages(|| ErrorPages::new(|cx, url, status, err, _| view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}))
.error_pages(|| ErrorPages::new(
|cx, url, status, err, _| view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
},
|cx, _, _, _, _| view! { cx,
title { "Error" }
})
)
}
35 changes: 25 additions & 10 deletions examples/core/basic/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/custom_server/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/freezing_and_thawing/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/global_state/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/i18n/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/idb_freezing/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
35 changes: 25 additions & 10 deletions examples/core/index_view/src/error_pages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,31 @@ use perseus::{ErrorPages, Html};
use sycamore::view;

pub fn get_error_pages<G: Html>() -> ErrorPages<G> {
let mut error_pages = ErrorPages::new(|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
});
error_pages.add_page(404, |cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
});
let mut error_pages = ErrorPages::new(
|cx, url, status, err, _| {
view! { cx,
p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Error" }
}
},
);
error_pages.add_page(
404,
|cx, _, _, _, _| {
view! { cx,
p { "Page not found." }
}
},
|cx, _, _, _, _| {
view! { cx,
title { "Not Found" }
}
},
);

error_pages
}
Loading

0 comments on commit 41590b1

Please sign in to comment.