37 lines
1.3 KiB
Rust
37 lines
1.3 KiB
Rust
use app_config::SiteConfig;
|
|
use leptos::prelude::*;
|
|
use leptos_meta::MetaTags;
|
|
|
|
use crate::app::App;
|
|
|
|
pub fn shell(options: LeptosOptions) -> impl IntoView {
|
|
let css_href = SiteConfig::with_base_path("/pkg/base_path_demo.css");
|
|
let js_href = SiteConfig::with_base_path("/pkg/base_path_demo.js");
|
|
let wasm_href = SiteConfig::with_base_path("/pkg/base_path_demo.wasm");
|
|
let hydration_script = format!(
|
|
r#"import("{js_href}").then((mod) => {{
|
|
mod.default({{ module_or_path: "{wasm_href}" }}).then(() => mod.hydrate());
|
|
}});"#
|
|
);
|
|
|
|
view! {
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content=SiteConfig::DESCRIPTION />
|
|
<link rel="stylesheet" href=css_href />
|
|
<link rel="modulepreload" href=js_href />
|
|
<link rel="preload" href=wasm_href r#as="fetch" r#type="application/wasm" crossorigin="anonymous" />
|
|
<AutoReload options=options.clone() />
|
|
<script type="module" inner_html=hydration_script></script>
|
|
<MetaTags />
|
|
</head>
|
|
<body>
|
|
<App />
|
|
</body>
|
|
</html>
|
|
}
|
|
}
|