diff --git a/src/client/routes/items/$itemId.tsx b/src/client/routes/items/$itemId.tsx
index 08a58a6..3bbb1a6 100644
--- a/src/client/routes/items/$itemId.tsx
+++ b/src/client/routes/items/$itemId.tsx
@@ -315,35 +315,33 @@ function ItemDetail() {
/>
) : (
- <>
-
- {imageUrl ? (
-
+ {imageUrl ? (
+
+ ) : (
+
- >
+
+ )}
+
)}
{/* Header / Name */}
diff --git a/src/db/dev-seed-data.ts b/src/db/dev-seed-data.ts
index b9944b9..76cf638 100644
--- a/src/db/dev-seed-data.ts
+++ b/src/db/dev-seed-data.ts
@@ -370,44 +370,180 @@ export const DEV_GLOBAL_ITEMS = [
export const DEV_TAG_ASSIGNMENTS = [
// Bags — bikepacking/cycling gear
- { globalItemIndex: 0, tagNames: ["saddlebag", "bike-bag", "bikepacking", "cycling"] },
- { globalItemIndex: 1, tagNames: ["handlebar-bag", "bike-bag", "bikepacking", "cycling"] },
- { globalItemIndex: 2, tagNames: ["framebag", "bike-bag", "bikepacking", "cycling"] },
- { globalItemIndex: 3, tagNames: ["handlebar-bag", "bike-bag", "bikepacking", "cycling"] },
- { globalItemIndex: 4, tagNames: ["framebag", "bike-bag", "bikepacking", "cycling"] },
- { globalItemIndex: 5, tagNames: ["top-tube-bag", "bike-bag", "bikepacking", "cycling"] },
+ {
+ globalItemIndex: 0,
+ tagNames: ["saddlebag", "bike-bag", "bikepacking", "cycling"],
+ },
+ {
+ globalItemIndex: 1,
+ tagNames: ["handlebar-bag", "bike-bag", "bikepacking", "cycling"],
+ },
+ {
+ globalItemIndex: 2,
+ tagNames: ["framebag", "bike-bag", "bikepacking", "cycling"],
+ },
+ {
+ globalItemIndex: 3,
+ tagNames: ["handlebar-bag", "bike-bag", "bikepacking", "cycling"],
+ },
+ {
+ globalItemIndex: 4,
+ tagNames: ["framebag", "bike-bag", "bikepacking", "cycling"],
+ },
+ {
+ globalItemIndex: 5,
+ tagNames: ["top-tube-bag", "bike-bag", "bikepacking", "cycling"],
+ },
// Shelter — camping/hiking/bikepacking
- { globalItemIndex: 6, tagNames: ["tent", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 7, tagNames: ["tent", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 8, tagNames: ["tent", "camping", "hiking", "backpacking"] },
- { globalItemIndex: 9, tagNames: ["tent", "camping", "hiking", "backpacking", "climbing", "mountaineering"] },
+ {
+ globalItemIndex: 6,
+ tagNames: ["tent", "camping", "hiking", "bikepacking", "backpacking"],
+ },
+ {
+ globalItemIndex: 7,
+ tagNames: ["tent", "camping", "hiking", "bikepacking", "backpacking"],
+ },
+ {
+ globalItemIndex: 8,
+ tagNames: ["tent", "camping", "hiking", "backpacking"],
+ },
+ {
+ globalItemIndex: 9,
+ tagNames: [
+ "tent",
+ "camping",
+ "hiking",
+ "backpacking",
+ "climbing",
+ "mountaineering",
+ ],
+ },
// Sleep — camping/hiking/bikepacking
- { globalItemIndex: 10, tagNames: ["quilt", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 11, tagNames: ["sleeping-pad", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 12, tagNames: ["sleeping-pad", "camping", "hiking", "backpacking"] },
- { globalItemIndex: 13, tagNames: ["pillow", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 14, tagNames: ["sleeping-bag", "camping", "hiking", "backpacking", "climbing"] },
+ {
+ globalItemIndex: 10,
+ tagNames: ["quilt", "camping", "hiking", "bikepacking", "backpacking"],
+ },
+ {
+ globalItemIndex: 11,
+ tagNames: [
+ "sleeping-pad",
+ "camping",
+ "hiking",
+ "bikepacking",
+ "backpacking",
+ ],
+ },
+ {
+ globalItemIndex: 12,
+ tagNames: ["sleeping-pad", "camping", "hiking", "backpacking"],
+ },
+ {
+ globalItemIndex: 13,
+ tagNames: ["pillow", "camping", "hiking", "bikepacking", "backpacking"],
+ },
+ {
+ globalItemIndex: 14,
+ tagNames: ["sleeping-bag", "camping", "hiking", "backpacking", "climbing"],
+ },
// Cooking — camping/hiking/bikepacking
- { globalItemIndex: 15, tagNames: ["stove", "camping", "hiking", "bikepacking", "backpacking"] },
- { globalItemIndex: 16, tagNames: ["stove", "camping", "hiking", "backpacking"] },
- { globalItemIndex: 17, tagNames: ["cookware", "mug", "camping", "hiking", "bikepacking"] },
- { globalItemIndex: 18, tagNames: ["cookware", "camping", "hiking", "backpacking"] },
- { globalItemIndex: 19, tagNames: ["stove", "camping", "hiking", "backpacking", "climbing"] },
+ {
+ globalItemIndex: 15,
+ tagNames: ["stove", "camping", "hiking", "bikepacking", "backpacking"],
+ },
+ {
+ globalItemIndex: 16,
+ tagNames: ["stove", "camping", "hiking", "backpacking"],
+ },
+ {
+ globalItemIndex: 17,
+ tagNames: ["cookware", "mug", "camping", "hiking", "bikepacking"],
+ },
+ {
+ globalItemIndex: 18,
+ tagNames: ["cookware", "camping", "hiking", "backpacking"],
+ },
+ {
+ globalItemIndex: 19,
+ tagNames: ["stove", "camping", "hiking", "backpacking", "climbing"],
+ },
// Lighting — general outdoor
- { globalItemIndex: 20, tagNames: ["headlamp", "camping", "hiking", "climbing", "backpacking", "running", "trail-running"] },
- { globalItemIndex: 21, tagNames: ["bike-light", "bikepacking", "cycling", "road-cycling", "gravel"] },
- { globalItemIndex: 22, tagNames: ["headlamp", "camping", "hiking", "climbing", "backpacking"] },
+ {
+ globalItemIndex: 20,
+ tagNames: [
+ "headlamp",
+ "camping",
+ "hiking",
+ "climbing",
+ "backpacking",
+ "running",
+ "trail-running",
+ ],
+ },
+ {
+ globalItemIndex: 21,
+ tagNames: [
+ "bike-light",
+ "bikepacking",
+ "cycling",
+ "road-cycling",
+ "gravel",
+ ],
+ },
+ {
+ globalItemIndex: 22,
+ tagNames: ["headlamp", "camping", "hiking", "climbing", "backpacking"],
+ },
// Water — hiking/camping/bikepacking
- { globalItemIndex: 29, tagNames: ["water-filter", "hiking", "camping", "bikepacking", "backpacking"] },
- { globalItemIndex: 30, tagNames: ["water-filter", "hiking", "camping", "backpacking"] },
- { globalItemIndex: 31, tagNames: ["water-bottle", "hiking", "camping", "cycling", "running"] },
+ {
+ globalItemIndex: 29,
+ tagNames: [
+ "water-filter",
+ "hiking",
+ "camping",
+ "bikepacking",
+ "backpacking",
+ ],
+ },
+ {
+ globalItemIndex: 30,
+ tagNames: ["water-filter", "hiking", "camping", "backpacking"],
+ },
+ {
+ globalItemIndex: 31,
+ tagNames: ["water-bottle", "hiking", "camping", "cycling", "running"],
+ },
// Tools — bikepacking/cycling
- { globalItemIndex: 32, tagNames: ["multi-tool", "repair-kit", "bikepacking", "cycling"] },
+ {
+ globalItemIndex: 32,
+ tagNames: ["multi-tool", "repair-kit", "bikepacking", "cycling"],
+ },
// Clothing — general outdoor
- { globalItemIndex: 33, tagNames: ["rain-jacket", "hiking", "camping", "bikepacking", "climbing", "running"] },
+ {
+ globalItemIndex: 33,
+ tagNames: [
+ "rain-jacket",
+ "hiking",
+ "camping",
+ "bikepacking",
+ "climbing",
+ "running",
+ ],
+ },
// Electronics — bikepacking/cycling
- { globalItemIndex: 34, tagNames: ["bike-computer", "gps", "bikepacking", "cycling", "gravel"] },
- { globalItemIndex: 35, tagNames: ["handlebar-bag", "bike-bag", "dry-bag", "bikepacking", "cycling"] },
+ {
+ globalItemIndex: 34,
+ tagNames: ["bike-computer", "gps", "bikepacking", "cycling", "gravel"],
+ },
+ {
+ globalItemIndex: 35,
+ tagNames: [
+ "handlebar-bag",
+ "bike-bag",
+ "dry-bag",
+ "bikepacking",
+ "cycling",
+ ],
+ },
] as const;
// ── Category name mapping (for FK lookups by category name) ────────