Upgraded Leptos to 0.8. Fixes #1

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-12 07:51:29 +02:00
co-authored by Claude Opus 5.5
parent 01d48ac0e4
commit ec73351405
55 changed files with 1371 additions and 1097 deletions
+32 -19
View File
@@ -1,3 +1,6 @@
// Leptos view types are deeply nested; release builds overflow the default limit
#![recursion_limit = "512"]
use actix_web::middleware::Logger;
use leptos_captcha::spow::pow::Pow;
use log::error;
@@ -11,7 +14,9 @@ use rezervator::backend::user::create_admin;
async fn main() -> std::io::Result<()> {
use actix_files::Files;
use actix_web::*;
use leptos::*;
use leptos::prelude::*;
use leptos::config::get_configuration;
use leptos_meta::MetaTags;
use leptos_actix::{generate_route_list, LeptosRoutes};
use rezervator::app::*;
use rezervator::backend::*;
@@ -48,9 +53,7 @@ async fn main() -> std::io::Result<()> {
env_logger::Builder::from_env(Env::default().default_filter_or(srv_conf.logging().severity())).init();
info!("Starting server");
let conf = get_configuration(None).await.unwrap();
// Generate the list of routes in your Leptos App
let routes = generate_route_list(|| view! { <App/> });
let conf = get_configuration(None).unwrap();
let key = Key::from(srv_conf.session().key());
let pool = PgPoolOptions::new()
@@ -75,8 +78,10 @@ async fn main() -> std::io::Result<()> {
}
HttpServer::new(move || {
// Generate the list of routes in your Leptos App
let routes = generate_route_list(App);
let leptos_options = &conf.leptos_options;
let site_root = &leptos_options.site_root;
let site_root = leptos_options.site_root.clone().to_string();
App::new()
.app_data(Data::new(AppData::new(pool.clone(), mailer.clone())))
@@ -86,12 +91,26 @@ async fn main() -> std::io::Result<()> {
CookieSessionStore::default(),
key.clone()
))
.route("/api/{tail:.*}", leptos_actix::handle_server_fns())
.leptos_routes(
leptos_options.to_owned(),
routes.to_owned(),
|| view! { <App/> },
)
// Server functions under /api are registered by leptos_routes
.leptos_routes(routes, {
let leptos_options = leptos_options.clone();
move || {
view! {
<!DOCTYPE html>
<html>
<head>
<AutoReload options=leptos_options.clone()/>
<HydrationScripts options=leptos_options.clone()/>
<MetaTags/>
</head>
<body>
<App/>
</body>
</html>
}
}
})
.app_data(Data::new(leptos_options.to_owned()))
.service(appearance::upload)
.service(Files::new("/", site_root))
.wrap(middleware::Compress::default())
@@ -114,15 +133,9 @@ pub fn main() {
// a client-side main function is required for using `trunk serve`
// prefer using `cargo leptos serve` instead
// to run: `trunk serve --open --features ssg`
use leptos::*;
use leptos_start::app::*;
use wasm_bindgen::prelude::wasm_bindgen;
use rezervator::app::*;
console_error_panic_hook::set_once();
leptos::mount_to_body(move || {
// note: for testing it may be preferrable to replace this with a
// more specific component, although leptos_router should still work
view! {<App/> }
});
leptos::mount::mount_to_body(App);
}