From bd66999c4a7a8a28432a78c314934d63cfaf292a Mon Sep 17 00:00:00 2001 From: Mingze Date: Wed, 20 Jan 2021 16:07:25 -0800 Subject: [PATCH] fix(drawing): Fix Safari doesn't focus and blur color picker button (#1321) * fix(drawing): Fix Safari doesn't focus and blur color picker button * fix(drawing): Address comments --- .../controls/color-picker/ColorPickerControl.tsx | 11 +++++++++++ .../__tests__/ColorPickerControl-test.tsx | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/lib/viewers/controls/color-picker/ColorPickerControl.tsx b/src/lib/viewers/controls/color-picker/ColorPickerControl.tsx index 702c9e4b0..80d791472 100644 --- a/src/lib/viewers/controls/color-picker/ColorPickerControl.tsx +++ b/src/lib/viewers/controls/color-picker/ColorPickerControl.tsx @@ -40,6 +40,16 @@ export default function ColorPickerControl({ const handleClick = (): void => setIsColorPickerToggled(!isColorPickerToggled); + const handleMouseDown = (event: React.MouseEvent): void => { + if (event.currentTarget.focus) { + // Buttons do not receive focus in Firefox and Safari on MacOS + event.currentTarget.focus(); + // When focus is called within a mousedown handler, + // preventDefault must be called to keep the focus from leaving the target + event.preventDefault(); + } + }; + return (