diff --git a/src/components/base/base-search-box.tsx b/src/components/base/base-search-box.tsx index 0eecc792b..9f12fc997 100644 --- a/src/components/base/base-search-box.tsx +++ b/src/components/base/base-search-box.tsx @@ -27,6 +27,7 @@ export type SearchState = { type SearchOptionState = Omit type SearchProps = { + inputRef?: React.RefObject value?: string defaultValue?: string autoFocus?: boolean @@ -73,6 +74,7 @@ const useControllableState = (options: { } export const BaseSearchBox = ({ + inputRef, value, defaultValue, autoFocus, @@ -200,6 +202,7 @@ export const BaseSearchBox = ({ return ( (null) + useEffect(() => { delayManager.setUrl(groupName, testUrl?.trim() || url || defaultLatencyUrl) }, [groupName, testUrl, defaultLatencyUrl, url]) @@ -102,7 +104,7 @@ export const ProxyGroupTools = memo(function ProxyGroupTools(props: Props) { {textState === 'filter' && ( inputRef.current?.focus()) }} > {textState === 'url' ? ( @@ -249,6 +253,7 @@ export const ProxyGroupTools = memo(function ProxyGroupTools(props: Props) { // eslint-disable-next-line @eslint-react/dom-no-flush-sync flushSync(() => onHeadState({ open: true })) onHeadState({ textState: textState === 'filter' ? null : 'filter' }) + setTimeout(() => inputRef.current?.focus()) }} > {textState === 'filter' ? (