Skip to content

Instantly share code, notes, and snippets.

@sabine
Created July 25, 2020 05:29
Show Gist options
  • Save sabine/ab6a43d037ad556c6ab10a37c9396337 to your computer and use it in GitHub Desktop.
Save sabine/ab6a43d037ad556c6ab10a37c9396337 to your computer and use it in GitHub Desktop.
Storing and Restoring Session from LocalStorage in Seed
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum Session {
LoggedIn(crate::entities::user::User),
Guest,
}
pub fn remove_session_from_local_storage() {
use seed::browser::web_storage::WebStorage;
seed::browser::web_storage::LocalStorage::remove("session");
}
pub fn store_session_in_local_storage(session: &Session) {
use seed::browser::web_storage::WebStorage;
seed::browser::web_storage::LocalStorage::insert("session", session);
}
pub fn load_session_from_local_storage() -> Session {
use seed::browser::web_storage::WebStorage;
let maybe_session = seed::browser::web_storage::LocalStorage::get("session").ok();
match maybe_session {
Some(s) => s,
None => Session::Guest,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment