From 1ddfd528bff2eceb8f86141a184187b96de2e84f Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Thu, 24 Jun 2021 14:08:35 +0530 Subject: [PATCH] show only slither analysis --- .../src/lib/remix-ui-static-analyser.tsx | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) 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 6b344bbe04..d897b50eb2 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 @@ -57,12 +57,13 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { const [autoRun, setAutoRun] = useState(true) const [slitherEnabled, setSlitherEnabled] = useState(false) const [showSlither, setShowSlither] = useState('hidden') + // Show checkbox to select to display only Slither Analysis const [showSlitherResult, setShowSlitherResult] = useState('hidden') - const [showSlitherResultEnabled, setShowSlitherResultEnabled] = useState(false) + const [slitherResultEnabled, setSlitherResultEnabled] = useState(false) const [categoryIndex, setCategoryIndex] = useState(groupedModuleIndex(groupedModules)) const warningContainer = React.useRef(null) - const [warningState, setWarningState] = useState([]) + const [warningState, setWarningState] = useState({}) const [state, dispatch] = useReducer(analysisReducer, initialState) useEffect(() => { @@ -70,7 +71,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { }, []) useEffect(() => { - setWarningState([]) + setWarningState({}) if (autoRun) { if (state.data !== null) { run(state.data, state.source, state.file) @@ -128,6 +129,14 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { setWarningState(groupedCategory) } + const showWarningsByModule = (showOnlyModule: string) => { + if(showOnlyModule && warningState[showOnlyModule]) { + const newWarningState = {} + newWarningState[showOnlyModule] = warningState[showOnlyModule] + setWarningState({[showOnlyModule]: warningState[showOnlyModule]}) + } + } + const run = (lastCompilationResult, lastCompilationSource, currentFile) => { if (state.data !== null) { if (lastCompilationResult && categoryIndex.length > 0) { @@ -237,6 +246,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { warningMessage.push({ msg, options, hasWarning: true, warningModuleName: 'Slither Analysis' }) }) showWarnings(warningMessage, 'warningModuleName') + setShowSlitherResult('visible') props.event.trigger('staticAnaysisWarning', [warningCount]) } }) @@ -283,7 +293,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { } } - const handleShowSlitherResultEnabled = () => { + const handleSlitherEnabled = () => { if (slitherEnabled) { setSlitherEnabled(false) } else { @@ -291,11 +301,12 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { } } - const handleSlitherEnabled = () => { - if (showSlitherResultEnabled) { - setShowSlitherResultEnabled(false) + const handleShowSlitherResultEnabled = () => { + if (slitherResultEnabled) { + setSlitherResultEnabled(false) } else { - setShowSlitherResultEnabled(true) + setSlitherResultEnabled(true) + showWarningsByModule('Slither Analysis') } } @@ -433,12 +444,13 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { id="showOnlySlitherResult" inputType="checkbox" onClick={handleShowSlitherResultEnabled} - checked={showSlitherResultEnabled} - label="Show Slither result only" + checked={slitherResultEnabled} + label="Only Show Slither Analysis" onChange={() => {}} visibility = {showSlitherResult} /> - + +
{Object.entries(warningState).length > 0 &&
@@ -446,9 +458,9 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => { (Object.entries(warningState).map((element, index) => (
{element[0]} - {element[1].map((x, i) => ( + {element[1]['map']((x, i) => ( x.hasWarning ? ( -
+