From 171707b3cee620e6ae21ad33f65bbeee9a82be11 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 23 Sep 2024 01:14:03 +0200 Subject: [PATCH 1/2] buttons no longer steal focus --- tgui/packages/tgui/components/Button.tsx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tgui/packages/tgui/components/Button.tsx b/tgui/packages/tgui/components/Button.tsx index 72650063125..7c26e5e068a 100644 --- a/tgui/packages/tgui/components/Button.tsx +++ b/tgui/packages/tgui/components/Button.tsx @@ -91,8 +91,20 @@ export const Button = (props: Props) => { const toDisplay: ReactNode = content || children; + const ref = useRef(null); + + function handleButtonClick(event) { + if (!disabled && onClick) { + onClick(event); + if (ref?.current) { + (ref.current as HTMLElement).blur(); + } + } + } + let buttonContent = (
{ ])} tabIndex={!disabled ? 0 : undefined} onClick={(event) => { - if (!disabled && onClick) { - onClick(event); - } + handleButtonClick(event); }} onKeyDown={(event) => { if (!captureKeys) { @@ -126,9 +136,7 @@ export const Button = (props: Props) => { // Simulate a click when pressing space or enter. if (event.key === KEY.Space || event.key === KEY.Enter) { event.preventDefault(); - if (!disabled && onClick) { - onClick(event); - } + handleButtonClick(event); return; } From a8266252f878654e12456f3ef827699e88953114 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:02:14 +0200 Subject: [PATCH 2/2] maybe better keep for keyboard use --- tgui/packages/tgui/components/Button.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tgui/packages/tgui/components/Button.tsx b/tgui/packages/tgui/components/Button.tsx index 7c26e5e068a..cb7f3b0af38 100644 --- a/tgui/packages/tgui/components/Button.tsx +++ b/tgui/packages/tgui/components/Button.tsx @@ -136,7 +136,9 @@ export const Button = (props: Props) => { // Simulate a click when pressing space or enter. if (event.key === KEY.Space || event.key === KEY.Enter) { event.preventDefault(); - handleButtonClick(event); + if (!disabled && onClick) { + onClick(event); + } return; }