diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index 438698122..e89a4ff1d 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -1573,6 +1573,7 @@ This delimiter is used to split the input text into several text pieces echo of descriptionValue: 'You are an intelligent assistant.', okText: 'Save', cancelText: 'Cancel', + chooseDataset: 'Please select a dataset first', }, language: { english: 'English', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index 952a9d3c8..55dfe80d1 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -1485,6 +1485,7 @@ General:实体和关系提取提示来自 GitHub - microsoft/graphrag:基于 descriptionValue: '你是一位智能助手。', okText: '保存', cancelText: '返回', + chooseDataset: '请先选择知识库', }, language: { english: '英语', diff --git a/web/src/pages/next-search/hooks.ts b/web/src/pages/next-search/hooks.ts index b889fd6e8..568705582 100644 --- a/web/src/pages/next-search/hooks.ts +++ b/web/src/pages/next-search/hooks.ts @@ -536,6 +536,6 @@ export const useCheckSettings = (data: ISearchAppDetailProps) => { const { search_config, name } = data; const { kb_ids } = search_config; return { - openSetting: kb_ids && kb_ids.length && name ? false : true, + openSetting: kb_ids && kb_ids.length > 0 && name ? false : true, }; }; diff --git a/web/src/pages/next-search/index.tsx b/web/src/pages/next-search/index.tsx index 0a8ef62ad..b869e8fc9 100644 --- a/web/src/pages/next-search/index.tsx +++ b/web/src/pages/next-search/index.tsx @@ -82,6 +82,7 @@ export default function SearchPage() { searchText={searchText} setSearchText={setSearchText} userInfo={userInfo} + canSearch={!checkOpenSetting} /> )} diff --git a/web/src/pages/next-search/search-home.tsx b/web/src/pages/next-search/search-home.tsx index 168e9124a..0fa7d157b 100644 --- a/web/src/pages/next-search/search-home.tsx +++ b/web/src/pages/next-search/search-home.tsx @@ -1,4 +1,5 @@ import { Input } from '@/components/originui/input'; +import message from '@/components/ui/message'; import { IUserInfo } from '@/interfaces/database/user-setting'; import { cn } from '@/lib/utils'; import { Search } from 'lucide-react'; @@ -13,12 +14,14 @@ export default function SearchPage({ searchText, setSearchText, userInfo, + canSearch, }: { isSearching: boolean; setIsSearching: Dispatch>; searchText: string; setSearchText: Dispatch>; userInfo?: IUserInfo; + canSearch?: boolean; }) { // const { data: userInfo } = useFetchUserInfo(); const { t } = useTranslation(); @@ -56,10 +59,18 @@ export default function SearchPage({ value={searchText} onKeyUp={(e) => { if (e.key === 'Enter') { + if (canSearch === false) { + message.warning(t('search.chooseDataset')); + return; + } setIsSearching(!isSearching); } }} onChange={(e) => { + if (canSearch === false) { + message.warning(t('search.chooseDataset')); + return; + } setSearchText(e.target.value || ''); }} /> @@ -67,6 +78,10 @@ export default function SearchPage({ type="button" className="absolute right-2 top-1/2 -translate-y-1/2 transform rounded-full bg-text-primary p-2 text-bg-base shadow w-12" onClick={() => { + if (canSearch === false) { + message.warning(t('search.chooseDataset')); + return; + } setIsSearching(!isSearching); }} > diff --git a/web/src/pages/next-search/share/index.tsx b/web/src/pages/next-search/share/index.tsx index c269fe479..8b663adb0 100644 --- a/web/src/pages/next-search/share/index.tsx +++ b/web/src/pages/next-search/share/index.tsx @@ -5,7 +5,7 @@ import { ISearchAppDetailProps, useFetchSearchDetail, } from '../../next-searches/hooks'; -import { useGetSharedSearchParams, useSearching } from '../hooks'; +import { useCheckSettings, useGetSharedSearchParams } from '../hooks'; import '../index.less'; import SearchHome from '../search-home'; import SearchingPage from '../searching'; @@ -18,9 +18,9 @@ export default function ShareSeachPage() { } = useFetchSearchDetail(tenantId as string); const [isSearching, setIsSearching] = useState(false); const [searchText, setSearchText] = useState(''); - const searchingParam = useSearching({ - data: searchData, - }); + const { openSetting: canSearch } = useCheckSettings( + searchData as ISearchAppDetailProps, + ); useEffect(() => { if (locale && i18n.language !== locale) { @@ -47,6 +47,7 @@ export default function ShareSeachPage() { isSearching={isSearching} searchText={searchText} setSearchText={setSearchText} + canSearch={!canSearch} /> )}