From d9f9ea40475f61fdbdd8b21cbdbab17755338746 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Wed, 9 Jul 2025 12:48:40 -0700 Subject: [PATCH] Fix state bug --- src-web/components/GraphQLDocsExplorer.tsx | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src-web/components/GraphQLDocsExplorer.tsx b/src-web/components/GraphQLDocsExplorer.tsx index 4306e5f1..a3ad5fc4 100644 --- a/src-web/components/GraphQLDocsExplorer.tsx +++ b/src-web/components/GraphQLDocsExplorer.tsx @@ -26,6 +26,7 @@ import { Fragment, memo, useCallback, useMemo, useRef, useState } from 'react'; import { showGraphQLDocExplorerAtom } from '../atoms/graphqlSchemaAtom'; import { useDebouncedValue } from '../hooks/useDebouncedValue'; import { useRandomKey } from '../hooks/useRandomKey'; +import { useStateWithDeps } from '../hooks/useStateWithDeps'; import { jotaiStore } from '../lib/jotai'; import { CountBadge } from './core/CountBadge'; import { Icon } from './core/Icon'; @@ -63,10 +64,10 @@ export const GraphQLDocsExplorer = memo(function GraphQLDocsExplorer({ return (
-
+
{activeItem == null ? ( -
+
Root Types
@@ -597,7 +598,9 @@ function GqlSchemaSearch({ setItem: (t: ExplorerItem) => void; className?: string; }) { - const [activeResult, setActiveResult] = useState(null); + const [activeResult, setActiveResult] = useStateWithDeps(null, [ + currentItem, + ]); const [forceRefreshKey, regenerateForceRefreshKey] = useRandomKey(); const [focused, setFocused] = useState(false); const [value, setValue] = useState(''); @@ -680,7 +683,7 @@ function GqlSchemaSearch({ } } }, - [results, activeIndex, activeResult, setItem, currentItem], + [results, activeIndex, setActiveResult, activeResult, setItem, currentItem], ); if (!canSearch) return null; @@ -709,16 +712,14 @@ function GqlSchemaSearch({ } onChange={setValue} onKeyDownCapture={handleKeyDown} + onFocus={() => setFocused(true)} onBlur={() => { + setValue(''); + regenerateForceRefreshKey(); setTimeout(() => { setFocused(false); - setValue(''); - regenerateForceRefreshKey(); }, 100); }} - onFocus={() => { - setFocused(true); - }} />