multi mode

This commit is contained in:
Mateusz Gruszczyński
2026-07-31 10:10:19 +02:00
parent e39a1154e6
commit f7afee886b
25 changed files with 910 additions and 212 deletions
+6
View File
@@ -31,6 +31,7 @@ const MODULES: &[&str] = &[
"session",
"socket",
"toast",
"theme",
"url-state",
"security",
];
@@ -47,6 +48,7 @@ pub fn render_html(
let urls = AssetUrls::new(asset_version);
let frontend_config = frontend_config(frontend_log_level, upload_max_size_bytes, external_auth);
let html = template
.replace("__APP_THEME_BOOTSTRAP__", theme_bootstrap())
.replace("__APP_STYLESHEET__", &urls.stylesheet("styles"))
.replace("__APP_IMPORT_MAP__", &urls.import_map())
.replace("__APP_ENTRYPOINT__", &urls.entrypoint(entrypoint))
@@ -68,6 +70,10 @@ pub fn render_html(
response
}
pub fn theme_bootstrap() -> &'static str {
r#"<script>(()=>{const key="rustpad:theme";let theme="dark";try{const saved=localStorage.getItem(key);if(saved==="light"||saved==="dark")theme=saved}catch{}const root=document.documentElement;root.dataset.theme=theme;root.style.colorScheme=theme;const meta=document.querySelector('meta[name="color-scheme"]');if(meta)meta.content=theme})();</script>"#
}
pub fn stylesheet_tag(asset_version: &str, name: &str) -> String {
AssetUrls::new(asset_version).stylesheet(name)
}