32 lines
703 B
TypeScript
32 lines
703 B
TypeScript
'use client'
|
|
|
|
import { useEffect, useState } from 'react'
|
|
import type { UserSettings } from '@/types'
|
|
|
|
const DEFAULTS: UserSettings = {
|
|
mixedAutoplay: true,
|
|
mixedLoop: true,
|
|
mixedMuted: true,
|
|
moviesAutoplay: true,
|
|
moviesLoop: false,
|
|
moviesMuted: false,
|
|
tvAutoplay: true,
|
|
tvLoop: false,
|
|
tvMuted: false,
|
|
}
|
|
|
|
export function useUserSettings(): UserSettings {
|
|
const [settings, setSettings] = useState<UserSettings>(DEFAULTS)
|
|
|
|
useEffect(() => {
|
|
fetch('/api/settings')
|
|
.then((r) => (r.ok ? r.json() : null))
|
|
.then((data: UserSettings | null) => {
|
|
if (data) setSettings(data)
|
|
})
|
|
.catch(() => {/* fall back to defaults */})
|
|
}, [])
|
|
|
|
return settings
|
|
}
|