diff --git a/libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx b/libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx index 28749241bd..b56b8cf773 100644 --- a/libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx +++ b/libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx @@ -437,14 +437,14 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { props.event.trigger("staticAnaysisWarning", [ slitherTotal + ssaTotal + hintsTotal === 0 ? -1 - : slitherTotal + ssaTotal + hintsTotal, + : !solhintEnabled && !basicEnabled && !slitherEnabled ? -1 : slitherTotal + ssaTotal + hintsTotal, ]); } if (!hideWarnings && showLibsWarning) { props.event.trigger("staticAnaysisWarning", [ slitherWarnings.length + ssaWarnings.length + hints.length === 0 ? -1 - : slitherWarnings.length + ssaWarnings.length + hints.length, + : !solhintEnabled && !basicEnabled && !slitherEnabled ? -1 : slitherWarnings.length + ssaWarnings.length + hints.length, ]); } if (hideWarnings) { @@ -466,57 +466,71 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { : slitherTotal + ssaTotal + hintsTotal, ]); } - }, [hideWarnings, showLibsWarning]); + if (hideWarnings && !solhintEnabled && !slitherEnabled && !basicEnabled) { + props.event.trigger("staticAnaysisWarning", [-1]) + } + }, [hideWarnings, showLibsWarning]) useEffect(() => { - const slitherTotal = - slitherEnabled && + let slitherTotal = 0 + if (slitherEnabled && showSlither && slitherWarnings && state.data && - state.source !== null - ? slitherWarnings.filter((x) => !x.options.isLibrary && x.hasWarning) - .length - : 0; - const ssaTotal = - basicEnabled && ssaWarnings && state.data && state.source !== null - ? ssaWarnings.filter((x) => !x.options.isLibrary && x.hasWarning).length - : 0; - const hintsTotal = - solhintEnabled && hints && state.data && state.source !== null - ? hints.length - : 0; + state.source !== null) { + slitherTotal = slitherWarnings.filter((x) => !x.options.isLibrary && x.hasWarning).length + props.analysisModule.slitherEnabled = true + } + let ssaTotal = 0 + if (basicEnabled && ssaWarnings && state.data && state.source !== null) { + ssaTotal = ssaWarnings.filter((x) => !x.options.isLibrary && x.hasWarning).length + props.analysisModule.basicEnabled = true + } + + let hintsTotal = 0 + if (solhintEnabled && hints && state.data && state.source !== null) { + hintsTotal = hints.length + props.analysisModule.solhintEnabled = true + } props.event.trigger("staticAnaysisWarning", [ slitherTotal + ssaTotal + hintsTotal === 0 ? -1 : slitherTotal + ssaTotal + hintsTotal, ]); - }, [hints.length, slitherWarnings.length, ssaWarnings.length]); + }, [hints.length, slitherWarnings.length, ssaWarnings.length]) useEffect(() => { - const slitherTotal = - slitherWarnings && + let slitherTotal = 0 + if (slitherWarnings && slitherEnabled && showSlither && state.data && - state.source !== null - ? slitherWarnings.filter((x) => !x.options.isLibrary && x.hasWarning) - .length - : 0; - const ssaTotal = - ssaWarnings && basicEnabled && state.data && state.source !== null - ? ssaWarnings.filter((x) => !x.options.isLibrary && x.hasWarning).length - : 0; - const hintsTotal = - hints && solhintEnabled && state.data && state.source !== null - ? hints.length - : 0; + state.source !== null) { + slitherTotal = slitherWarnings.filter((x) => !x.options.isLibrary && x.hasWarning) + .length + props.analysisModule.slitherEnabled = true + } + + let ssaTotal = 0 + if (ssaWarnings && basicEnabled && state.data && state.source !== null) { + ssaTotal = ssaWarnings.filter((x) => !x.options.isLibrary && x.hasWarning).length + props.analysisModule.basicEnabled = true + } + + let hintsTotal = 0 + if (hints && solhintEnabled && state.data && state.source !== null) { + hintsTotal = hints.length + } props.event.trigger("staticAnaysisWarning", [ slitherTotal + ssaTotal + hintsTotal === 0 ? -1 : slitherTotal + ssaTotal + hintsTotal, - ]); - }, [solhintEnabled, basicEnabled, slitherEnabled, showSlither]); + ]) + }, [solhintEnabled, basicEnabled, slitherEnabled, showSlither]) + + useEffect(() => { + + }, []) const handleSlitherEnabled = async () => { const checkRemixd = await props.analysisModule.call( @@ -525,36 +539,42 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { "remixd" ); if (showSlither) { - setShowSlither(false); + setShowSlither(false) + props.analysisModule.slitherEnabled = false } if (!showSlither) { - setShowSlither(true); + setShowSlither(true) + props.analysisModule.slitherEnabled = true } }; const handleBasicEnabled = () => { if (basicEnabled) { - setBasicEnabled(false); + setBasicEnabled(false) + props.analysisModule.basicEnabled = false if (solhintEnabled) { - setSelectedTab("solhint"); + setSelectedTab("solhint") } - props.event.trigger("staticAnalysisWarning", [-1]); + props.event.trigger("staticAnalysisWarning", [-1]) } else { - setBasicEnabled(true); - props.event.trigger("staticAnalysisWarning", [-1]); + setBasicEnabled(true) + props.analysisModule.basicEnabled = true + props.event.trigger("staticAnalysisWarning", [-1]) } }; const handleLinterEnabled = () => { if (solhintEnabled) { setSolhintEnabled(false); + props.analysisModule.solhintEnabled = false if (basicEnabled) { - setSelectedTab("remix"); + setSelectedTab("remix") } - props.event.trigger("staticAnalysisWarning", [-1]); + props.event.trigger("staticAnalysisWarning", [-1]) } else { - setSolhintEnabled(true); - props.event.trigger("staticAnalysisWarning", [-1]); + setSolhintEnabled(true) + props.analysisModule.solhintEnabled = true + props.event.trigger("staticAnalysisWarning", [-1]) } }; @@ -635,7 +655,59 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { )) - : hintErrors.map((hint, index) => ( + : !hideWarnings && !showLibsWarning && !basicEnabled && solhintEnabled ? hints.map((hint, index) => ( +