Files
monorepo/LCU.WebApps.Collections.RepoClient/src/services/LocalStorageService.ts
T
2026-03-17 11:09:46 -05:00

34 lines
1.1 KiB
TypeScript

import pick from "lodash.pick";
import {DeepPartial} from "redux";
import {IAppState} from "../store/Store";
class LocalStorageService {
private static StorageKey: string = "RepoState";
public static loadAppSavedState(paths?: string[]): DeepPartial<IAppState> {
try {
const serializedState = localStorage.getItem(LocalStorageService.StorageKey);
if (serializedState === null) {
return {};
}
const parsed = JSON.parse(serializedState);
return paths ? pick(parsed, paths) : parsed;
} catch (err) {
return {};
}
}
public static saveAppState(state: IAppState, paths?: string[]) {
try {
const targetObj = paths ? pick(state, paths) : state;
const serializedState = JSON.stringify(targetObj);
localStorage.setItem(LocalStorageService.StorageKey, serializedState);
} catch {
// Not logging because this can happen for normal reasons.
}
}
}
export default LocalStorageService;