mirror of
https://github.com/adoyle0/leptos-use.git
synced 2025-02-02 10:54:15 -05:00
brought back use_storage
This commit is contained in:
parent
e8c6540369
commit
b26459986e
8 changed files with 26 additions and 13 deletions
|
@ -5,7 +5,7 @@ use super::Codec;
|
|||
/// ## Example
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, JsonCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, JsonCodec};
|
||||
/// # use serde::{Deserialize, Serialize};
|
||||
/// #
|
||||
/// # pub fn Demo() -> impl IntoView {
|
||||
|
@ -34,7 +34,7 @@ use super::Codec;
|
|||
///
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, Codec, JsonCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, Codec, JsonCodec};
|
||||
/// # use serde::{Deserialize, Serialize};
|
||||
/// #
|
||||
/// # pub fn Demo() -> impl IntoView {
|
||||
|
@ -75,7 +75,7 @@ use super::Codec;
|
|||
///
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, Codec, JsonCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, Codec, JsonCodec};
|
||||
/// # use serde::{Deserialize, Serialize};
|
||||
/// # use serde_json::json;
|
||||
/// #
|
||||
|
|
|
@ -11,7 +11,7 @@ use thiserror::Error;
|
|||
/// ## Example
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, ProstCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, ProstCodec};
|
||||
/// #
|
||||
/// # pub fn Demo() -> impl IntoView {
|
||||
/// // Primitive types:
|
||||
|
|
|
@ -8,7 +8,7 @@ use std::str::FromStr;
|
|||
/// ## Example
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, StringCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, StringCodec};
|
||||
/// #
|
||||
/// # pub fn Demo() -> impl IntoView {
|
||||
/// let (get, set, remove) = use_local_storage::<i32, StringCodec>("my-key");
|
||||
|
|
|
@ -5,7 +5,7 @@ mod codec_prost;
|
|||
mod codec_string;
|
||||
mod use_local_storage;
|
||||
mod use_session_storage;
|
||||
mod use_storage_with_options;
|
||||
mod use_storage;
|
||||
|
||||
pub use crate::core::StorageType;
|
||||
#[cfg(feature = "serde")]
|
||||
|
@ -15,4 +15,4 @@ pub use codec_prost::*;
|
|||
pub use codec_string::*;
|
||||
pub use use_local_storage::*;
|
||||
pub use use_session_storage::*;
|
||||
pub use use_storage_with_options::*;
|
||||
pub use use_storage::*;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use super::{use_storage_with_options, Codec, StorageType, UseStorageOptions};
|
||||
use super::{use_storage, Codec, StorageType, UseStorageOptions};
|
||||
use leptos::signal_prelude::*;
|
||||
|
||||
/// Reactive [LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).
|
||||
|
@ -8,7 +8,7 @@ use leptos::signal_prelude::*;
|
|||
/// This is contrast to [`use_session_storage`] which clears data when the page session ends and is not shared.
|
||||
///
|
||||
/// ## Usage
|
||||
/// See [`use_storage_with_options`] for more details on how to use.
|
||||
/// See [`use_storage`] for more details on how to use.
|
||||
pub fn use_local_storage<T, C>(
|
||||
key: impl AsRef<str>,
|
||||
) -> (Signal<T>, WriteSignal<T>, impl Fn() + Clone)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use super::{use_storage_with_options, Codec, StorageType, UseStorageOptions};
|
||||
use super::{use_storage, Codec, StorageType, UseStorageOptions};
|
||||
use leptos::signal_prelude::*;
|
||||
|
||||
/// Reactive [SessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage).
|
||||
|
@ -8,7 +8,7 @@ use leptos::signal_prelude::*;
|
|||
/// Use [`use_local_storage`] to store data that is shared amongst all pages with the same origin and persists between page sessions.
|
||||
///
|
||||
/// ## Usage
|
||||
/// See [`use_storage_with_options`] for more details on how to use.
|
||||
/// See [`use_storage`] for more details on how to use.
|
||||
pub fn use_session_storage<T, C>(
|
||||
key: impl AsRef<str>,
|
||||
) -> (Signal<T>, WriteSignal<T>, impl Fn() + Clone)
|
||||
|
|
|
@ -29,7 +29,7 @@ const INTERNAL_STORAGE_EVENT: &str = "leptos-use-storage";
|
|||
///
|
||||
/// ```
|
||||
/// # use leptos::*;
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage_with_options, UseStorageOptions, StringCodec, JsonCodec, ProstCodec};
|
||||
/// # use leptos_use::storage::{StorageType, use_local_storage, use_session_storage, use_storage, UseStorageOptions, StringCodec, JsonCodec, ProstCodec};
|
||||
/// # use serde::{Deserialize, Serialize};
|
||||
/// #
|
||||
/// # pub fn Demo() -> impl IntoView {
|
||||
|
@ -71,6 +71,19 @@ const INTERNAL_STORAGE_EVENT: &str = "leptos-use-storage";
|
|||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
#[inline(always)]
|
||||
pub fn use_storage<T, C>(
|
||||
storage_type: StorageType,
|
||||
key: impl AsRef<str>,
|
||||
) -> (Signal<T>, WriteSignal<T>, impl Fn() + Clone)
|
||||
where
|
||||
T: Clone + PartialEq,
|
||||
C: Codec<T>,
|
||||
{
|
||||
use_storage_with_options(storage_type, key, UseStorageOptions::default())
|
||||
}
|
||||
|
||||
/// Version of [`use_storage`] that accepts [`UseStorageOptions`].
|
||||
pub fn use_storage_with_options<T, C>(
|
||||
storage_type: StorageType,
|
||||
key: impl AsRef<str>,
|
|
@ -1,5 +1,5 @@
|
|||
use crate::core::{ElementMaybeSignal, MaybeRwSignal};
|
||||
use crate::storage::{use_storage_with_options, StringCodec, UseStorageOptions};
|
||||
use crate::storage::{use_storage, StringCodec, UseStorageOptions};
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::str::FromStr;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue