import { useCallback, useState, } from 'react' import { useDebounceFn } from 'ahooks' import type { SearchParams } from './types' import { useEducationAutocomplete } from '@/service/use-education' export const useEducation = () => { const { mutateAsync, isPending, data, } = useEducationAutocomplete() const [prevSchools, setPrevSchools] = useState([]) const handleUpdateSchools = useCallback((searchParams: SearchParams) => { if (searchParams.keywords) { mutateAsync(searchParams).then((res) => { const currentPage = searchParams.page || 0 const resSchools = res.data if (currentPage > 0) setPrevSchools(prevSchools => [...(prevSchools || []), ...resSchools]) else setPrevSchools(resSchools) }) } }, [mutateAsync]) const { run: querySchoolsWithDebounced } = useDebounceFn((searchParams: SearchParams) => { handleUpdateSchools(searchParams) }, { wait: 300, }) return { schools: prevSchools, setSchools: setPrevSchools, querySchoolsWithDebounced, handleUpdateSchools, isLoading: isPending, hasNext: data?.has_next, } }