diff --git a/CHANGELOG.md b/CHANGELOG.md index 442c6a6bd1..4ee7768e4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,11 @@ it according to semantic versioning. For example, if your PR adds a breaking cha should change the heading of the (upcoming) version to include a major version bump. --> +# 5.0.3 + +## @rjsf/chakra-ui +- Fixed the `SelectWidget` to allow the proper display of the selected value, fixing [#3422](https://github.com/rjsf-team/react-jsonschema-form/issues/3422) + # 5.0.2 ## @rjsf/utils diff --git a/packages/chakra-ui/src/SelectWidget/SelectWidget.tsx b/packages/chakra-ui/src/SelectWidget/SelectWidget.tsx index 7f7979b496..8f65d4a133 100644 --- a/packages/chakra-ui/src/SelectWidget/SelectWidget.tsx +++ b/packages/chakra-ui/src/SelectWidget/SelectWidget.tsx @@ -3,6 +3,7 @@ import { FormControl, FormLabel } from "@chakra-ui/react"; import { ariaDescribedByIds, EnumOptionsType, + enumOptionsIndexForValue, enumOptionsValueForIndex, FormContextType, RJSFSchema, @@ -70,7 +71,7 @@ export default function SelectWidget< ) ? enumOptions.map((option: EnumOptionsType, index: number) => { const { value, label } = option; - _valueLabelMap[index] = label; + _valueLabelMap[index] = label || String(value); return { label, value: String(index), @@ -81,16 +82,21 @@ export default function SelectWidget< : []; const isMultiple = typeof multiple !== "undefined" && Boolean(enumOptions); + const selectedIndex = enumOptionsIndexForValue( + value, + enumOptions, + isMultiple + ); const formValue: any = isMultiple - ? (value || []).map((v: any, index: number) => { + ? (selectedIndex as string[] || []).map((i: string) => { return { - label: _valueLabelMap[index] || v, - value: index, + label: _valueLabelMap[i], + value: i, }; }) : { - label: _valueLabelMap[0] || value || "", - value: 0, + label: _valueLabelMap[selectedIndex as string] || "", + selectedIndex, }; return ( diff --git a/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap b/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap index a0d8998a52..7b14fe0111 100644 --- a/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap +++ b/packages/chakra-ui/test/__snapshots__/Form.test.tsx.snap @@ -2503,7 +2503,7 @@ exports[`single fields select field 1`] = `
- foo +
@@ -3646,12 +3645,12 @@ exports[`single fields select field multiple choice formData 1`] = ` @@ -4238,7 +4237,7 @@ exports[`single fields select field single choice enumDisabled 1`] = `
- foo +
@@ -4557,7 +4555,7 @@ exports[`single fields select field single choice formData 1`] = `
- foo + bar