diff --git a/src/components/FilterMenu/FilterMenu.js b/src/components/FilterMenu/FilterMenu.js index 21dc90344..1a20f6ab7 100644 --- a/src/components/FilterMenu/FilterMenu.js +++ b/src/components/FilterMenu/FilterMenu.js @@ -62,17 +62,18 @@ import detailsActions from '../../actions/details' import './filterMenu.scss' const FilterMenu = ({ - actionButton, - cancelRequest, - enableAutoRefresh, - expand, + actionButton = null, + autoRefreshIsEnabled = false, + autoRefreshIsStopped = false, + cancelRequest = () => {}, + expand = false, filters, - handleExpandAll, - hidden, + handleExpandAll = () => {}, + hidden = false, onChange, page, - tab, - withoutExpandButton + tab = '', + withoutExpandButton = false }) => { const [labels, setLabels] = useState('') const [name, setName] = useState('') @@ -334,13 +335,16 @@ const FilterMenu = ({ }, [params.pageTab, params.projectName, page, dispatch]) useEffect(() => { - if (enableAutoRefresh && autoRefresh === AUTO_REFRESH_ID && !hidden) { + if (autoRefreshIsEnabled && autoRefresh === AUTO_REFRESH_ID && !hidden) { const intervalId = setInterval(() => { - applyChanges(filtersStore, true) + if (!autoRefreshIsStopped) { + applyChanges(filtersStore, true) + } }, 30000) + return () => clearInterval(intervalId) } - }, [autoRefresh, hidden, enableAutoRefresh, filtersStore, applyChanges]) + }, [autoRefresh, hidden, autoRefreshIsEnabled, filtersStore, applyChanges, autoRefreshIsStopped]) const getFilterTemplate = useCallback( filter => { @@ -495,7 +499,7 @@ const FilterMenu = ({ ))}
- {enableAutoRefresh && ( + {autoRefreshIsEnabled && ( {}, - changes: {}, - enableAutoRefresh: false, - expand: false, - handleExpandAll: () => {}, - hidden: false, - tab: '', - withoutExpandButton: false -} - FilterMenu.propTypes = { actionButton: PropTypes.shape({}), + autoRefreshIsEnabled: PropTypes.bool, + autoRefreshIsStopped: PropTypes.bool, cancelRequest: PropTypes.func, - changes: PropTypes.shape({}), - enableAutoRefresh: PropTypes.bool, expand: PropTypes.bool, filters: PropTypes.arrayOf(PropTypes.shape({})).isRequired, handleExpandAll: PropTypes.func, diff --git a/src/components/Jobs/MonitorJobs/MonitorJobs.js b/src/components/Jobs/MonitorJobs/MonitorJobs.js index 6103ebdda..d27a1ebf9 100644 --- a/src/components/Jobs/MonitorJobs/MonitorJobs.js +++ b/src/components/Jobs/MonitorJobs/MonitorJobs.js @@ -47,12 +47,13 @@ const MonitorJobs = ({ fetchAllJobRuns, fetchJobs }) => { const [dataIsLoaded, setDataIsLoaded] = useState(false) const appStore = useSelector(store => store.appStore) const filtersStore = useSelector(store => store.filtersStore) + const jobsStore = useSelector(store => store.jobsStore) const [largeRequestErrorMessage, setLargeRequestErrorMessage] = useState('') const params = useParams() const dispatch = useDispatch() const { isStagingMode } = useMode() const abortJobRef = useRef(null) - const { handleMonitoring } = React.useContext(JobsContext) + const { handleMonitoring, jobWizardIsOpened } = React.useContext(JobsContext) const abortControllerRef = useRef(new AbortController()) const filters = useMemo(() => { @@ -247,13 +248,15 @@ const MonitorJobs = ({ fetchAllJobRuns, fetchJobs }) => { disabled: !appStore.frontendSpec.jobs_dashboard_url, onClick: () => handleMonitoring() }} + autoRefreshIsEnabled + autoRefreshIsStopped={jobWizardIsOpened || jobsStore.loading} filters={filters} hidden={Boolean(params.jobId)} onChange={refreshJobs} page={JOBS_PAGE} + tab={MONITOR_JOBS_TAB} withoutExpandButton - enableAutoRefresh />
diff --git a/tests/mockServer/mock.js b/tests/mockServer/mock.js index 5eb45336e..62509f078 100644 --- a/tests/mockServer/mock.js +++ b/tests/mockServer/mock.js @@ -71,7 +71,7 @@ import nuclioAPIGateways from './data/nuclioAPIGateways.json' import nuclioStreams from './data/nuclioStreams.json' import { updateRuns } from './dateSynchronization.js' -//updating values in files with synthetic data +//updating values in files with synthetic data updateRuns(runs) // Here we are configuring express to use body-parser as middle-ware.