leptos_use/storage/
mod.rs1mod use_local_storage;
2mod use_session_storage;
3mod use_storage;
4
5pub use use_local_storage::*;
6pub use use_session_storage::*;
7pub use use_storage::*;
8
9use leptos::prelude::window;
10use wasm_bindgen::JsValue;
11
12#[derive(Default)]
14pub enum StorageType {
15    #[default]
16    Local,
17    Session,
18    Custom(web_sys::Storage),
19}
20
21impl StorageType {
22    pub fn into_storage(self) -> Result<Option<web_sys::Storage>, JsValue> {
23        match self {
24            StorageType::Local => window().local_storage(),
25            StorageType::Session => window().session_storage(),
26            StorageType::Custom(storage) => Ok(Some(storage)),
27        }
28    }
29}