Files
pydase/frontend/src/hooks/useLocalStorage.ts
Mose Müller 82286c8da0 fix: prefix localStorage key with authority id
Prefixing the localStorage key with the authority id fixes an issue that
arises when multiple services are displayed in an iframe on a webpage.
2025-06-06 13:36:48 +02:00

20 lines
556 B
TypeScript

import { useState, useEffect } from "react";
import { authority } from "../socket";
export default function useLocalStorage(key: string, defaultValue: unknown) {
const [value, setValue] = useState(() => {
const storedValue = localStorage.getItem(`${authority}:${key}`);
if (storedValue) {
return JSON.parse(storedValue);
}
return defaultValue;
});
useEffect(() => {
if (value === undefined) return;
localStorage.setItem(`${authority}:${key}`, JSON.stringify(value));
}, [value, key]);
return [value, setValue];
}