diff --git a/src/pages/ch/shop/[kategorie]/[unterkategorie].astro b/src/pages/ch/shop/[kategorie]/[unterkategorie].astro index 07d00cb..7a4a9cc 100644 --- a/src/pages/ch/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/ch/shop/[kategorie]/[unterkategorie].astro @@ -35,11 +35,12 @@ const characterEntries = characters.map((char) => ({ product: alleProdukte.find((p) => p.charakter === char.slug), })); const characterEntriesMitProdukt = characterEntries.filter((e) => e.product); +const characterEntriesFuerStory = characterEntries.filter((e, i) => i === 0 || e.product); // Produkte ohne (bekannte) Charakter-Zuordnung landen als "weitere Modelle" darunter. const zugeordneteSlugs = new Set(characterEntriesMitProdukt.map((e) => e.product!.slug)); const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); -const hatCharaktere = characterEntries.length > 0; +const hatStoryBoxen = characterEntriesFuerStory.length > 0; const hatProduktKarten = characterEntriesMitProdukt.length > 0; const hatWeitere = weitere.length > 0; const komplettLeer = !hatProduktKarten && !hatWeitere; @@ -57,11 +58,11 @@ const komplettLeer = !hatProduktKarten && !hatWeitere; - {hatProduktKarten && ( + {hatStoryBoxen && (
- {characterEntriesMitProdukt.map(({ char }) => ( + {characterEntriesFuerStory.map(({ char }) => (
{char.vorstellung && {char.vorstellung[lang].split("\n")[0]}}

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

diff --git a/src/pages/en/shop/[kategorie]/[unterkategorie].astro b/src/pages/en/shop/[kategorie]/[unterkategorie].astro index 2319148..77c9cae 100644 --- a/src/pages/en/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/en/shop/[kategorie]/[unterkategorie].astro @@ -35,11 +35,12 @@ const characterEntries = characters.map((char) => ({ product: alleProdukte.find((p) => p.charakter === char.slug), })); const characterEntriesMitProdukt = characterEntries.filter((e) => e.product); +const characterEntriesFuerStory = characterEntries.filter((e, i) => i === 0 || e.product); // Produkte ohne (bekannte) Charakter-Zuordnung landen als "weitere Modelle" darunter. const zugeordneteSlugs = new Set(characterEntriesMitProdukt.map((e) => e.product!.slug)); const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); -const hatCharaktere = characterEntries.length > 0; +const hatStoryBoxen = characterEntriesFuerStory.length > 0; const hatProduktKarten = characterEntriesMitProdukt.length > 0; const hatWeitere = weitere.length > 0; const komplettLeer = !hatProduktKarten && !hatWeitere; @@ -57,11 +58,11 @@ const komplettLeer = !hatProduktKarten && !hatWeitere;
- {hatProduktKarten && ( + {hatStoryBoxen && (
- {characterEntriesMitProdukt.map(({ char }) => ( + {characterEntriesFuerStory.map(({ char }) => (
{char.vorstellung && {char.vorstellung[lang].split("\n")[0]}}

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

diff --git a/src/pages/fr/shop/[kategorie]/[unterkategorie].astro b/src/pages/fr/shop/[kategorie]/[unterkategorie].astro index bf4af99..21345bf 100644 --- a/src/pages/fr/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/fr/shop/[kategorie]/[unterkategorie].astro @@ -35,11 +35,12 @@ const characterEntries = characters.map((char) => ({ product: alleProdukte.find((p) => p.charakter === char.slug), })); const characterEntriesMitProdukt = characterEntries.filter((e) => e.product); +const characterEntriesFuerStory = characterEntries.filter((e, i) => i === 0 || e.product); // Produkte ohne (bekannte) Charakter-Zuordnung landen als "weitere Modelle" darunter. const zugeordneteSlugs = new Set(characterEntriesMitProdukt.map((e) => e.product!.slug)); const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); -const hatCharaktere = characterEntries.length > 0; +const hatStoryBoxen = characterEntriesFuerStory.length > 0; const hatProduktKarten = characterEntriesMitProdukt.length > 0; const hatWeitere = weitere.length > 0; const komplettLeer = !hatProduktKarten && !hatWeitere; @@ -57,11 +58,11 @@ const komplettLeer = !hatProduktKarten && !hatWeitere;
- {hatProduktKarten && ( + {hatStoryBoxen && (
- {characterEntriesMitProdukt.map(({ char }) => ( + {characterEntriesFuerStory.map(({ char }) => (
{char.vorstellung && {char.vorstellung[lang].split("\n")[0]}}

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}

diff --git a/src/pages/shop/[kategorie]/[unterkategorie].astro b/src/pages/shop/[kategorie]/[unterkategorie].astro index 8d38b7b..92abf58 100644 --- a/src/pages/shop/[kategorie]/[unterkategorie].astro +++ b/src/pages/shop/[kategorie]/[unterkategorie].astro @@ -36,10 +36,17 @@ const characterEntries = characters.map((char) => ({ })); const characterEntriesMitProdukt = characterEntries.filter((e) => e.product); +// Story-Boxen: der Haupt-Charakter der Familie (der erste im Admin, meist der mit dem +// Banner-Namen) bekommt immer eine Vorstellungsbox, auch bevor ein Produkt für ihn existiert — +// sonst wirkt eine ganz neue Tier-Familie leer. Weitere/zusätzliche Charaktere derselben Familie +// (z.B. Geschwister) bekommen dagegen NUR dann eine eigene Box, wenn ihnen im Admin auch +// wirklich ein eigenes Produkt zugeordnet ist. +const characterEntriesFuerStory = characterEntries.filter((e, i) => i === 0 || e.product); + // Produkte ohne (bekannte) Charakter-Zuordnung landen als "weitere Modelle" darunter. const zugeordneteSlugs = new Set(characterEntriesMitProdukt.map((e) => e.product!.slug)); const weitere = alleProdukte.filter((p) => !zugeordneteSlugs.has(p.slug)); -const hatCharaktere = characterEntries.length > 0; +const hatStoryBoxen = characterEntriesFuerStory.length > 0; const hatProduktKarten = characterEntriesMitProdukt.length > 0; const hatWeitere = weitere.length > 0; // Damit "schon vorbereitet aussieht", auch wenn VanVan hier noch gar keine Produkte/Charaktere @@ -60,15 +67,15 @@ const komplettLeer = !hatProduktKarten && !hatWeitere;
- {hatProduktKarten && ( + {hatStoryBoxen && (
{/* Die persönlichen Charaktergeschichten stehen als eigene, volle Breite Boxen ÜBER der Kartenreihe — getrennt von den "Shop"-Karten darunter, die nur Foto/Preis/Infos zeigen. - Nur Charaktere mit echtem Produkt bekommen hier überhaupt eine Box (kein Charakter ohne - Ware im Shop), damit es keine Vorstellungen "ins Leere" gibt. */} + Der Haupt-Charakter der Familie bekommt immer eine Box, weitere Charaktere nur mit + echtem Produkt (siehe characterEntriesFuerStory oben). */}
- {characterEntriesMitProdukt.map(({ char }) => ( + {characterEntriesFuerStory.map(({ char }) => (
{char.vorstellung && {char.vorstellung[lang].split("\n")[0]}}

{char.vorstellung ? char.vorstellung[lang].split("\n")[1] : ""}