From f2c4844e0587287370555ca98f999746ed804c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E6=9E=B3?= <7854742+wang_rumeng@user.noreply.gitee.com> Date: Mon, 20 Oct 2025 21:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=88=9B=E5=BB=BA=EF=BC=9A?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E5=86=8D=E5=A4=84=E7=90=86=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateInput/PortraitAnimeSelector.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/components/pages/create-video/CreateInput/PortraitAnimeSelector.tsx b/components/pages/create-video/CreateInput/PortraitAnimeSelector.tsx index 6cbb08b..c61b476 100644 --- a/components/pages/create-video/CreateInput/PortraitAnimeSelector.tsx +++ b/components/pages/create-video/CreateInput/PortraitAnimeSelector.tsx @@ -33,13 +33,7 @@ export function PortraitAnimeSelector({ disabled = false, }: PortraitAnimeSelectorProps) { const [lastAnimeChoice, setLastAnimeChoice] = useState('STANDARD_V1_734684_116483'); - const [animeOptions, setAnimeOptions] = useState>([]); - - useEffect(() => { - if (value && value !== 'portrait') { - setLastAnimeChoice(value); - } - }, [value]); + const [animeOptions, setAnimeOptions] = useState>([]) useEffect(() => { let mounted = true; @@ -66,6 +60,11 @@ export function PortraitAnimeSelector({ return map; }, [animeOptions]); + /** Check if currentAnime is valid in animeOptions */ + const isValidAnimeChoice = useMemo(() => { + return animeOptions.some(opt => opt.pcode === currentAnime); + }, [animeOptions, currentAnime]); + /** Anime dropdown menu items */ const animeMenuItems = (animeOptions.length > 0 ? animeOptions : []).map((opt) => ({ key: opt.pcode, @@ -111,13 +110,13 @@ export function PortraitAnimeSelector({ className={`h-6 px-2 rounded-full transition-all duration-200 flex items-center gap-1.5 text-sm ${ disabled ? 'opacity-40 cursor-not-allowed bg-transparent text-gray-400' - : !isPortrait + : !isPortrait && isValidAnimeChoice ? 'bg-white/10 text-cyan-400 shadow-sm' : 'bg-transparent text-gray-400 hover:text-gray-300' }`} > - {!isPortrait && pcodeToName[currentAnime] + {!isPortrait && pcodeToName[currentAnime] && isValidAnimeChoice ? pcodeToName[currentAnime] : 'Anime'}