Skip to content

Commit 22d1bd7

Browse files
YipingRuanjohnleider
authored andcommitted
fix(VComboBox): disallow items editing when readonly (#9429)
fixes #8867 * fix(vcombobox): disallow items editing when readonly * test(vautocomplete): add test * refactor(vautocomplete): adjust test
1 parent a178ac1 commit 22d1bd7

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

packages/vuetify/src/components/VAutocomplete/VAutocomplete.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ export default VSelect.extend({
256256
keyCodes.backspace,
257257
keyCodes.delete,
258258
].includes(keyCode) &&
259-
!this.getDisabled(currentItem)
259+
!this.getDisabled(currentItem) && !this.readonly
260260
) {
261261
const newIndex = this.selectedIndex === index
262262
? this.selectedIndex - 1

packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts

+23
Original file line numberDiff line numberDiff line change
@@ -494,4 +494,27 @@ describe('VAutocomplete.ts', () => {
494494

495495
expect(wrapper.vm.genSelections()).toEqual([])
496496
})
497+
498+
it('should not delete item if readonly', async () => {
499+
const wrapper = mountFunction({
500+
propsData: {
501+
items: ['a', 'b', 'c'],
502+
multiple: true,
503+
value: ['a', 'b', 'c'],
504+
},
505+
})
506+
wrapper.vm.changeSelectedIndex(keyCodes.right)
507+
wrapper.vm.changeSelectedIndex(keyCodes.right)
508+
wrapper.vm.changeSelectedIndex(keyCodes.backspace)
509+
await wrapper.vm.$nextTick()
510+
expect(wrapper.vm.selectedItems).toHaveLength(2)
511+
512+
wrapper.setProps({
513+
readonly: true,
514+
})
515+
516+
wrapper.vm.changeSelectedIndex(keyCodes.backspace)
517+
await wrapper.vm.$nextTick()
518+
expect(wrapper.vm.selectedItems).toHaveLength(2)
519+
})
497520
})

0 commit comments

Comments
 (0)