From cd3f028f0b912a8a8301273d5efbaf021384a865 Mon Sep 17 00:00:00 2001 From: truewhile <779943132@qq.com> Date: Tue, 15 Sep 2026 16:12:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/hooks/useEpisodeArtworkPreference.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/web/src/hooks/useEpisodeArtworkPreference.ts b/web/src/hooks/useEpisodeArtworkPreference.ts index e267807..a6ccc78 100644 --- a/web/src/hooks/useEpisodeArtworkPreference.ts +++ b/web/src/hooks/useEpisodeArtworkPreference.ts @@ -2,6 +2,7 @@ import { useCallback, useEffect, useRef, useState, type Dispatch, type SetStateA import toast from 'react-hot-toast' import { adminAPI } from '../api/admin' +import { useAuthStore } from '../stores/auth' const SETTING_KEY = 'scrape.episode_images' @@ -13,8 +14,11 @@ export function useEpisodeArtworkPreference(): [boolean, Dispatch state.user?.role === 'admin') useEffect(() => { + if (!isAdmin) return + let active = true adminAPI.listSettings() .then((settings) => { @@ -32,9 +36,11 @@ export function useEpisodeArtworkPreference(): [boolean, Dispatch { active = false } - }, []) + }, [isAdmin]) const setEnabled = useCallback((nextValue: SetStateAction) => { + if (!isAdmin) return + const next = typeof nextValue === 'function' ? nextValue(enabledRef.current) : nextValue if (enabledRef.current === next) return changedLocally.current = true @@ -47,7 +53,7 @@ export function useEpisodeArtworkPreference(): [boolean, Dispatch { toast.error('保存每集图片设置失败') }) - }, []) + }, [isAdmin]) return [enabled, setEnabled] }