| @@ -4,8 +4,9 @@ import React, { useMemo, useState } from 'react' | |||
| import useSWR from 'swr' | |||
| import { useTranslation } from 'react-i18next' | |||
| import { useRouter } from 'next/navigation' | |||
| import { debounce, groupBy, omit } from 'lodash-es' | |||
| import { groupBy, omit } from 'lodash-es' | |||
| import { PlusIcon } from '@heroicons/react/24/solid' | |||
| import { useDebounce } from 'ahooks' | |||
| import List from './list' | |||
| import s from './style.module.css' | |||
| import Loading from '@/app/components/base/loading' | |||
| @@ -87,9 +88,11 @@ const Documents: FC<IDocumentsProps> = ({ datasetId }) => { | |||
| const isDataSourceFile = dataset?.data_source_type === DataSourceType.FILE | |||
| const embeddingAvailable = !!dataset?.embedding_available | |||
| const debouncedSearchValue = useDebounce(searchValue, { wait: 500 }) | |||
| const query = useMemo(() => { | |||
| return { page: currPage + 1, limit, keyword: searchValue, fetch: isDataSourceNotion ? true : '' } | |||
| }, [searchValue, currPage, isDataSourceNotion]) | |||
| return { page: currPage + 1, limit, keyword: debouncedSearchValue, fetch: isDataSourceNotion ? true : '' } | |||
| }, [currPage, debouncedSearchValue, isDataSourceNotion]) | |||
| const { data: documentsRes, error, mutate } = useSWR( | |||
| { | |||
| @@ -204,7 +207,7 @@ const Documents: FC<IDocumentsProps> = ({ datasetId }) => { | |||
| showLeftIcon | |||
| wrapperClassName='!w-[200px]' | |||
| className='!h-8 !text-[13px]' | |||
| onChange={debounce(e => setSearchValue(e.target.value), 500)} | |||
| onChange={e => setSearchValue(e.target.value)} | |||
| value={searchValue} | |||
| /> | |||
| <div className='flex gap-2 justify-center items-center !h-8'> | |||