import { addSearchEntryMutationOptions } from "@/shared/search-entries/mutation-options"; import { getPlooginsSettingsQueryOptions } from "@/shared/site-settings/query-options"; import { getSearchPluginsQueryOptions } from "@/shared/ploogins-search/query-options"; import useSearchStore from "@/stores/searchStore"; import { useMutation, useQuery } from "@tanstack/react-query"; import { useEffect } from "@wordpress/element"; import { usePartner } from "./usePartner"; export const useSearch = () => { const { query } = useSearchStore() const { partnerUUID } = usePartner() const { data: settingsData } = useQuery({ ...getPlooginsSettingsQueryOptions(), enabled: !partnerUUID, // Only fetch settings when there's no partner UUID queryKey: [...getPlooginsSettingsQueryOptions().queryKey, partnerUUID], // Include partnerUUID in query key }) // Only use settings when there's no partner UUID const settings = partnerUUID ? undefined : settingsData const { data, isFetching, dataUpdatedAt } = useQuery(getSearchPluginsQueryOptions(query, settings ?? {}, partnerUUID ?? null)) const addSearchEntryMutation = useMutation(addSearchEntryMutationOptions()) useEffect(() => { if (data && data.plugins.length > 0 && !isFetching) { const searchEntry: SearchEntry = { query: query, } addSearchEntryMutation.mutate(searchEntry) } }, [dataUpdatedAt]) return { query, data, isFetching, dataUpdatedAt, } }