@@ -125,6 +125,8 @@ function TapSearchPanelImpl({initArgs= {}, titleOn=true, lockService=false, lock
125125 const tapOps = useMemo ( ( ) => makeTapServiceOptions ( tapConfig . services , tapConfig . additional ?. services , userServices ) ,
126126 [ tapConfig . services , tapConfig . additional ?. services , userServices ] ) ;
127127 const tapState = getTapBrowserState ( ) ;
128+ if ( ! initArgs ?. urlApi ?. execute ) searchFromAPIOnce ( true ) ; //if not execute then mark as done, i.e. disable any auto searching
129+ initApiAddedServiceOnce ( initArgs ) ; //only look for the extra service the first time
128130 const { current :clickFuncRef } = useRef ( { clickFunc :undefined } ) ;
129131 const [ selectBy , setSelectBy ] = useState ( ( ) => {
130132 const val = getVal ( 'selectBy' ) ;
@@ -135,7 +137,7 @@ function TapSearchPanelImpl({initArgs= {}, titleOn=true, lockService=false, lock
135137 const [ servicesShowing , setServicesShowingInternal ] = useState ( tapState . lastServicesShowing ) ;
136138 const [ obsCoreTableModel , setObsCoreTableModel ] = useState ( ) ;
137139 const [ serviceUrl , setServiceUrl ] = useState ( ( ) => getInitServiceUrl ( tapState , initArgs , tapOps , lockedServiceUrl , lockedServiceName ) ) ;
138-
140+ activateInitArgsAdqlOnce ( groupKey , tapState , initArgs , setSelectBy ) ;
139141
140142 const setServicesShowing = ( showing ) => {
141143 setServicesShowingInternal ( showing ) ;
@@ -144,10 +146,10 @@ function TapSearchPanelImpl({initArgs= {}, titleOn=true, lockService=false, lock
144146
145147 const obsCoreEnabled = obsCoreTableModel ?. tableData ?. data ?. length > 0 ;
146148
147- const onDeleteServiceOption = ( deletedValue ) => {
149+ const onDeleteServiceOption = ( deletedValue , clearServiceOnDelete = false ) => {
148150 deleteUserService ( deletedValue ) ;
149151
150- if ( serviceUrl === deletedValue ) {
152+ if ( clearServiceOnDelete ) {
151153 setServiceUrl ( '' ) ;
152154 setTapBrowserState ( { ...getTapBrowserState ( ) , serviceUrl : '' } ) ;
153155 setVal ( ADQL_QUERY_KEY , '' ) ;
@@ -156,7 +158,6 @@ function TapSearchPanelImpl({initArgs= {}, titleOn=true, lockService=false, lock
156158 }
157159 } ;
158160
159-
160161 const onTapServiceOptionSelect = ( selectedOption ) => {
161162 if ( ! selectedOption ) return ;
162163 setVal ( ADQL_QUERY_KEY , '' ) ;
@@ -167,18 +168,6 @@ function TapSearchPanelImpl({initArgs= {}, titleOn=true, lockService=false, lock
167168 setTapBrowserState ( { ...getTapBrowserState ( ) , serviceUrl : nextServiceUrl } ) ;
168169 } ;
169170
170- useEffect ( ( ) => {
171- if ( ! initArgs ?. urlApi ?. execute ) searchFromAPIOnce ( true ) ;
172- } , [ initArgs ?. urlApi ?. execute ] ) ;
173-
174- useEffect ( ( ) => {
175- initApiAddedServiceOnce ( initArgs ) ;
176- } , [ initArgs ] ) ;
177-
178- useEffect ( ( ) => {
179- activateInitArgsAdqlOnce ( groupKey , tapState , initArgs , setSelectBy ) ;
180- } , [ groupKey , initArgs , setSelectBy , tapState ] ) ;
181-
182171 useEffect ( ( ) => {
183172 const { serviceUrl :u } = initArgs ?. searchParams ?? { } ;
184173 u && u !== serviceUrl && setServiceUrl ( u ) ;
@@ -380,9 +369,9 @@ function Services({serviceUrl, servicesShowing, tapOps, onTapServiceOptionSelect
380369 } ,
381370 renderValue :
382371 ( { value} ) =>
383- ( < ServiceOpRender { ...{ ops : tapOps , value, onDeleteServiceOption} } /> ) ,
372+ ( < ServiceOpRender { ...{ ops : tapOps , value, onDeleteServiceOption, clearServiceOnDelete : true } } /> ) ,
384373 decorator :
385- ( label , value ) => ( < ServiceOpRender { ...{ ops : tapOps , value, onDeleteServiceOption} } /> ) ,
374+ ( label , value ) => ( < ServiceOpRender { ...{ ops : tapOps , value, onDeleteServiceOption, clearServiceOnDelete : value === serviceUrl } } /> ) ,
386375 } } /> ) }
387376 < FormHelperText sx = { { m : .25 } } >
388377 { enterUrl ? 'Type the url of a TAP service & press enter' : 'Choose a TAP service from the list' }
@@ -394,7 +383,7 @@ function Services({serviceUrl, servicesShowing, tapOps, onTapServiceOptionSelect
394383}
395384
396385
397- function ServiceOpRender ( { ops, value, sx, onDeleteServiceOption} ) {
386+ function ServiceOpRender ( { ops, value, sx, onDeleteServiceOption, clearServiceOnDelete = false } ) {
398387 const op = ops . find ( ( t ) => t . value === value ) ;
399388 if ( ! op ) return 'none' ;
400389 return (
@@ -409,18 +398,15 @@ function ServiceOpRender({ops, value, sx, onDeleteServiceOption}) {
409398 </ Typography >
410399 </ Stack >
411400 { op . userAdded &&
412- < ChipDelete
413- component = 'div'
414- size = 'sm'
415- sx = { { zIndex :2 } }
401+ < ChipDelete component = 'div' size = 'sm' sx = { { zIndex :2 } }
416402 onMouseDown = { ( e ) => {
417403 e . preventDefault ( ) ;
418404 e . stopPropagation ( ) ;
419405 } }
420406 onClick = { ( e ) => {
421407 e . preventDefault ( ) ;
422408 e . stopPropagation ( ) ;
423- onDeleteServiceOption ( value ) ;
409+ onDeleteServiceOption ( value , clearServiceOnDelete ) ;
424410 } }
425411 />
426412 }
0 commit comments