diff --git a/packages/ibm-products/src/components/EditInPlace/EditInPlace.tsx b/packages/ibm-products/src/components/EditInPlace/EditInPlace.tsx index 725c848d00..b1d9220dbe 100644 --- a/packages/ibm-products/src/components/EditInPlace/EditInPlace.tsx +++ b/packages/ibm-products/src/components/EditInPlace/EditInPlace.tsx @@ -207,13 +207,11 @@ export let EditInPlace = forwardRef( const onSaveHandler = () => { setInitialValue(value); - setFocused(false); setDirtyInput(false); onSave(); }; const onCancelHandler = () => { - setFocused(false); setDirtyInput(false); onCancel(initialValue); }; @@ -248,16 +246,21 @@ export let EditInPlace = forwardRef( onCancelHandler(); }; + const removeFocus = () => { + inputRef.current?.blur(); + setFocused(false); + }; + const onKeyHandler = (e) => { // to prevent blur handler from being called twice add additional state to check if escape is being used escaping.current = true; switch (e.key) { case 'Escape': - inputRef.current?.blur(); + removeFocus(); escapeHandler(); break; case 'Enter': - inputRef.current?.blur(); + removeFocus(); returnHandler(); break; default: