import { writable } from 'svelte/store';
import { browser } from '$app/environment';

export const ql = writable(fromLocalStorage('ql', []));
toLocalStorage(ql, 'ql');

function fromLocalStorage(storageKey, fallback) {
  if (browser) {
    const storedValue = localStorage.getItem(storageKey);
    if (storedValue !== 'undefined' && storedValue !== null) {
      return typeof fallback === 'object' ? JSON.parse(storedValue) : storedValue;
    }
  }
  return fallback;
}

function toLocalStorage(store, storageKey) {
  if (browser) {
    store.subscribe((value) => {
      let storageValue = typeof value === 'object' ? JSON.stringify(value) : value;

      localStorage.setItem(storageKey, storageValue);
    });
  }
}
