({preferences, sid, did, pageVisible, enablePoll=true, isTest})
| 89 | }; |
| 90 | |
| 91 | export default function Graphs({preferences, sid, did, pageVisible, enablePoll=true, isTest}) { |
| 92 | const refreshOn = useRef(null); |
| 93 | const prevPrefernces = usePrevious(preferences); |
| 94 | const theme = useTheme(); |
| 95 | |
| 96 | const [sessionStats, sessionStatsReduce] = useReducer(statsReducer, chartsDefault['session_stats']); |
| 97 | const [tpsStats, tpsStatsReduce] = useReducer(statsReducer, chartsDefault['tps_stats']); |
| 98 | const [tiStats, tiStatsReduce] = useReducer(statsReducer, chartsDefault['ti_stats']); |
| 99 | const [toStats, toStatsReduce] = useReducer(statsReducer, chartsDefault['to_stats']); |
| 100 | const [bioStats, bioStatsReduce] = useReducer(statsReducer, chartsDefault['bio_stats']); |
| 101 | |
| 102 | const [counterData, setCounterData] = useState({}); |
| 103 | |
| 104 | const [errorMsg, setErrorMsg] = useState(null); |
| 105 | const [pollDelay, setPollDelay] = useState(1000); |
| 106 | const [chartDrawnOnce, setChartDrawnOnce] = useState(false); |
| 107 | |
| 108 | useEffect(()=>{ |
| 109 | let calcPollDelay = false; |
| 110 | if(prevPrefernces) { |
| 111 | if(prevPrefernces['session_stats_refresh'] != preferences['session_stats_refresh']) { |
| 112 | sessionStatsReduce({reset: chartsDefault['session_stats']}); |
| 113 | calcPollDelay = true; |
| 114 | } |
| 115 | if(prevPrefernces['tps_stats_refresh'] != preferences['tps_stats_refresh']) { |
| 116 | tpsStatsReduce({reset:chartsDefault['tps_stats']}); |
| 117 | calcPollDelay = true; |
| 118 | } |
| 119 | if(prevPrefernces['ti_stats_refresh'] != preferences['ti_stats_refresh']) { |
| 120 | tiStatsReduce({reset:chartsDefault['ti_stats']}); |
| 121 | calcPollDelay = true; |
| 122 | } |
| 123 | if(prevPrefernces['to_stats_refresh'] != preferences['to_stats_refresh']) { |
| 124 | toStatsReduce({reset:chartsDefault['to_stats']}); |
| 125 | calcPollDelay = true; |
| 126 | } |
| 127 | if(prevPrefernces['bio_stats_refresh'] != preferences['bio_stats_refresh']) { |
| 128 | bioStatsReduce({reset:chartsDefault['bio_stats']}); |
| 129 | calcPollDelay = true; |
| 130 | } |
| 131 | } else { |
| 132 | calcPollDelay = true; |
| 133 | } |
| 134 | if(calcPollDelay) { |
| 135 | setPollDelay( |
| 136 | getGCD(Object.keys(chartsDefault).map((name)=>preferences[name+'_refresh']))*1000 |
| 137 | ); |
| 138 | } |
| 139 | }, [preferences]); |
| 140 | |
| 141 | useEffect(()=>{ |
| 142 | /* Charts rendered are not visible when, the dashboard is hidden but later visible */ |
| 143 | if(pageVisible && !chartDrawnOnce) { |
| 144 | setChartDrawnOnce(true); |
| 145 | } |
| 146 | }, [pageVisible]); |
| 147 | |
| 148 | useInterval(()=>{ |
nothing calls this directly
no test coverage detected