'use client'; import { useState, useEffect } from 'react'; import { useInventoryStore } from '@/store/useInventoryStore'; import shared from '../../styles/shared.module.css'; import styles from '../../styles/Items.module.css'; import { Item, Offering } from './types'; import ItemGrid from './ItemGrid'; import OfferingGrid from './OfferingGrid'; type Tab = 'items' | 'offerings'; export default function ItemsPage() { const store = useInventoryStore(); const [tab, setTab] = useState('items'); const [items, setItems] = useState([]); const [offerings, setOfferings] = useState([]); const [randMin, setRandMin] = useState(50); const [randMax, setRandMax] = useState(200); useEffect(() => { Promise.all([ fetch('/data/items.json').then(r => r.json()).catch(() => []), fetch('/data/offerings.json').then(r => r.json()).catch(() => []), ]).then(([i, o]) => { setItems(i); setOfferings(o); }); }, []); const handleClearAll = () => { store.clearCategory('items'); store.clearCategory('offerings'); }; const activeItems = Object.values(store.items).filter(q => q > 0).length; const activeOfferings = Object.values(store.offerings).filter(q => q > 0).length; return (

Items & Offerings

{activeItems} active items · {activeOfferings} active offerings

Rand range setRandMin(Math.max(0, parseInt(e.target.value) || 0))} /> setRandMax(Math.min(5000, parseInt(e.target.value) || 0))} />
{(['items', 'offerings'] as Tab[]).map(t => ( ))}
{tab === 'items' && ( )} {tab === 'offerings' && ( )}
); }