use super::{StorageType, UseStorageOptions, use_storage_with_options};
use codee::{Decoder, Encoder};
use leptos::prelude::*;
pub fn use_session_storage<T, C>(
key: impl Into<Signal<String>>,
) -> (Signal<T>, WriteSignal<T>, impl Fn() + Clone + Send + Sync)
where
T: Clone + Default + PartialEq + Send + Sync + 'static,
C: Encoder<T, Encoded = String> + Decoder<T, Encoded = str>,
{
use_storage_with_options::<T, C>(
StorageType::Session,
key,
UseStorageOptions::<T, <C as Encoder<T>>::Error, <C as Decoder<T>>::Error>::default(),
)
}
pub fn use_session_storage_with_options<T, C>(
key: impl Into<Signal<String>>,
options: UseStorageOptions<T, <C as Encoder<T>>::Error, <C as Decoder<T>>::Error>,
) -> (Signal<T>, WriteSignal<T>, impl Fn() + Clone + Send + Sync)
where
T: Clone + PartialEq + Send + Sync,
C: Encoder<T, Encoded = String> + Decoder<T, Encoded = str>,
{
use_storage_with_options::<T, C>(StorageType::Session, key, options)
}