このコミットが含まれているのは:
2026-07-04 19:50:40 +09:00
コミット 4cc2dc5441
10個のファイルの変更542行の追加293行の削除
+8 -1
ファイルの表示
@@ -9,6 +9,7 @@ import type { UserSettings } from '@/lib/settings'
type ContextValue = {
loaded: boolean
error: string | null
settings: UserSettings
setSettings: Dispatch<SetStateAction<UserSettings>> }
@@ -41,6 +42,7 @@ const applyTheme = (theme: UserSettings['theme']) => {
export const UserSettingsProvider: FC<{
children: ReactNode
user: User | null }> = ({ children, user }) => {
const [error, setError] = useState<string | null> (null)
const [loaded, setLoaded] = useState (false)
const [settings, setSettings] = useState<UserSettings> (DEFAULT_USER_SETTINGS)
@@ -49,12 +51,14 @@ export const UserSettingsProvider: FC<{
if (!(user))
{
setError (null)
setSettings (DEFAULT_USER_SETTINGS)
setLoaded (true)
return
}
setLoaded (false)
setError (null)
void (async () => {
try
@@ -62,6 +66,7 @@ export const UserSettingsProvider: FC<{
const next = await fetchUserSettings ()
if (!(cancelled))
{
setError (null)
setSettings (next)
setLoaded (true)
}
@@ -70,6 +75,7 @@ export const UserSettingsProvider: FC<{
{
if (!(cancelled))
{
setError ('設定を読み込めませんでした.既定値で表示しています.')
setSettings (DEFAULT_USER_SETTINGS)
setLoaded (true)
}
@@ -89,10 +95,11 @@ export const UserSettingsProvider: FC<{
}, [settings.displayDensity, settings.fontSize])
const value = useMemo<ContextValue> (() => ({
error,
loaded,
settings,
setSettings,
}), [loaded, settings])
}), [error, loaded, settings])
return (
<UserSettingsContext.Provider value={value}>