storage.rs 850 B

1234567891011121314151617181920212223242526272829303132333435
  1. use dioxus::prelude::*;
  2. use dioxus_sdk::storage::*;
  3. use crate::{
  4. constants::{DIOXUS_FRONT_AUTH_REQUEST, DIOXUS_FRONT_AUTH_TOKEN},
  5. oidc::{AuthRequestState, AuthTokenState},
  6. };
  7. pub fn use_auth_token_provider() {
  8. let stored_token =
  9. use_storage::<LocalStorage, _>(DIOXUS_FRONT_AUTH_TOKEN.to_owned(), AuthTokenState::default);
  10. use_context_provider(move || stored_token);
  11. }
  12. pub fn use_auth_token() -> Signal<AuthTokenState> {
  13. use_context()
  14. }
  15. pub fn use_auth_request_provider() {
  16. let stored_req = use_storage::<LocalStorage, _>(
  17. DIOXUS_FRONT_AUTH_REQUEST.to_owned(),
  18. AuthRequestState::default,
  19. );
  20. use_context_provider(move || stored_req);
  21. }
  22. pub fn use_auth_request() -> Signal<AuthRequestState> {
  23. use_context()
  24. }
  25. pub fn auth_request() -> Signal<AuthRequestState> {
  26. consume_context()
  27. }