{item.sku}
{item.name}
{item.colorway}
| SKU | Model Name | Year | Colorway | Status | |
|---|---|---|---|---|---|
| {item.sku} | {item.name} | {item.year} | {item.colorway} | {item.status} |
No Archive Records Found
Try adjusting your search terms or filters.
import React, { useState, useEffect, useMemo } from 'react'; import { Search, Filter, Box, Calendar, Tag, ChevronRight, Info, ExternalLink, Grid, List } from 'lucide-react'; // Mock Data - In a real scenario, you would use PapaParse to load your master_metadata.csv const INITIAL_DATA = [ { id: 1, sku: "BA3241-001", name: "RPM Black Anthracite", year: 2012, colorway: "Black/Black", status: "Released", description: "The classic OG RPM with the iconic skateboard straps and 15-inch laptop sleeve.", rarity: "Common" }, { id: 2, sku: "BA3241-200", name: "RPM Iguana Camo", year: 2014, colorway: "Iguana/Black", status: "Released", description: "Heavyweight textured polyester with a classic woodland camo pattern.", rarity: "Uncommon" }, { id: 3, sku: "BA3241-010", name: "RPM Triple Black", year: 2018, colorway: "Black/Black/Black", status: "Released", description: "Water-resistant coating with blacked-out branding for a stealth look.", rarity: "Common" }, { id: 4, sku: "BA3241-601", name: "RPM Solar Red", year: 2015, colorway: "Solar Red/White", status: "Discontinued", description: "A vibrant release from the mid-2010s era of Nike SB design.", rarity: "Rare" }, { id: 5, sku: "BA5971-010", name: "RPM Skate Backpack 2.0", year: 2021, colorway: "Black/White", status: "Active", description: "The updated silhouette with improved shoulder strap ergonomics.", rarity: "Common" }, { id: 6, sku: "BA3241-401", name: "RPM Midnight Navy", year: 2013, colorway: "Navy/Black", status: "Archive", description: "Part of the early RPM catalog, featuring the original zipper pull design.", rarity: "Rare" }, ]; const App = () => { const [searchTerm, setSearchTerm] = useState(''); const [selectedYear, setSelectedYear] = useState('All'); const [viewMode, setViewMode] = useState('grid'); const [selectedItem, setSelectedItem] = useState(null); const years = ['All', ...new Set(INITIAL_DATA.map(item => item.year))].sort((a, b) => b - a); const filteredData = useMemo(() => { return INITIAL_DATA.filter(item => { const matchesSearch = item.name.toLowerCase().includes(searchTerm.toLowerCase()) || item.sku.toLowerCase().includes(searchTerm.toLowerCase()); const matchesYear = selectedYear === 'All' || item.year.toString() === selectedYear; return matchesSearch && matchesYear; }); }, [searchTerm, selectedYear]); return (
Digital Museum & Catalog
{item.sku}
{item.colorway}
| SKU | Model Name | Year | Colorway | Status | |
|---|---|---|---|---|---|
| {item.sku} | {item.name} | {item.year} | {item.colorway} | {item.status} |
Try adjusting your search terms or filters.
RELEASE YEAR
{selectedItem.year}
STATUS
{selectedItem.status}
{selectedItem.description}