diff --git a/frontend/packages/core/src/Input/select.tsx b/frontend/packages/core/src/Input/select.tsx index c72dd8224a..b657830bfc 100644 --- a/frontend/packages/core/src/Input/select.tsx +++ b/frontend/packages/core/src/Input/select.tsx @@ -251,6 +251,7 @@ export interface SelectProps extends Pick void; + noDefault?: boolean; } const Select = ({ @@ -263,6 +264,7 @@ const Select = ({ options, onChange, value, + noDefault, }: SelectProps) => { // Flattens all options and sub grouped options for easier retrieval const flatOptions: BaseSelectOptions[] = flattenBaseSelectOptions(options); @@ -276,7 +278,7 @@ const Select = ({ ); React.useEffect(() => { - if (flatOptions.length !== 0) { + if (flatOptions.length !== 0 && !noDefault) { onChange && onChange(flatOptions[selectedIdx]?.value || flatOptions[selectedIdx].label); } }, []); diff --git a/frontend/packages/core/src/Input/tests/select.test.tsx b/frontend/packages/core/src/Input/tests/select.test.tsx index 3273f635a2..feecb8119c 100644 --- a/frontend/packages/core/src/Input/tests/select.test.tsx +++ b/frontend/packages/core/src/Input/tests/select.test.tsx @@ -17,6 +17,17 @@ test("select has lower bound", () => { expect(container.querySelector("#foobar-select")).toHaveTextContent("foo"); }); +test("select doesn't have default value when rendered", () => { + const { container } = render( + +