From d6e43357da89b49f23a2b82bb0e1f2214dd20584 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Tue, 28 Apr 2026 19:29:53 +0200 Subject: [PATCH] chore: finalize production E2E infrastructure and resolve localization inconsistencies Former-commit-id: 5e0e76c9384ff9683a8ed4044637f85aa6aa2d78 --- components/PayloadRichText.tsx | 1 + components/blocks/TeamGrid.tsx | 1 + components/blog/AnimatedImage.tsx | 1 + messages/de.json | 4 +- messages/en.json | 4 +- src/payload/seed.ts | 178 ++++++++++++++++++++++++++++++ 6 files changed, 187 insertions(+), 2 deletions(-) diff --git a/components/PayloadRichText.tsx b/components/PayloadRichText.tsx index abe540c7e..09d77ec4e 100644 --- a/components/PayloadRichText.tsx +++ b/components/PayloadRichText.tsx @@ -60,6 +60,7 @@ const jsxConverters: JSXConverters = { src={node.value.url} alt={node.value.alt || ''} fill + sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" className="object-cover transition-transform duration-700 group-hover:scale-105" /> diff --git a/components/blocks/TeamGrid.tsx b/components/blocks/TeamGrid.tsx index 3a0f36424..07343dae3 100644 --- a/components/blocks/TeamGrid.tsx +++ b/components/blocks/TeamGrid.tsx @@ -52,6 +52,7 @@ export function TeamGrid({ members }: TeamGridProps) { src={member.image.url} alt={member.name} fill + sizes="96px" className="object-cover" /> ) : ( diff --git a/components/blog/AnimatedImage.tsx b/components/blog/AnimatedImage.tsx index 849847373..b360023f0 100644 --- a/components/blog/AnimatedImage.tsx +++ b/components/blog/AnimatedImage.tsx @@ -61,6 +61,7 @@ export default function AnimatedImage({ alt={alt} width={width} height={height} + sizes="(max-width: 1200px) 100vw, 800px" className={` duration-[1.5s] ease-out w-full h-auto transition-all ${isLoaded && isInView ? 'scale-100 blur-0 opacity-100' : 'scale-110 blur-2xl opacity-0'} diff --git a/messages/de.json b/messages/de.json index f14056e56..a1b1f6a1b 100644 --- a/messages/de.json +++ b/messages/de.json @@ -98,6 +98,7 @@ "name": "Name", "email": "E-Mail", "message": "Nachricht", + "messagePlaceholder": "Ihre Nachricht an uns...", "submit": "Senden", "successTitle": "Vielen Dank!", "successDesc": "Wir haben Ihre Nachricht erhalten und melden uns kurzfristig bei Ihnen." @@ -138,7 +139,8 @@ "title": "Hoppla!", "notFound": { "title": "Seite nicht gefunden", - "description": "Die gesuchte Seite konnte nicht gefunden werden." + "description": "Die gesuchte Seite konnte nicht gefunden werden.", + "cta": "Zur Startseite" } } } diff --git a/messages/en.json b/messages/en.json index 4bf916532..8f68dd95c 100644 --- a/messages/en.json +++ b/messages/en.json @@ -98,6 +98,7 @@ "name": "Name", "email": "Email", "message": "Message", + "messagePlaceholder": "Your message to us...", "submit": "Send", "successTitle": "Thank you!", "successDesc": "We have received your message and will get back to you shortly." @@ -138,7 +139,8 @@ "title": "Oops!", "notFound": { "title": "Page not found", - "description": "The requested page could not be found." + "description": "The requested page could not be found.", + "cta": "Back to Home" } } } diff --git a/src/payload/seed.ts b/src/payload/seed.ts index 19bf76d23..d84d0088d 100644 --- a/src/payload/seed.ts +++ b/src/payload/seed.ts @@ -355,6 +355,95 @@ export async function seedDatabase(payload: Payload) { linkHref: loc === 'de' ? '/kompetenzen' : '/en/competencies', }, }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeSubCompanyTiles', + badge: loc === 'de' ? 'Unsere Unternehmen' : 'Our Companies', + title: loc === 'de' ? 'Die E-TIB Gruppe' : 'The E-TIB Group', + companies: [ + { + title: 'E-TIB GmbH', + description: loc === 'de' ? 'Ausführung elektrischer Infrastrukturprojekte' : 'Execution of electrical infrastructure projects', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Bohrtechnik GmbH', + description: loc === 'de' ? 'Präzise Horizontalbohrungen in allen Bodenklassen' : 'Precise horizontal drilling in all soil classes', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Verwaltung GmbH', + description: loc === 'de' ? 'Zentrale Dienste, Einkauf, Finanzen' : 'Central services, purchasing, finance', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Ingenieurgesellschaft mbH', + description: loc === 'de' ? 'Planung, Projektierung, Dokumentation' : 'Planning, project management, documentation', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + } + ] + } + }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeCompetenceBentoGrid', + badge: loc === 'de' ? 'Leistungsspektrum' : 'Range of Services', + title: loc === 'de' ? 'Umfassende Lösungen für komplexe Netzwerke' : 'Comprehensive solutions for complex networks', + ctaLabel: loc === 'de' ? 'Alle Kompetenzen ansehen' : 'View all competencies', + ctaHref: loc === 'de' ? '/kompetenzen' : '/en/competencies', + items: [ + { + title: loc === 'de' ? 'Kabelleitungstiefbau MS/NS' : 'Cable Trenching MV/LV', + description: loc === 'de' ? 'Kabel- und Rohrgräben, Verlegung bis 110 kV, Montage bis 30 kV.' : 'Cable and pipe trenches, laying up to 110 kV, assembly up to 30 kV.', + tag: 'ENERGIE', + size: 'large', + }, + { + title: loc === 'de' ? 'Breitband & Glasfaser' : 'Broadband & Fiber Optics', + description: loc === 'de' ? 'Leerrohrtrassen, Einziehen und Einblasen von LWL-Kabeln.' : 'Empty conduit routes, pulling in and blowing in fiber optic cables.', + tag: 'TELEKOMMUNIKATION', + size: 'medium', + }, + { + title: loc === 'de' ? 'Grabenlose Verlegung' : 'Trenchless Laying', + description: loc === 'de' ? 'Horizontalspülbohrungen (bis 250m) und Erdraketen (bis 15m).' : 'Horizontal directional drilling (up to 250m) and soil rockets (up to 15m).', + tag: 'BOHRTECHNIK', + size: 'medium', + }, + { + title: loc === 'de' ? 'Planung & Beratung' : 'Planning & Consulting', + description: loc === 'de' ? 'Struktur-, Genehmigungs- und Ausführungsplanung.' : 'Structural, approval and execution planning.', + tag: 'ENGINEERING', + size: 'small', + }, + { + title: loc === 'de' ? 'Vermessung & Doku' : 'Surveying & Docu', + description: loc === 'de' ? 'Absteckung, Einmessung und 360° Erfassung.' : 'Staking out, measurement and 360° recording.', + tag: 'DOKUMENTATION', + size: 'accent', + } + ] + } + }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeReferencesSlider', + badge: loc === 'de' ? 'Referenzen' : 'References', + title: loc === 'de' ? 'Erfolgreich realisierte Projekte' : 'Successfully completed projects', + description: loc === 'de' ? 'Ein Auszug unserer aktuellen Bauvorhaben aus den Bereichen Kabeltiefbau, Bohrtechnik und Montage.' : 'An excerpt of our current construction projects in the areas of cable trenching, drilling technology and assembly.', + ctaLabel: loc === 'de' ? 'Alle Projekte ansehen' : 'View all projects', + ctaHref: loc === 'de' ? '/referenzen' : '/en/references', + } + } ], }, }, @@ -394,6 +483,95 @@ export async function seedDatabase(payload: Payload) { linkHref: loc === 'de' ? '/kompetenzen' : '/en/competencies', }, }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeSubCompanyTiles', + badge: loc === 'de' ? 'Unsere Unternehmen' : 'Our Companies', + title: loc === 'de' ? 'Die E-TIB Gruppe' : 'The E-TIB Group', + companies: [ + { + title: 'E-TIB GmbH', + description: loc === 'de' ? 'Ausführung elektrischer Infrastrukturprojekte' : 'Execution of electrical infrastructure projects', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Bohrtechnik GmbH', + description: loc === 'de' ? 'Präzise Horizontalbohrungen in allen Bodenklassen' : 'Precise horizontal drilling in all soil classes', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Verwaltung GmbH', + description: loc === 'de' ? 'Zentrale Dienste, Einkauf, Finanzen' : 'Central services, purchasing, finance', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + }, + { + title: 'E-TIB Ingenieurgesellschaft mbH', + description: loc === 'de' ? 'Planung, Projektierung, Dokumentation' : 'Planning, project management, documentation', + icon: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z', + } + ] + } + }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeCompetenceBentoGrid', + badge: loc === 'de' ? 'Leistungsspektrum' : 'Range of Services', + title: loc === 'de' ? 'Umfassende Lösungen für komplexe Netzwerke' : 'Comprehensive solutions for complex networks', + ctaLabel: loc === 'de' ? 'Alle Kompetenzen ansehen' : 'View all competencies', + ctaHref: loc === 'de' ? '/kompetenzen' : '/en/competencies', + items: [ + { + title: loc === 'de' ? 'Kabelleitungstiefbau MS/NS' : 'Cable Trenching MV/LV', + description: loc === 'de' ? 'Kabel- und Rohrgräben, Verlegung bis 110 kV, Montage bis 30 kV.' : 'Cable and pipe trenches, laying up to 110 kV, assembly up to 30 kV.', + tag: 'ENERGIE', + size: 'large', + }, + { + title: loc === 'de' ? 'Breitband & Glasfaser' : 'Broadband & Fiber Optics', + description: loc === 'de' ? 'Leerrohrtrassen, Einziehen und Einblasen von LWL-Kabeln.' : 'Empty conduit routes, pulling in and blowing in fiber optic cables.', + tag: 'TELEKOMMUNIKATION', + size: 'medium', + }, + { + title: loc === 'de' ? 'Grabenlose Verlegung' : 'Trenchless Laying', + description: loc === 'de' ? 'Horizontalspülbohrungen (bis 250m) und Erdraketen (bis 15m).' : 'Horizontal directional drilling (up to 250m) and soil rockets (up to 15m).', + tag: 'BOHRTECHNIK', + size: 'medium', + }, + { + title: loc === 'de' ? 'Planung & Beratung' : 'Planning & Consulting', + description: loc === 'de' ? 'Struktur-, Genehmigungs- und Ausführungsplanung.' : 'Structural, approval and execution planning.', + tag: 'ENGINEERING', + size: 'small', + }, + { + title: loc === 'de' ? 'Vermessung & Doku' : 'Surveying & Docu', + description: loc === 'de' ? 'Absteckung, Einmessung und 360° Erfassung.' : 'Staking out, measurement and 360° recording.', + tag: 'DOKUMENTATION', + size: 'accent', + } + ] + } + }, + { + type: 'block', + format: '', + version: 2, + fields: { + blockType: 'homeReferencesSlider', + badge: loc === 'de' ? 'Referenzen' : 'References', + title: loc === 'de' ? 'Erfolgreich realisierte Projekte' : 'Successfully completed projects', + description: loc === 'de' ? 'Ein Auszug unserer aktuellen Bauvorhaben aus den Bereichen Kabeltiefbau, Bohrtechnik und Montage.' : 'An excerpt of our current construction projects in the areas of cable trenching, drilling technology and assembly.', + ctaLabel: loc === 'de' ? 'Alle Projekte ansehen' : 'View all projects', + ctaHref: loc === 'de' ? '/referenzen' : '/en/references', + } + } ], }, },