about summary refs log tree commit diff stats
path: root/src/stores.js
blob: 65b3a791c9d06d2df09b5dac524ecb1cc58bd499 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { writable } from "svelte/store";

const localStorage = window.localStorage;

export const level = localStorageStore(0);
export const aWeather = writable();
export const paWeather = writable();
export const pyWeather = writable();
export const hWeather = writable();

function localStorageStore(key) {
  const item = localStorage.getItem(key);
  const { subscribe, set } = writable(JSON.parse(item) || null);

  return {
    subscribe,
    set: (value) => {
      localStorage.setItem(key, JSON.stringify(value));
      set(value);
    },
    clear: () => {
      localStorage.removeItem(key);
      set(null);
    },
  };
}