From f25c9e3fd12bedde0df044167f4696e5edac84eb Mon Sep 17 00:00:00 2001 From: Stephen Glass Date: Mon, 7 Oct 2024 19:44:07 -0400 Subject: [PATCH] fix entity picker single result behavior Signed-off-by: Stephen Glass --- .changeset/gorgeous-months-fix.md | 5 +++++ .../src/components/fields/EntityPicker/EntityPicker.tsx | 9 +-------- .../fields/MultiEntityPicker/MultiEntityPicker.tsx | 9 +-------- .../components/fields/MyGroupsPicker/MyGroupsPicker.tsx | 9 +-------- 4 files changed, 8 insertions(+), 24 deletions(-) create mode 100644 .changeset/gorgeous-months-fix.md diff --git a/.changeset/gorgeous-months-fix.md b/.changeset/gorgeous-months-fix.md new file mode 100644 index 0000000000..ca899b4e2f --- /dev/null +++ b/.changeset/gorgeous-months-fix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Change behavior of scaffolder entity pickers (EntityPicker, MultiEntityPicker, MyGroupsPicker) to not auto-fill and disable the field if there is only a single value option. diff --git a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx index 2ef5171c7b..67da593a9e 100644 --- a/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityPicker/EntityPicker.tsx @@ -35,7 +35,7 @@ import Autocomplete, { AutocompleteChangeReason, createFilterOptions, } from '@material-ui/lab/Autocomplete'; -import React, { useCallback, useEffect } from 'react'; +import React, { useCallback } from 'react'; import useAsync from 'react-use/esm/useAsync'; import { EntityPickerFilterQueryValue, @@ -166,12 +166,6 @@ export const EntityPicker = (props: EntityPickerProps) => { entities?.catalogEntities.find(e => stringifyEntityRef(e) === formData) ?? (allowArbitraryValues && formData ? getLabel(formData) : ''); - useEffect(() => { - if (entities?.catalogEntities.length === 1 && selectedEntity === '') { - onChange(stringifyEntityRef(entities.catalogEntities[0])); - } - }, [entities, onChange, selectedEntity]); - return ( { error={rawErrors?.length > 0 && !formData} > { [onChange, formData, defaultKind, defaultNamespace, allowArbitraryValues], ); - useEffect(() => { - if (entities?.entities?.length === 1) { - onChange([stringifyEntityRef(entities?.entities[0])]); - } - }, [entities, onChange]); - return ( { { groups?.catalogEntities.find(e => stringifyEntityRef(e) === formData) || null; - useEffect(() => { - if (groups?.catalogEntities.length === 1 && !selectedEntity) { - onChange(stringifyEntityRef(groups.catalogEntities[0])); - } - }, [groups, onChange, selectedEntity]); - return ( { error={rawErrors?.length > 0} >