From 3d0c8d5cce18c999a6245ba979b54591e5dc6efb Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 3 Jun 2021 17:45:19 -0300 Subject: [PATCH] fix: avoid event propagation when deleting a tag --- app/assets/javascripts/components/NoteTag.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/components/NoteTag.tsx b/app/assets/javascripts/components/NoteTag.tsx index 31a9dd941..f078c8a06 100644 --- a/app/assets/javascripts/components/NoteTag.tsx +++ b/app/assets/javascripts/components/NoteTag.tsx @@ -18,8 +18,14 @@ export const NoteTag = observer(({ appState, tag }: Props) => { appState.noteTags.removeTagFromActiveNote(tag); }; - const onTagClick = () => { - if (tagClicked) { + const onDeleteTagClick = (event: MouseEvent) => { + event.stopImmediatePropagation(); + event.stopPropagation(); + deleteTag(); + }; + + const onTagClick = (event: MouseEvent) => { + if (tagClicked && event.target !== deleteTagRef.current) { setTagClicked(false); appState.setSelectedTag(tag); } else { @@ -78,7 +84,7 @@ export const NoteTag = observer(({ appState, tag }: Props) => { className="ml-2 -mr-1 border-0 p-0 bg-transparent cursor-pointer flex" onFocus={onFocus} onBlur={onBlur} - onClick={deleteTag} + onClick={onDeleteTagClick} >