Skip to content

Commit ec3b57d

Browse files
committed
add isMulti option to select fields
1 parent 69ba866 commit ec3b57d

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/components/Widgets/EditableTable.jsx

+25-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,15 @@ const FieldEditor = (props) => {
3232
} = props;
3333
const Select = reactSelect.default;
3434

35-
const { type, choices, id, minimum, maximum, defaultValue } = fieldSchema;
35+
const {
36+
type,
37+
choices,
38+
id,
39+
minimum,
40+
maximum,
41+
defaultValue,
42+
isMulti,
43+
} = fieldSchema;
3644
const intl = useIntl();
3745
const normalizedValue = normalizeValue(choices, value, intl);
3846
if (choices) {
@@ -50,6 +58,7 @@ const FieldEditor = (props) => {
5058
value={normalizedValue}
5159
className="react-table-select-field"
5260
theme={selectTheme}
61+
isMulti={isMulti}
5362
components={{
5463
...(choices?.length > 25 && {
5564
MenuList,
@@ -60,7 +69,7 @@ const FieldEditor = (props) => {
6069
}}
6170
options={options}
6271
styles={customSelectStyles}
63-
onChange={onChangeSelect}
72+
onChange={(e) => onChangeSelect(e, isMulti)}
6473
onBlur={onBlur}
6574
/>
6675
);
@@ -108,8 +117,13 @@ const EditableCell = ({
108117
setValue(e.target.value);
109118
};
110119

111-
const onChangeSelect = (e) => {
112-
setValue(e.value);
120+
const onChangeSelect = (e, isMulti) => {
121+
if (!isMulti) {
122+
setValue(e.value);
123+
} else {
124+
setValue(e.map((value) => value.value));
125+
console.log('e', e);
126+
}
113127
};
114128

115129
const onBlur = () => {
@@ -144,7 +158,13 @@ const EditableCell = ({
144158
setSelectedRow(index);
145159
}}
146160
>
147-
{value || <>&nbsp;</>}
161+
{!fieldSchema.isMulti ? (
162+
value || <>&nbsp;</>
163+
) : value ? (
164+
value.join(', ')
165+
) : (
166+
<>&nbsp;</>
167+
)}
148168
</span>
149169
);
150170
};

src/components/Widgets/react-table-widget.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
}
3737

3838
.selected-row .react-table-select-field {
39-
min-width: 4.5em;
39+
min-width: 5.5em;
4040
}
4141

4242
.selected-row .react-table-integer-field {

0 commit comments

Comments
 (0)