useLocalStorage

En React Hook som returnerar sparad data från localStorage.

import { useState, useEffect } from 'react';

function useLocalStorage(key, initialValue) {
  const [storedValue, setStoredValue] = useState(() => {
    try {
      const item = window.localStorage.getItem(key);
      return item ? JSON.parse(item) : initialValue;
    } catch (error) {
      return initialValue;
    }
  });

  useEffect(() => {
    window.localStorage.setItem(key, JSON.stringify(storedValue));
  }, [key, storedValue]);

  return [storedValue, setStoredValue];
}

export default useLocalStorage;

Användning

Denna React hooken kan användas för att spara och hämta data i localStorage. Detta kan vara användbart för att spara tillståndet i en komponent, så att det finns kvar även om användaren laddar om sidan eller stänger ner webbläsaren.

Ett exempel på användning:

import useLocalStorage from '../hooks/useLocalStorage';

function ThemeSwitcher() {
  const [theme, setTheme] = useLocalStorage('theme', 'light');  // Använd hook för att få och spara tema

  const toggleTheme = () => {
    if (theme === 'light') {
      setTheme('dark');
    } else {
      setTheme('light');
    }
  };

  // Sätt klassnamn baserat på tema
  document.body.className = theme;

  return (
    <button onClick={toggleTheme}>
      Byt till {theme === 'light' ? 'mörkt' : 'ljus'} tema
    </button>
  );
}

export default ThemeSwitcher;