Adding
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user