mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
1654a2681f
Summary: This moves all client code to core, and makes minimal fix-ups to get grist and grist-core to compile correctly. The client works in core, but I'm leaving clean-up around the build and bundles to follow-up. Test Plan: existing tests pass; server-dev bundle looks sane Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2627
20 lines
751 B
TypeScript
20 lines
751 B
TypeScript
import {Observable} from 'grainjs';
|
|
|
|
/**
|
|
* Helper to create a boolean observable whose state is stored in localStorage.
|
|
*/
|
|
export function localStorageBoolObs(key: string): Observable<boolean> {
|
|
const obs = Observable.create(null, Boolean(localStorage.getItem(key)));
|
|
obs.addListener((val) => val ? localStorage.setItem(key, 'true') : localStorage.removeItem(key));
|
|
return obs;
|
|
}
|
|
|
|
/**
|
|
* Helper to create a string observable whose state is stored in localStorage.
|
|
*/
|
|
export function localStorageObs(key: string): Observable<string|null> {
|
|
const obs = Observable.create<string|null>(null, localStorage.getItem(key));
|
|
obs.addListener((val) => (val === null) ? localStorage.removeItem(key) : localStorage.setItem(key, val));
|
|
return obs;
|
|
}
|