1#![allow(non_snake_case)]
9#![warn(missing_docs)]
10#![deny(warnings, clippy::todo, clippy::unimplemented)]
11
12#[cfg(not(any(feature = "csr", feature = "hydrate", feature = "ssr")))]
13compile_error!("impulse-ui-kit: enable exactly one of `csr`, `hydrate`, `ssr` features");
14
15#[cfg(any(
16 all(feature = "csr", feature = "hydrate"),
17 all(feature = "csr", feature = "ssr"),
18 all(feature = "hydrate", feature = "ssr"),
19))]
20compile_error!("impulse-ui-kit: features `csr`, `hydrate`, `ssr` are mutually exclusive");
21
22#[cfg(all(feature = "websocket", not(any(feature = "csr", feature = "hydrate"))))]
23compile_error!("impulse-ui-kit: feature `websocket` requires `csr` or `hydrate`");
24
25#[cfg(all(feature = "webtransport", not(any(feature = "csr", feature = "hydrate"))))]
26compile_error!("impulse-ui-kit: feature `webtransport` requires `csr` or `hydrate`");
27
28pub mod router;
29pub mod utils;
30
31#[cfg(feature = "websocket")]
32pub mod ws;
33#[cfg(feature = "webtransport")]
34pub mod wt;
35
36#[cfg(feature = "ssr")]
37pub mod ssr;
38
39pub mod prelude;
40
41use leptos::prelude::*;
42
43#[cfg(feature = "csr")]
57pub fn setup_app(#[allow(unused_variables)] log_level: log::Level, children: Children) {
58 console_error_panic_hook::set_once();
59 #[cfg(debug_assertions)]
60 console_log::init_with_level(log::Level::Debug).unwrap();
61 #[cfg(not(debug_assertions))]
62 console_log::init_with_level(log_level).unwrap();
63 leptos::mount::mount_to_body(move || view! { {children()} })
64}
65
66#[cfg(feature = "hydrate")]
80pub fn setup_app(#[allow(unused_variables)] log_level: log::Level, children: Children) {
81 console_error_panic_hook::set_once();
82 #[cfg(debug_assertions)]
83 console_log::init_with_level(log::Level::Debug).unwrap();
84 #[cfg(not(debug_assertions))]
85 console_log::init_with_level(log_level).unwrap();
86 leptos::mount::hydrate_body(move || view! { {children()} })
87}
88
89#[cfg(feature = "ssr")]
95pub fn setup_app(_log_level: log::Level, _children: Children) {}