From 639c067a40437a2cedacc6f2a9dfbd079d47be5b Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 11 Mar 2020 20:26:08 +0900 Subject: [PATCH 1/3] [Autocomplete] delete multiple Chips with Escape Key --- packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js index d98d1650945ef9..960c1878160ace 100644 --- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js +++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js @@ -649,7 +649,7 @@ export default function useAutocomplete(props) { // Avoid the Modal to handle the event. event.stopPropagation(); handleClose(event); - } else if (clearOnEscape && inputValue !== '') { + } else if (clearOnEscape && (inputValue !== '' || (multiple && value.length > 0))) { // Avoid Opera to exit fullscreen mode. event.preventDefault(); // Avoid the Modal to handle the event. From 0f2c550d5b3a2085bae50760766e4ac58370e097 Mon Sep 17 00:00:00 2001 From: Kiran Date: Wed, 11 Mar 2020 20:34:44 +0900 Subject: [PATCH 2/3] formatting fixed using prettier --- packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js index 960c1878160ace..f5ece946397df5 100644 --- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js +++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js @@ -649,7 +649,7 @@ export default function useAutocomplete(props) { // Avoid the Modal to handle the event. event.stopPropagation(); handleClose(event); - } else if (clearOnEscape && (inputValue !== '' || (multiple && value.length > 0))) { + } else if (clearOnEscape && (inputValue !== '' || (multiple && value.length > 0))) { // Avoid Opera to exit fullscreen mode. event.preventDefault(); // Avoid the Modal to handle the event. From 428e0ac59f81895ca678173d1cbf878f94f658f2 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Fri, 13 Mar 2020 23:13:55 +0100 Subject: [PATCH 3/3] add failing test case --- .../src/Autocomplete/Autocomplete.test.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js b/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js index b1bb46ccc4586a..4e1ec7fc71282f 100644 --- a/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js +++ b/packages/material-ui-lab/src/Autocomplete/Autocomplete.test.js @@ -456,6 +456,29 @@ describe('', () => { }); }); + describe('prop: clearOnEscape', () => { + it('should clear on escape', () => { + const handleChange = spy(); + render( + } + />, + ); + + fireEvent.keyDown(document.activeElement, { key: 'Escape' }); + fireEvent.keyDown(document.activeElement, { key: 'Escape' }); + + expect(handleChange.callCount).to.equal(1); + expect(handleChange.args[0][1]).to.deep.equal([]); + }); + }); + describe('when popup open', () => { it('closes the popup if Escape is pressed ', () => { const handleClose = spy();