From dc719fc6d0c81b69f49529a618c5bdf6fd2b2530 Mon Sep 17 00:00:00 2001 From: wadackel Date: Sun, 28 Apr 2024 18:30:32 +0900 Subject: [PATCH] fix: keyboard shortcuts bug --- .../internal/SidebarInner/SidebarInner.tsx | 9 +++-- src/hooks/useKey.ts | 21 ++++++++++- src/hooks/useMergeRefs.ts | 37 +++++++++++++++++++ 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 src/hooks/useMergeRefs.ts diff --git a/src/components/Sidebar/internal/SidebarInner/SidebarInner.tsx b/src/components/Sidebar/internal/SidebarInner/SidebarInner.tsx index dbb29ac..40447cb 100644 --- a/src/components/Sidebar/internal/SidebarInner/SidebarInner.tsx +++ b/src/components/Sidebar/internal/SidebarInner/SidebarInner.tsx @@ -1,5 +1,6 @@ -import React, { createRef, useCallback } from 'react'; +import React, { useCallback, useRef } from 'react'; import { useKey } from '../../../../hooks/useKey'; +import { useMergeRefs } from '../../../../hooks/useMergeRefs'; import { useEntities, useEntityFilter } from '../../../../states/entity'; import { useSidebarEntities, @@ -32,7 +33,7 @@ export const SidebarInner = ({ scrollerRef, inputRef, listRef }: Props) => { const { toggle } = useSidebarMutators(); const sidebarEntity = useSidebarEntities(); const entity = useEntities(); - const innerRef = scrollerRef || createRef(); + const innerRef = useRef(null); const handleChange = useCallback( (e: React.ChangeEvent) => { @@ -53,9 +54,11 @@ export const SidebarInner = ({ scrollerRef, inputRef, listRef }: Props) => { tryNextFocus(innerRef.current); }); + const ref = useMergeRefs(innerRef, scrollerRef); + return ( <> -