From dfe155629b654e31f293e29b5c31bfe6be59ddbd Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Wed, 26 Jun 2024 22:33:27 +0700 Subject: [PATCH 1/2] fix: handle long thread title without space, and make searchbar autofocus inside model dropdown --- web/containers/ModelDropdown/index.tsx | 11 +++++++++-- web/screens/Thread/ThreadLeftPanel/index.tsx | 2 +- web/screens/Thread/ThreadRightPanel/Tools/index.tsx | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/web/containers/ModelDropdown/index.tsx b/web/containers/ModelDropdown/index.tsx index ed7eed635f..3d72df615f 100644 --- a/web/containers/ModelDropdown/index.tsx +++ b/web/containers/ModelDropdown/index.tsx @@ -1,4 +1,4 @@ -import { useState, useMemo, useEffect, useCallback } from 'react' +import { useState, useMemo, useEffect, useCallback, useRef } from 'react' import { InferenceEngine } from '@janhq/core' import { Badge, Input, ScrollArea, Select, useClickOutside } from '@janhq/joi' @@ -70,7 +70,7 @@ const ModelDropdown = ({ const downloadStates = useAtomValue(modelDownloadStateAtom) const setThreadModelParams = useSetAtom(setThreadModelParamsAtom) const { updateModelParameter } = useUpdateModelParameters() - + const searchInputRef = useRef(null) const configuredModels = useAtomValue(configuredModelsAtom) const featuredModel = configuredModels.filter((x) => x.metadata.tags.includes('Featured') @@ -108,6 +108,12 @@ const ModelDropdown = ({ [configuredModels, searchText, searchFilter] ) + useEffect(() => { + if (open && searchInputRef.current) { + searchInputRef.current.focus() + } + }, [open]) + useEffect(() => { if (!activeThread) return let model = downloadedModels.find( @@ -258,6 +264,7 @@ const ModelDropdown = ({ setSearchText(e.target.value)} suffixIcon={ diff --git a/web/screens/Thread/ThreadLeftPanel/index.tsx b/web/screens/Thread/ThreadLeftPanel/index.tsx index 0da7d0088e..c239559494 100644 --- a/web/screens/Thread/ThreadLeftPanel/index.tsx +++ b/web/screens/Thread/ThreadLeftPanel/index.tsx @@ -125,7 +125,7 @@ const ThreadLeftPanel = () => { onThreadClick(thread) }} > -
+

{