20 lines
680 B
JavaScript
20 lines
680 B
JavaScript
import { computed } from '@ember/object';
|
|
|
|
// An Ember.Computed property that persists set values in localStorage
|
|
// and will attempt to get its initial value from localStorage before
|
|
// falling back to a default.
|
|
//
|
|
// ex. showTutorial: localStorageProperty('nomadTutorial', true),
|
|
export default function localStorageProperty(localStorageKey, defaultValue) {
|
|
return computed({
|
|
get() {
|
|
const persistedValue = window.localStorage.getItem(localStorageKey);
|
|
return persistedValue ? JSON.parse(persistedValue) : defaultValue;
|
|
},
|
|
set(key, value) {
|
|
window.localStorage.setItem(localStorageKey, JSON.stringify(value));
|
|
return value;
|
|
},
|
|
});
|
|
}
|