From 802873c7fa752013011426bdb82b6aaf64950660 Mon Sep 17 00:00:00 2001 From: Z8MB1E Date: Tue, 25 Aug 2026 12:34:35 -0400 Subject: [PATCH] feat(structures): hero image header on structure detail page When the structure type has an image, render it as a full-bleed cover behind the page header with vertical and horizontal gradient overlays; text shifts to white for contrast. Headers without an image keep the previous plain layout. --- .../logistics/structures/[id]/page.tsx | 47 ++++++++++++++++--- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/src/app/(frontend)/logistics/structures/[id]/page.tsx b/src/app/(frontend)/logistics/structures/[id]/page.tsx index ffcafb1..f4faee2 100644 --- a/src/app/(frontend)/logistics/structures/[id]/page.tsx +++ b/src/app/(frontend)/logistics/structures/[id]/page.tsx @@ -72,6 +72,12 @@ export default async function StructureDetailPage({ params }: StructureDetailPag ? convertLexicalToPlaintext({ data: structureType.description }) : null; + const image = + typeof structureType.image === "object" && structureType.image !== null + ? structureType.image + : null; + const imageUrl = image?.url ?? null; + const totalValue = storedResources.reduce((sum, entry) => { const resource = entry.resource as Resource; if (!resource || typeof resource === "number") return sum; @@ -80,22 +86,49 @@ export default async function StructureDetailPage({ params }: StructureDetailPag return (
-
+
+ {imageUrl ? ( + <> + {structure.name} +
+
+ + ) : null} + Back to Structures -
+
- -

{structure.name}

+ +

+ {structure.name} +

-
+
{structureType.name} ยท {getCategoryLabel(structureType.category)} @@ -116,7 +149,7 @@ export default async function StructureDetailPage({ params }: StructureDetailPag {user && }
-
+
{description &&

{description}

}