File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ export const EnumCell = (props: EnumCellProps & VanillaRendererProps) => {
43
43
disabled = { ! enabled }
44
44
autoFocus = { uischema . options && uischema . options . focus }
45
45
value = { data || '' }
46
- onChange = { ev => handleChange ( path , ev . target . value ) }
46
+ onChange = { ev => handleChange ( path , ev . target . selectedIndex === 0 ? undefined : ev . target . value ) }
47
47
>
48
48
{
49
49
[ < option value = '' key = { 'empty' } /> ]
Original file line number Diff line number Diff line change @@ -188,6 +188,27 @@ describe('Enum cell', () => {
188
188
expect ( onChangeData . data . foo ) . toBe ( 'b' ) ;
189
189
} ) ;
190
190
191
+ test ( 'empty selection should lead to data deletion' , ( ) => {
192
+ const onChangeData : any = {
193
+ data : undefined
194
+ } ;
195
+ const core = initCore ( fixture . schema , fixture . uischema , fixture . data ) ;
196
+ wrapper = mount (
197
+ < JsonFormsStateProvider initState = { { core } } >
198
+ < TestEmitter
199
+ onChange = { ( { data } ) => {
200
+ onChangeData . data = data ;
201
+ } }
202
+ />
203
+ < EnumCell schema = { fixture . schema } uischema = { fixture . uischema } path = 'foo' />
204
+ </ JsonFormsStateProvider >
205
+ ) ;
206
+ expect ( onChangeData . data . foo ) . toBe ( 'a' ) ;
207
+ const select = wrapper . find ( 'select' ) ;
208
+ select . simulate ( 'change' , { target : { selectedIndex : 0 } } ) ;
209
+ expect ( onChangeData . data . foo ) . toBe ( undefined ) ;
210
+ } ) ;
211
+
191
212
test ( 'update via action' , ( ) => {
192
213
const data = { 'foo' : 'b' } ;
193
214
const core = initCore ( fixture . schema , fixture . uischema , data ) ;
You can’t perform that action at this time.
0 commit comments