import AssetIcon from "@/assets-manager/AssetIcon"; import { cn } from "@/lib/utils"; import { __ } from "@wordpress/i18n"; import { ChevronRight, Lock, Power, PowerOff } from "lucide-react"; interface AssetStatusDetails { status: string; label?: string; } type listItemProps = { asset: Record, } const ListItem = ({ asset }: listItemProps) => { const getAssetStatus = (asset): AssetStatusDetails => { if (asset.locationContexts.length === 0 && asset.userStateContexts.length === 0) { return { status: 'enabled', }; } if (asset.locationContexts.includes('global')) { return { status: 'disabled', }; } return { status: 'partially_disabled', }; } const { label, status } = getAssetStatus(asset); return (

{asset.name}

{asset.size} {asset.origin_type}

{asset.asset_url}

) } export default ListItem; const AssetStatus = ({ status, label = '' }: AssetStatusDetails) => { const statusConfig = { enabled: { Icon: Power, label: __('Loaded Everywhere', 'wp-cloudflare-page-cache'), colorClass: "text-green-600" }, disabled: { Icon: PowerOff, label: __('Not Loaded Anywhere', 'wp-cloudflare-page-cache'), colorClass: "text-red-600" }, partially_disabled: { Icon: Lock, label: __('Loaded Only on Some Pages', 'wp-cloudflare-page-cache'), colorClass: "text-amber-600" }, } const { colorClass, Icon, label: configLabel } = statusConfig[status] return (
{label || configLabel}
) }