+ {/* Top bar */}
+
+
+ ← Back to collection
+
+ {!isEditing && (
+
+
+
+
+
+ )}
+ {isEditing && (
+
+
+
+
+ )}
+
+
+ {/* Hero image */}
+ {isEditing ? (
+
+
+ setForm((f) => ({ ...f, imageFilename: filename }))
+ }
+ />
+
+ ) : (
+
+ {imageUrl ? (
+

+ ) : (
+
+
+
+ )}
+
+ )}
+
+ {/* Header / Name */}
+
+ {isEditing ? (
+ setForm((f) => ({ ...f, name: e.target.value }))}
+ className="w-full text-2xl font-bold text-gray-900 border border-gray-200 rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:border-transparent"
+ placeholder="Item name"
+ />
+ ) : (
+
{item.name}
+ )}
+
+
+ {/* Badges / Specs */}
+ {isEditing ? (
+
+
+
+
+ setForm((f) => ({
+ ...f,
+ weightGrams: e.target.value,
+ }))
+ }
+ className="w-full py-2 px-3 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-400 focus:border-transparent"
+ placeholder="0"
+ />
+
+
+
+
+ setForm((f) => ({
+ ...f,
+ priceDollars: e.target.value,
+ }))
+ }
+ className="w-full py-2 px-3 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-400 focus:border-transparent"
+ placeholder="0.00"
+ />
+
+
+
+
+ setForm((f) => ({
+ ...f,
+ quantity: Math.max(1, Number(e.target.value)),
+ }))
+ }
+ className="w-full py-2 px-3 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-400 focus:border-transparent"
+ />
+
+
+
+ setForm((f) => ({ ...f, categoryId: id }))}
+ />
+
+
+ ) : (
+
+ {item.weightGrams != null && (
+
+ {weight(item.weightGrams)}
+
+ )}
+ {item.priceCents != null && (
+
+ {price(item.priceCents)}
+
+ )}
+
+
+ {item.categoryName}
+
+ {item.quantity > 1 && (
+
+ Qty: {item.quantity}
+
+ )}
+
+ )}
+
+ {/* Notes */}
+ {isEditing ? (
+
+
+
+ ) : (
+ item.notes && (
+
+
+ Notes
+
+
+ {item.notes}
+
+
+ )
+ )}
+
+ {/* Product URL */}
+ {isEditing ? (
+
+
+
+ setForm((f) => ({
+ ...f,
+ productUrl: e.target.value,
+ }))
+ }
+ className="w-full py-2 px-3 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-400 focus:border-transparent"
+ placeholder="https://..."
+ />
+
+ ) : (
+ item.productUrl && (
+
+
+
+ )
+ )}
+
+ {/* Metadata */}
+ {!isEditing && (
+
+
+
+ Added{" "}
+ {new Date(item.createdAt).toLocaleDateString(undefined, {
+ year: "numeric",
+ month: "short",
+ day: "numeric",
+ })}
+
+
+ Updated{" "}
+ {new Date(item.updatedAt).toLocaleDateString(undefined, {
+ year: "numeric",
+ month: "short",
+ day: "numeric",
+ })}
+
+
+
+ )}
+
+ );
+}