import { useEffect } from 'react';

const DEFAULT_STATE_KEY = 'state';

export const usePersistedContext = (context, key = DEFAULT_STATE_KEY) => {
  const persistedContext = localStorage.getItem(key);
  return persistedContext ? JSON.parse(persistedContext) : context;
};

export const usePersistedReducer = ([state, dispatch], key = DEFAULT_STATE_KEY) => {
  useEffect(
    () => localStorage.setItem(key, JSON.stringify(state)),
    [key, state],
  );
  return [state, dispatch];
};
