Merge pull request #20458 from Teemukoivumaa/fix/EntityPickerOneEntity
fix: make entity picker more reliable with one entity
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Make entity picker more reliable with only one available entity
|
||||
@@ -123,11 +123,17 @@ export const EntityPicker = (props: EntityPickerProps) => {
|
||||
[onChange, formData, defaultKind, defaultNamespace, allowArbitraryValues],
|
||||
);
|
||||
|
||||
// Since free solo can be enabled, attempt to parse as a full entity ref first, then fall
|
||||
// back to the given value.
|
||||
const selectedEntity =
|
||||
entities?.find(e => stringifyEntityRef(e) === formData) ??
|
||||
(allowArbitraryValues && formData ? getLabel(formData) : '');
|
||||
|
||||
useEffect(() => {
|
||||
if (entities?.length === 1) {
|
||||
if (entities?.length === 1 && selectedEntity === '') {
|
||||
onChange(stringifyEntityRef(entities[0]));
|
||||
}
|
||||
}, [entities, onChange]);
|
||||
}, [entities, onChange, selectedEntity]);
|
||||
|
||||
return (
|
||||
<FormControl
|
||||
@@ -138,12 +144,7 @@ export const EntityPicker = (props: EntityPickerProps) => {
|
||||
<Autocomplete
|
||||
disabled={entities?.length === 1}
|
||||
id={idSchema?.$id}
|
||||
value={
|
||||
// Since free solo can be enabled, attempt to parse as a full entity ref first, then fall
|
||||
// back to the given value.
|
||||
entities?.find(e => stringifyEntityRef(e) === formData) ??
|
||||
(allowArbitraryValues && formData ? getLabel(formData) : '')
|
||||
}
|
||||
value={selectedEntity}
|
||||
loading={loading}
|
||||
onChange={onSelect}
|
||||
options={entities || []}
|
||||
|
||||
Reference in New Issue
Block a user