'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, Addon } from './types'; import { fetchItems, fetchOfferings, fetchAddons } from '../../lib/db'; import ItemGrid from './ItemGrid'; import OfferingGrid from './OfferingGrid'; import AddonGrid from './AddonGrid'; type Tab = 'items' | 'offerings' | 'addons'; export default function ItemsPage() { const store = useInventoryStore(); const [tab, setTab] = useState('items'); const [items, setItems] = useState([]); const [offerings, setOfferings] = useState([]); const [addons, setAddons] = useState([]); const [randMin, setRandMin] = useState(50); const [randMax, setRandMax] = useState(200); useEffect(() => { Promise.all([fetchItems(), fetchOfferings(), fetchAddons()]).then( ([i, o, a]) => { setItems(i); setOfferings(o); setAddons(a); } ); }, []); const handleClearAll = () => { store.clearCategory('items'); store.clearCategory('offerings'); store.clearCategory('addons'); }; const activeItems = Object.values(store.items).filter((q) => q > 0).length; const activeOfferings = Object.values(store.offerings).filter( (q) => q > 0 ).length; const activeAddons = Object.values(store.addons).filter((q) => q > 0).length; return (

Items & Offerings

{activeItems} items · {activeOfferings} offerings · {activeAddons}{' '} addons

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