优化活跃颜色调色板的更新逻辑,新增对选定调色板和排除颜色的过滤,确保状态更新更加准确,同时更新依赖项以提升代码的可维护性。

This commit is contained in:
Zylan
2025-04-25 15:57:38 +08:00
parent 86f046228e
commit 8ef5e2fcbf

View File

@@ -181,7 +181,12 @@ export default function Home() {
// Update active palette based on selection and exclusions
useEffect(() => {
// ... existing useEffect for activeBeadPalette ...
const newActiveBeadPalette = fullBeadPalette.filter(color => {
const isInSelectedPalette = paletteOptions[selectedPaletteKeySet]?.keys.includes(color.key);
const isNotExcluded = !excludedColorKeys.has(color.key);
return isInSelectedPalette && isNotExcluded;
});
setActiveBeadPalette(newActiveBeadPalette);
}, [selectedPaletteKeySet, excludedColorKeys, remapTrigger]); // ++ 添加 remapTrigger 依赖 ++
@@ -603,7 +608,7 @@ export default function Home() {
// setColorCounts(null);
// setTotalBeadCount(0);
}
// *** REMOVED activeBeadPalette from dependency array ***
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [originalImageSrc, granularity, similarityThreshold, selectedPaletteKeySet, remapTrigger]); // Dependencies controlling full remap
// --- Download function (ensure filename includes palette) ---