diff --git a/packages/app/src/Hooks/useProfileSearch.tsx b/packages/app/src/Hooks/useProfileSearch.tsx index 6134d3eb..40d307e4 100644 --- a/packages/app/src/Hooks/useProfileSearch.tsx +++ b/packages/app/src/Hooks/useProfileSearch.tsx @@ -1,13 +1,29 @@ import { socialGraphInstance } from "@snort/system"; -import { useMemo } from "react"; +import { useEffect, useMemo, useState } from "react"; import fuzzySearch from "@/Db/FuzzySearch"; import useTimelineFeed from "@/Feed/TimelineFeed"; +import { debounce } from "@/Utils"; const options = { method: "LIMIT_UNTIL" }; export default function useProfileSearch(search: string) { - const subject = useMemo(() => ({ type: "profile_keyword", items: [search], discriminator: search }), [search]); + const [debouncedSearch, setDebouncedSearch] = useState(search); + + useEffect(() => { + return debounce(500, () => { + setDebouncedSearch(search); + }); + }, [search]); + + const subject = useMemo( + () => ({ + type: "profile_keyword", + items: debouncedSearch ? [debouncedSearch] : [], + discriminator: debouncedSearch, + }), + [debouncedSearch], + ); const feed = useTimelineFeed(subject, options); const results = useMemo(() => { return userSearch(search);