department-of-veterans-affairs/vets-website

View on GitHub
src/applications/_mock-form-ae-design-patterns/hooks/useLocalStorage.js

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';

export const useLocalStorage = (storageKey, fallbackState) => {
  const [value, setValue] = React.useState(
    JSON.parse(localStorage.getItem(storageKey)) ?? fallbackState,
  );

  React.useEffect(
    () => {
      if (value === '') {
        localStorage.removeItem(storageKey);
        return;
      }
      localStorage.setItem(storageKey, JSON.stringify(value));
    },
    [value, storageKey],
  );

  return [value, setValue];
};