mirror of
https://github.com/ente-io/ente.git
synced 2025-05-24 20:19:17 +00:00
63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
import log from "@/next/log";
|
|
import { removeKV, setKV } from "packages/next/kv";
|
|
|
|
export enum LS_KEYS {
|
|
USER = "user",
|
|
KEY_ATTRIBUTES = "keyAttributes",
|
|
ORIGINAL_KEY_ATTRIBUTES = "originalKeyAttributes",
|
|
SUBSCRIPTION = "subscription",
|
|
FAMILY_DATA = "familyData",
|
|
IS_FIRST_LOGIN = "isFirstLogin",
|
|
JUST_SIGNED_UP = "justSignedUp",
|
|
SHOW_BACK_BUTTON = "showBackButton",
|
|
EXPORT = "export",
|
|
// LOGS = "logs",
|
|
USER_DETAILS = "userDetails",
|
|
COLLECTION_SORT_BY = "collectionSortBy",
|
|
THEME = "theme",
|
|
// Moved to the new wrapper @/next/local-storage
|
|
// LOCALE = 'locale',
|
|
MAP_ENABLED = "mapEnabled",
|
|
SRP_SETUP_ATTRIBUTES = "srpSetupAttributes",
|
|
SRP_ATTRIBUTES = "srpAttributes",
|
|
CF_PROXY_DISABLED = "cfProxyDisabled",
|
|
REFERRAL_SOURCE = "referralSource",
|
|
}
|
|
|
|
export const setData = (key: LS_KEYS, value: object) =>
|
|
localStorage.setItem(key, JSON.stringify(value));
|
|
|
|
export const removeData = (key: LS_KEYS) => localStorage.removeItem(key);
|
|
|
|
export const getData = (key: LS_KEYS) => {
|
|
try {
|
|
if (
|
|
typeof localStorage === "undefined" ||
|
|
typeof key === "undefined" ||
|
|
typeof localStorage.getItem(key) === "undefined" ||
|
|
localStorage.getItem(key) === "undefined"
|
|
) {
|
|
return null;
|
|
}
|
|
const data = localStorage.getItem(key);
|
|
return data && JSON.parse(data);
|
|
} catch (e) {
|
|
log.error(`Failed to Parse JSON for key ${key}`, e);
|
|
}
|
|
};
|
|
|
|
export const clearData = () => localStorage.clear();
|
|
|
|
// TODO: Migrate this to `local-user.ts`, with (a) more precise optionality
|
|
// indication of the constituent fields, (b) moving any fields that need to be
|
|
// accessed from web workers to KV DB.
|
|
//
|
|
// Creating a new function here to act as a funnel point.
|
|
export const setLSUser = (user: object) => {
|
|
const token = user["token"];
|
|
token && typeof token == "string"
|
|
? setKV("token", token)
|
|
: removeKV("token");
|
|
setData(LS_KEYS.USER, user);
|
|
};
|