import Button from "@/components/Button"; import { cn, formatBytes } from "@/lib/utils"; import { useAssetManagerStore } from "@/store/assetManagerStore"; import { __ } from "@wordpress/i18n"; import { Code, Palette } from "lucide-react"; import SearchAssets from "./SearchAssets"; const Tabs = () => { const { activeTab, assets, switchTab } = useAssetManagerStore(); const jsAssetCount = assets.filter(asset => asset.asset_type === 'js').length; const cssAssetCount = assets.length - jsAssetCount; const currentTabAssets = assets.filter(asset => asset.asset_type === activeTab); const tabs = [ { id: 'css', label: __('CSS Files', 'wp-cloudflare-page-cache'), icon: Palette, length: cssAssetCount, }, { id: 'js', label: __('JS Files', 'wp-cloudflare-page-cache'), icon: Code, length: jsAssetCount, } ]; const getSizeInBytes = (size: string): number => { const trimmed = size.trim().toUpperCase(); const match = trimmed.match(/^([\d.]+)\s*(KB|MB|B)$/); if (!match) return 0; const value = parseFloat(match[1]); const unit = match[2]; switch (unit) { case 'MB': return value * 1024 * 1024; case 'KB': return value * 1024; case 'B': return value; default: return 0; } }; const totalSizeInBytes = currentTabAssets.reduce((sum, asset) => { return sum + getSizeInBytes(asset.size); }, 0); const totalSize = formatBytes(totalSizeInBytes); return (