import { __ } from "@wordpress/i18n"; import { getSitePluginsQueryOptions } from "@/shared/site-plugins/query-options"; import { useQuery } from "@tanstack/react-query"; import { useEffect, useMemo } from "@wordpress/element"; import { getPluginDataQueryOptions } from "@/shared/ploogins-search/query-options"; import { Icon } from "@wordpress/components"; import { download } from "@wordpress/icons"; import PluginsView from "../PluginsView"; import usePluginsViewStore from "@/stores/pluginsViewStore"; const Installed = () => { const { data: sitePlugins } = useQuery(getSitePluginsQueryOptions()) const pluginSlugs = sitePlugins?.map((plugin) => plugin.plugin.split('/')[0]).filter((slug) => slug !== ''); const { data: pluginQueries, isLoading } = useQuery(getPluginDataQueryOptions(pluginSlugs ?? [])); const data = useMemo(() => { if (!sitePlugins) return []; return sitePlugins.map((plugin, index) => { return pluginQueries?.[index] as WordPressPlugin | undefined; }).filter((plugin): plugin is WordPressPlugin => plugin !== undefined); }, [sitePlugins, pluginQueries]); const { setData, setIsPending } = usePluginsViewStore() useEffect(() => { setData(data) }, [data]) useEffect(() => { setIsPending(isLoading) }, [isLoading]) return (