import React from 'react';
import { useInventoryStore } from '../store/inventoryStore';
import './StorageOverview.css';
function StorageOverview() {
const inventory = useInventoryStore((state) => state.inventory);
const activity = useInventoryStore((state) => state.activity);
const connected = useInventoryStore((state) => state.connected);
const lastUpdate = useInventoryStore((state) => state.lastUpdate);
const craftTurtleOk = useInventoryStore((state) => state.craftTurtleOk);
const requestScan = useInventoryStore((state) => state.requestScan);
const usedPercent = inventory.totalSlots > 0
? Math.round((inventory.usedSlots / inventory.totalSlots) * 100)
: 0;
const getUsageColor = () => {
if (usedPercent >= 90) return 'critical';
if (usedPercent >= 75) return 'warning';
return 'normal';
};
const timeSinceUpdate = lastUpdate
? Math.floor((Date.now() - lastUpdate) / 1000)
: null;
return (
📊 Storage
{/* Storage capacity bar */}
Capacity
{usedPercent}%
{inventory.usedSlots} / {inventory.totalSlots} slots
{/* Stats grid */}
Total Items
{(inventory.grandTotal || 0).toLocaleString()}
Item Types
{(inventory.itemList || []).length}
Chests
{inventory.chestCount || 0}
Free Slots
{inventory.freeSlots || 0}
Furnaces
{inventory.furnaceCount || 0}
Craft Turtle
{craftTurtleOk ? '✅ Online' : '❌ Offline'}
{/* Peripherals */}
Peripherals
{inventory.dropperOk ? '✅' : '❌'} Dropper
{inventory.barrelOk ? '✅' : '❌'} Barrel
{/* Activity indicators */}
Activity
{activity.sorting &&
📦 Sorting
}
{activity.smelting &&
🔥 Smelting
}
{activity.dispensing &&
📤 Dispensing
}
{activity.composting &&
🌱 Composting
}
{activity.defragging &&
🔧 Defragging
}
{activity.crafting &&
🔨 Crafting
}
{!activity.sorting && !activity.smelting && !activity.dispensing &&
!activity.composting && !activity.defragging && !activity.crafting && (
💤 Idle
)}
{/* Last update */}
{lastUpdate > 0 && (
Last update: {timeSinceUpdate !== null ? `${timeSinceUpdate}s ago` : 'Never'}
)}
);
}
export default StorageOverview;