@@ -63,7 +63,6 @@ export default function ServicesCreateEditPage({
6363 } = useSession ( )
6464 const [ service , setService ] = useState < K8Service | undefined > ( undefined )
6565 const [ url , setUrl ] = useState < string | undefined > ( undefined )
66- const [ hasSetActiveService , setHasSetActiveService ] = useState ( false )
6766
6867 const getKeyValue = ( activeService : K8Service ) => {
6968 let compositeUrl = ''
@@ -179,11 +178,8 @@ export default function ServicesCreateEditPage({
179178 } , [ k8sServices ] )
180179
181180 useEffect ( ( ) => {
182- if ( ! hasSetActiveService && data ?. metadata . name ) {
183- setActiveService ( data ?. metadata . name )
184- setHasSetActiveService ( true )
185- }
186- } , [ hasSetActiveService , data ?. metadata . name ] )
181+ if ( data ?. metadata . name ) setActiveService ( data ?. metadata . name )
182+ } , [ data ?. metadata . name , filteredK8Services ] )
187183
188184 const TrafficControlEnabled = watch ( 'spec.trafficControl.enabled' )
189185 function setActiveService ( name : string ) {
@@ -279,13 +275,13 @@ export default function ServicesCreateEditPage({
279275 />
280276 ) }
281277
282- { service ?. ports . length === 1 || teamId === 'admin' ? (
278+ { teamId === 'admin' || ! service ?. ports ? .length || service . ports . length === 1 ? (
283279 < TextField
284280 label = 'Port'
285281 width = 'small'
286282 { ...register ( 'spec.port' ) }
287- disabled = { service ?. ports . length > 1 }
288- value = { watch ( 'spec.port' ) || data ?. spec ?. port [ 0 ] }
283+ disabled = { teamId !== 'admin' && ( ! ! serviceName || service ?. ports ? .length === 1 ) }
284+ value = { watch ( 'spec.port' ) ?? data ?. spec ?. port ?. [ 0 ] ?? '' }
289285 error = { ! ! errors . spec ?. port }
290286 helperText = { errors . spec ?. port ?. message ?. toString ( ) }
291287 />
@@ -295,16 +291,17 @@ export default function ServicesCreateEditPage({
295291 width = 'small'
296292 { ...register ( 'spec.port' ) }
297293 select
294+ disabled = { teamId !== 'admin' && ! ! serviceName }
298295 onChange = { ( e ) => {
299296 const value = Number ( e . target . value )
300297 setValue ( 'spec.port' , value )
301298 } }
302299 placeholder = 'Select a port'
303- value = { watch ( 'spec.port' ) || data ?. spec ?. port }
300+ value = { watch ( 'spec.port' ) ?? data ?. spec ?. port ?? '' }
304301 error = { ! ! errors . spec ?. port }
305302 helperText = { errors . spec ?. port ?. message ?. toString ( ) }
306303 >
307- { service ? .ports . map ( ( port ) => (
304+ { service . ports . map ( ( port ) => (
308305 < MenuItem key = { `service-${ port } ` } value = { port } classes = { undefined } >
309306 { port }
310307 </ MenuItem >
0 commit comments