import type { PublicSettingsResponse } from '@server/interfaces/api/settingsInterfaces'; import React from 'react'; import useSWR from 'swr'; export interface SettingsContextProps { currentSettings: PublicSettingsResponse; children?: React.ReactNode; } const defaultSettings = { initialized: false, applicationTitle: 'Overseerr', applicationUrl: '', hideAvailable: false, localLogin: true, movie4kEnabled: false, series4kEnabled: false, region: '', originalLanguage: '', partialRequestsEnabled: true, cacheImages: false, vapidPublic: '', enablePushRegistration: false, locale: 'en', emailEnabled: false, newPlexLogin: true, }; export const SettingsContext = React.createContext({ currentSettings: defaultSettings, }); export const SettingsProvider = ({ children, currentSettings, }: SettingsContextProps) => { const { data, error } = useSWR( '/api/v1/settings/public', { fallbackData: currentSettings } ); let newSettings = defaultSettings; if (data && !error) { newSettings = data; } return ( {children} ); };