diff options
Diffstat (limited to 'lib/hooks/useWatchStorage.tsx')
| -rw-r--r-- | lib/hooks/useWatchStorage.tsx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/hooks/useWatchStorage.tsx b/lib/hooks/useWatchStorage.tsx new file mode 100644 index 0000000..ee24a39 --- /dev/null +++ b/lib/hooks/useWatchStorage.tsx @@ -0,0 +1,28 @@ +import { UserData } from "@/components/watch/new-player/player"; +import { useState } from "react"; + +function useWatchStorage() { + // Get initial value from local storage or empty object + const [settings, setSettings] = useState(() => { + const storedSettings = localStorage?.getItem("artplayer_settings"); + return storedSettings ? JSON.parse(storedSettings) : {}; + }); + + const getSettings = (id: string): UserData | undefined => { + return settings[id]; + }; + + // Function to update settings + const updateSettings = (id: string, data?: any) => { + // Update state + const updatedSettings = { ...settings, [id]: data }; + setSettings(updatedSettings); + + // Update local storage + localStorage.setItem("artplayer_settings", JSON.stringify(updatedSettings)); + }; + + return [getSettings, updateSettings]; +} + +export default useWatchStorage; |