From 5ba5ed488f85ad533b8038344116cbf163d98358 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Tue, 13 Jul 2021 16:16:52 +0300 Subject: [PATCH] Not closing badge if user started to select text Signed-off-by: Alex Andreev --- src/renderer/components/badge/badge.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/badge/badge.tsx b/src/renderer/components/badge/badge.tsx index 3848d23481..a16b5482c0 100644 --- a/src/renderer/components/badge/badge.tsx +++ b/src/renderer/components/badge/badge.tsx @@ -36,13 +36,9 @@ export interface BadgeProps extends React.HTMLAttributes, TooltipDecoratorP disabled?: boolean; } -const badgeMeta = observable({ - hasTextSelected: false, -}); - // Common handler for all Badge instances document.addEventListener("selectionchange", () => { - badgeMeta.hasTextSelected = window.getSelection().toString().trim().length > 0; + Badge.badgeMeta.hasTextSelected ||= window.getSelection().toString().trim().length > 0; }); @withTooltip @@ -52,6 +48,10 @@ export class Badge extends React.Component { expandable: true }; + static badgeMeta = observable({ + hasTextSelected: false + }); + @observable.ref elem: HTMLElement; @observable isExpanded = false; @@ -68,8 +68,11 @@ export class Badge extends React.Component { @boundMethod onMouseUp() { - if (!this.isExpandable || badgeMeta.hasTextSelected) return; // no action required - this.isExpanded = !this.isExpanded; + if (!this.isExpandable || Badge.badgeMeta.hasTextSelected) { + Badge.badgeMeta.hasTextSelected = false; + } else { + this.isExpanded = !this.isExpanded; + } } @boundMethod