From b0a408170936e885319a08b2079082157252b426 Mon Sep 17 00:00:00 2001 From: titanium_machine <78664175+titaniummachine1@users.noreply.github.com> Date: Wed, 7 May 2025 22:51:20 +0200 Subject: [PATCH] sections/analysis/panelHeader/analyzeButton: auto analyze (#14) --- .../analysis/panelHeader/analyzeButton.tsx | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/sections/analysis/panelHeader/analyzeButton.tsx b/src/sections/analysis/panelHeader/analyzeButton.tsx index 7e685e5..6e5e7b9 100644 --- a/src/sections/analysis/panelHeader/analyzeButton.tsx +++ b/src/sections/analysis/panelHeader/analyzeButton.tsx @@ -15,6 +15,7 @@ import { LoadingButton } from "@mui/lab"; import { useEngine } from "@/hooks/useEngine"; import { logAnalyticsEvent } from "@/lib/firebase"; import { SavedEvals } from "@/types/eval"; +import { useEffect, useCallback } from "react"; export default function AnalyzeButton() { const engineName = useAtomValue(engineNameAtom); @@ -32,7 +33,7 @@ export default function AnalyzeButton() { const readyToAnalyse = engine?.getIsReady() && game.history().length > 0 && !evaluationProgress; - const handleAnalyze = async () => { + const handleAnalyze = useCallback(async () => { const params = getEvaluateGameParams(game); if ( !engine?.getIsReady() || @@ -71,7 +72,26 @@ export default function AnalyzeButton() { multiPv: engineMultiPv, nbPositions: params.fens.length, }); - }; + }, [ + engine, + engineName, + game, + engineDepth, + engineMultiPv, + evaluationProgress, + setEvaluationProgress, + setEval, + gameFromUrl, + setGameEval, + setSavedEvals, + ]); + + // Automatically analyze when a new game is loaded and ready to analyze + useEffect(() => { + if (!gameEval && readyToAnalyse) { + handleAnalyze(); + } + }, [gameEval, readyToAnalyse, handleAnalyze]); if (evaluationProgress) return null;