11import type { FC } from 'react' ;
2+ import { useMemo } from 'react' ;
23import { FormGroup , FormHelperText , HelperText , HelperTextItem } from '@patternfly/react-core' ;
34import type { FormikValues } from 'formik' ;
45import { useField , useFormikContext } from 'formik' ;
@@ -49,6 +50,19 @@ const ResourceDropdownField: FC<ResourceDropdownFieldProps> = ({
4950
5051 useFormikValidationFix ( field . value ) ;
5152
53+ // ResourceDropdown expects these as top-level props to manage loading state
54+ const { loaded, loadError } = useMemo ( ( ) => {
55+ if ( ! resources ) {
56+ return { loaded : true , loadError : undefined } ;
57+ }
58+ const allLoaded = resources . every ( ( r ) => r . loaded ) ;
59+ const resourceWithLoadError = resources . find ( ( r ) => r . loadError ) ;
60+ return {
61+ loaded : allLoaded ,
62+ loadError : resourceWithLoadError ?. loadError ,
63+ } ;
64+ } , [ resources ] ) ;
65+
5266 return (
5367 < FormGroup fieldId = { fieldId } label = { label } isRequired = { required } data-test = { dataTest } >
5468 < ResourceDropdown
@@ -60,6 +74,8 @@ const ResourceDropdownField: FC<ResourceDropdownFieldProps> = ({
6074 onLoad = { onLoad }
6175 resourceFilter = { resourceFilter }
6276 resources = { resources }
77+ loaded = { loaded }
78+ loadError = { loadError }
6379 onChange = { ( value : string , name : string | object , resource : K8sResourceKind ) => {
6480 props . onChange && props . onChange ( value , name , resource ) ;
6581 setFieldValue ( props . name , value ) ;
0 commit comments