From cf371675f1cb8558f2de2f3f5b645ea12fbdb118 Mon Sep 17 00:00:00 2001 From: Yihui Liao <44729383+yihuiliao@users.noreply.github.com> Date: Tue, 13 Feb 2024 11:13:41 -0800 Subject: [PATCH 1/3] Fix focus going to the DropZone after closing FileTrigger --- packages/react-aria-components/src/DropZone.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/react-aria-components/src/DropZone.tsx b/packages/react-aria-components/src/DropZone.tsx index a1404c947c4..dcf2bfdaa7c 100644 --- a/packages/react-aria-components/src/DropZone.tsx +++ b/packages/react-aria-components/src/DropZone.tsx @@ -85,13 +85,11 @@ function DropZone(props: DropZoneProps, ref: ForwardedRef) { values={[ [TextContext, {id: textId, slot: 'label'}] ]}> - {/* eslint-disable-next-line */}
buttonRef.current?.focus()} data-hovered={isHovered || undefined} data-focused={isFocused || undefined} data-focus-visible={isFocusVisible || undefined} From 9b17323527f534a0acea493ca4372a183d716f40 Mon Sep 17 00:00:00 2001 From: Yihui Liao <44729383+yihuiliao@users.noreply.github.com> Date: Tue, 13 Feb 2024 16:27:07 -0800 Subject: [PATCH 2/3] check event target --- packages/react-aria-components/src/DropZone.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/react-aria-components/src/DropZone.tsx b/packages/react-aria-components/src/DropZone.tsx index dcf2bfdaa7c..6d9c8d9b3c3 100644 --- a/packages/react-aria-components/src/DropZone.tsx +++ b/packages/react-aria-components/src/DropZone.tsx @@ -85,11 +85,17 @@ function DropZone(props: DropZoneProps, ref: ForwardedRef) { values={[ [TextContext, {id: textId, slot: 'label'}] ]}> + {/* eslint-disable-next-line */}
{ + if (e.currentTarget === e.target) { + buttonRef.current?.focus(); + } + }} data-hovered={isHovered || undefined} data-focused={isFocused || undefined} data-focus-visible={isFocusVisible || undefined} From 30b78864a22a94ea65127cdc30de19e3c1718a9e Mon Sep 17 00:00:00 2001 From: Yihui Liao <44729383+yihuiliao@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:29:56 -0800 Subject: [PATCH 3/3] ensure that you can actually click anywhere to paste --- packages/react-aria-components/src/DropZone.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-aria-components/src/DropZone.tsx b/packages/react-aria-components/src/DropZone.tsx index 6d9c8d9b3c3..72faacab914 100644 --- a/packages/react-aria-components/src/DropZone.tsx +++ b/packages/react-aria-components/src/DropZone.tsx @@ -92,7 +92,8 @@ function DropZone(props: DropZoneProps, ref: ForwardedRef) { slot={props.slot || undefined} ref={ref} onClick={(e) => { - if (e.currentTarget === e.target) { + let target = e.target as HTMLElement; + if (!target.matches('input')) { buttonRef.current?.focus(); } }}