// web/js/pages/user/UserTabsBrowse.js // ✅ 1. Komponen BrowseTab (Barang Ditemukan) const BrowseTab = ({ state, handlers }) => { const { filteredItems, loading, searchTerm, setSearchTerm, categoryFilter, setCategoryFilter, categories, user, } = state; const { handleViewDetail, handleClaim } = handlers; return (

📦 Barang Ditemukan

setSearchTerm(e.target.value)} className="flex-1 min-w-[200px] px-4 py-2 bg-slate-700 border-2 border-slate-600 rounded-xl text-white placeholder-slate-400 focus:border-blue-500 focus:outline-none" />
{loading ? (

Memuat data...

) : ( <>
{filteredItems.map((item) => ( ))}
{filteredItems.length === 0 && (
📦

Tidak ada barang ditemukan sesuai pencarian.

)} )}
); }; // ✅ 2. Komponen PublicLostItemsTab (Barang Hilang Publik) const PublicLostItemsTab = ({ state, handlers }) => { const { publicLostItems, loading, user } = state; const [showContactModal, setShowContactModal] = React.useState(false); const [selectedLostItem, setSelectedLostItem] = React.useState(null); const [showDetailModal, setShowDetailModal] = React.useState(false); const [selectedDetailItem, setSelectedDetailItem] = React.useState(null); const handleShowContact = (item) => { setSelectedLostItem(item); setShowContactModal(true); }; const handleShowDetail = (item) => { setSelectedDetailItem(item); setShowDetailModal(true); }; return (

Semua Laporan Barang Hilang

{publicLostItems.length} laporan
{loading ? (

Memuat data...

) : publicLostItems.length > 0 ? (
{publicLostItems.map((item) => { const isMine = user && user.id === item.user_id; return (
{/* Header */}

{item.name}

{/* ✅ Tampilkan Badge jika barang sendiri */} {isMine ? ( BARANG SAYA ) : ( {item.status} )}
🏷️ {item.category || item.category_name}
{item.location && (
📍 {item.location}
)}
👤 {item.user_name}

{item.description}

{item.status === "active" && !isMine && ( )} {isMine && (
Kelola di tab "Barang Hilang Saya"
)}
); })}
) : (
😢

Belum ada laporan barang hilang

)} {/* Modal Detail Barang Hilang */} setShowDetailModal(false)} title="📋 Detail Barang Hilang" > {selectedDetailItem && (

{selectedDetailItem.name}

🏷️{" "} {selectedDetailItem.category || selectedDetailItem.category_name || "-"} 📅 {Helpers.formatDate(selectedDetailItem.date_lost)}

📍 Lokasi Hilang

{selectedDetailItem.location || "-"}

🎨 Warna/Ciri

{selectedDetailItem.color || "-"}

📝 Deskripsi Lengkap

"{selectedDetailItem.description}"

👤

Dilaporkan Oleh

{selectedDetailItem.user_name}

)}
{/* Modal Kontak (Jika diperlukan) */} setShowContactModal(false)} title="👋 Anda Menemukan Barang Ini?" > {selectedLostItem && (
👤

Silakan hubungi pemilik:

{selectedLostItem.user_name}

{selectedLostItem.user_contact ? ( 📞 Hubungi via WhatsApp ) : (
Kontak tidak ditampilkan secara publik
)}
Atau
📝

Laporkan Temuan

Agar lebih aman, Anda bisa melaporkan barang ini sebagai "Ditemukan" di sistem kami.

)}
); }; // Export ke window agar bisa diakses oleh UserApp window.BrowseTab = BrowseTab; window.PublicLostItemsTab = PublicLostItemsTab;