@@ -3,7 +3,7 @@ import {Page} from 'argo-ui/src/components/page/page';
3
3
import { SlidingPanel } from 'argo-ui/src/components/sliding-panel/sliding-panel' ;
4
4
import { Tabs } from 'argo-ui/src/components/tabs/tabs' ;
5
5
import * as React from 'react' ;
6
- import { useContext , useEffect , useState } from 'react' ;
6
+ import { useContext , useEffect , useRef , useState } from 'react' ;
7
7
import { RouteComponentProps } from 'react-router' ;
8
8
9
9
import { ID } from '../event-flow/id' ;
@@ -27,6 +27,7 @@ export function EventSourceDetails({history, location, match}: RouteComponentPro
27
27
const queryParams = new URLSearchParams ( location . search ) ;
28
28
29
29
// state for URL and query parameters
30
+ const isFirstRender = useRef ( true ) ;
30
31
const namespace = match . params . namespace ;
31
32
const name = match . params . name ;
32
33
const [ tab , setTab ] = useState < string > ( queryParams . get ( 'tab' ) ) ;
@@ -40,18 +41,20 @@ export function EventSourceDetails({history, location, match}: RouteComponentPro
40
41
[ history ]
41
42
) ;
42
43
43
- useEffect (
44
- ( ) =>
45
- history . push (
46
- historyUrl ( 'event-sources/{namespace}/{name}' , {
47
- namespace,
48
- name,
49
- tab,
50
- selectedNode
51
- } )
52
- ) ,
53
- [ namespace , name , tab , selectedNode ]
54
- ) ;
44
+ useEffect ( ( ) => {
45
+ if ( isFirstRender . current ) {
46
+ isFirstRender . current = false ;
47
+ return ;
48
+ }
49
+ history . push (
50
+ historyUrl ( 'event-sources/{namespace}/{name}' , {
51
+ namespace,
52
+ name,
53
+ tab,
54
+ selectedNode
55
+ } )
56
+ ) ;
57
+ } , [ namespace , name , tab , selectedNode ] ) ;
55
58
56
59
const [ error , setError ] = useState < Error > ( ) ;
57
60
const { object : eventSource , setObject : setEventSource , resetObject : resetEventSource , serialization, edited, lang, setLang} = useEditableObject < EventSource > ( ) ;
0 commit comments