feat(ui): finalize E-TIB modernization with footer redesign, video optimization, and TS fixes

Former-commit-id: 67ac02c8404cc66893fdf97308574701cca6000c
This commit is contained in:
2026-05-07 10:43:20 +02:00
parent f2fdea96ec
commit 5439df72ea
3712 changed files with 932332 additions and 1867 deletions

View File

@@ -6,6 +6,20 @@ import { motion } from 'framer-motion';
import { useState, useEffect } from 'react';
interface CompetenceBentoGridProps {
badge?: string;
title?: string;
ctaLabel?: string;
ctaHref?: string;
items?: {
title?: string;
description?: string;
tag?: string;
image?: {
url?: string;
alt?: string;
} | any;
size?: 'large' | 'medium' | 'small' | 'accent';
}[];
data?: {
badge?: string;
title?: string;
@@ -24,18 +38,19 @@ interface CompetenceBentoGridProps {
};
}
export function CompetenceBentoGrid({ data }: CompetenceBentoGridProps) {
export function CompetenceBentoGrid(props: CompetenceBentoGridProps) {
const { data } = props;
const [isMounted, setIsMounted] = useState(false);
useEffect(() => {
setIsMounted(true);
}, []);
const badge = data?.badge || 'Leistungsspektrum';
const title = data?.title || 'Umfassende Lösungen für komplexe Netzwerke';
const ctaLabel = data?.ctaLabel || 'Alle Kompetenzen ansehen';
const ctaHref = data?.ctaHref || '/kompetenzen';
const items = data?.items || [];
const badge = props.badge || data?.badge || 'Leistungsspektrum';
const title = props.title || data?.title || 'Umfassende Lösungen für komplexe Netzwerke';
const ctaLabel = props.ctaLabel || data?.ctaLabel || 'Alle Kompetenzen ansehen';
const ctaHref = props.ctaHref || data?.ctaHref || '/kompetenzen';
const items = props.items || data?.items || [];
// Static fallback for SSR
if (!isMounted) {
@@ -77,7 +92,7 @@ export function CompetenceBentoGrid({ data }: CompetenceBentoGridProps) {
const isAccent = item.size === 'accent';
const imgSrc = item.image?.url;
let gridClasses = "rounded-none overflow-hidden relative group ";
let gridClasses = "rounded-2xl overflow-hidden relative group ";
if (isLarge) gridClasses += "md:col-span-2 md:row-span-2";
else if (isMedium) gridClasses += "md:col-span-2 lg:col-span-2";
else if (isAccent) gridClasses += "md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md";