import { useAssetManagerStore } from "@/store/assetManagerStore"; import { Accordion } from "@radix-ui/react-accordion"; import { useMemo } from "@wordpress/element"; import { __, sprintf } from "@wordpress/i18n"; import { CircleOff, Search } from "lucide-react"; import AssetContent from "./AssetContent"; const List = () => { const { activeTab, searchQuery, assets } = useAssetManagerStore(); const visibleAssets = useMemo(() => { return assets.filter(asset => asset.asset_type === activeTab && ( asset.name.toLowerCase().includes(searchQuery) || asset.asset_url.toLowerCase().includes(searchQuery) || asset.handle.toLowerCase().includes(searchQuery) || asset.category.toLowerCase().includes(searchQuery)) ); }, [searchQuery, activeTab, assets]); return (
{visibleAssets.length > 0 && ( {visibleAssets.map((asset) => { return ( ); })} )} {visibleAssets.length < 1 && searchQuery.length > 0 && ( )} {visibleAssets.length < 1 && searchQuery.length < 1 && ( )}
) } const EmptyAssetsSearchResult = () => { const { searchQuery } = useAssetManagerStore(); return (

{sprintf( // translators: %s is the search query __('No assets found matching "%s"', 'wp-cloudflare-page-cache'), searchQuery )}

) } const EmptyAssets = () => { const { activeTab } = useAssetManagerStore(); return (

{sprintf( // translators: %s is the asset type (css/js) __('No %s assets found.', 'wp-cloudflare-page-cache'), activeTab )}

) } export default List;