Files
galaxy/client/src/composables/persistentToggle.ts
T

24 lines
553 B
TypeScript

import { type Ref } from "vue";
import { useUserLocalStorage } from "./userLocalStorage";
interface ToggleStateInterface {
toggled: Ref<boolean>;
toggle: () => void;
}
export function usePersistentToggle(uniqueId: string): ToggleStateInterface {
const localStorageKey = `toggle-state-${uniqueId}`;
const toggled = useUserLocalStorage(localStorageKey, false);
// Expose a function for toggling state
const toggle = () => {
toggled.value = !toggled.value;
};
return {
toggled,
toggle,
};
}