diff --git a/lawfirm-demos/demo-1/app/(root)/ServicesSection.tsx b/lawfirm-demos/demo-1/app/(root)/ServicesSection.tsx index 06d9314..4ce71f4 100644 --- a/lawfirm-demos/demo-1/app/(root)/ServicesSection.tsx +++ b/lawfirm-demos/demo-1/app/(root)/ServicesSection.tsx @@ -2,7 +2,7 @@ import {motion} from 'framer-motion'; import Link from 'next/link'; -import Links from "@/app/Links"; +import Links from "@/data/Links"; const services = [ { diff --git a/lawfirm-demos/demo-1/app/rechtsanwaelte/page.tsx b/lawfirm-demos/demo-1/app/rechtsanwaelte/page.tsx new file mode 100644 index 0000000..82423f1 --- /dev/null +++ b/lawfirm-demos/demo-1/app/rechtsanwaelte/page.tsx @@ -0,0 +1,146 @@ +'use client'; + +import {team} from '@/data/team'; +import {useState} from 'react'; +import Image from 'next/image'; +import {motion, AnimatePresence} from 'framer-motion'; +import SubpageHero from '@/components/SubpageHero'; + +type Lawyer = { + name: string; + image: string; + role?: string; + specialties?: string[]; + biography?: string; + personal?: string[]; + isLawyer: boolean; +}; + +const fadeIn = { + hidden: {opacity: 0, y: 40}, + visible: (i: number) => ({ + opacity: 1, + y: 0, + transition: {delay: i * 0.05, duration: 0.4}, + }), +}; + +export default function AnwaltOverviewPage() { + const lawyers: Lawyer[] = team.filter((person) => person.isLawyer); + const [selected, setSelected] = useState(null); + + return ( + <> + + +
+
+
+ {lawyers.map((lawyer, i) => ( + +
setSelected(lawyer)} + className="group rounded-xl overflow-hidden shadow-md border border-gray-200 hover:shadow-lg transition hover:scale-[1.015] cursor-pointer ring-0 hover:ring-2 hover:ring-red-200 bg-white" + > +
+ {lawyer.name} +
+
+

{lawyer.name}

+

{lawyer.role}

+ {Array.isArray(lawyer.specialties) && lawyer.specialties.length > 0 && ( +
    + {lawyer.specialties.map((s, i) => ( +
  • • {s}
  • + ))} +
+ )} +
+
+
+ ))} +
+
+ + {/* Modal */} + + {selected && ( + setSelected(null)} + > + e.stopPropagation()} + > +
+
+ {selected.name} +
+ +
+

{selected.name}

+

{selected.role}

+ {selected.biography && ( +

{selected.biography}

+ )} + {Array.isArray(selected.specialties) && selected.specialties.length > 0 && ( + <> +

Fachgebiete

+
    + {selected.specialties.map((s, i) => ( +
  • {s}
  • + ))} +
+ + )} + {Array.isArray(selected.personal) && selected.personal.length > 0 && ( + <> +

Zur Person

+
    + {selected.personal.map((p, i) => ( +
  • {p}
  • + ))} +
+ + )} +
+
+ +
+
+ )} +
+
+ + ); +} diff --git a/lawfirm-demos/demo-1/components/Footer.tsx b/lawfirm-demos/demo-1/components/Footer.tsx index df2a412..49e907c 100644 --- a/lawfirm-demos/demo-1/components/Footer.tsx +++ b/lawfirm-demos/demo-1/components/Footer.tsx @@ -1,5 +1,5 @@ import Link from 'next/link'; -import Links from "@/app/Links"; +import Links from "@/data/Links"; export default function Footer() { return ( diff --git a/lawfirm-demos/demo-1/components/Navbar.tsx b/lawfirm-demos/demo-1/components/Navbar.tsx index a7ad88f..3756857 100644 --- a/lawfirm-demos/demo-1/components/Navbar.tsx +++ b/lawfirm-demos/demo-1/components/Navbar.tsx @@ -2,7 +2,7 @@ import {useEffect, useState} from 'react'; import Link from 'next/link'; -import Links from '@/app/Links'; +import Links from '@/data/Links'; import {usePathname} from 'next/navigation'; export default function Navbar() { @@ -35,7 +35,7 @@ export default function Navbar() {
Über uns - Rechtsgebiete + Rechtsanwälte
diff --git a/lawfirm-demos/demo-1/app/Links.ts b/lawfirm-demos/demo-1/data/Links.ts similarity index 86% rename from lawfirm-demos/demo-1/app/Links.ts rename to lawfirm-demos/demo-1/data/Links.ts index 23dc868..0d94c6b 100644 --- a/lawfirm-demos/demo-1/app/Links.ts +++ b/lawfirm-demos/demo-1/data/Links.ts @@ -1,6 +1,7 @@ const Links = { home: '/', lawfirm: 'kanzlei', + lawyers: 'rechtsanwaelte', legalFields: 'rechtsbereiche', about: '/ueber-uns/', imprint: '/impressum/', diff --git a/lawfirm-demos/demo-1/data/team.ts b/lawfirm-demos/demo-1/data/team.ts index 0329bf6..08c083e 100644 --- a/lawfirm-demos/demo-1/data/team.ts +++ b/lawfirm-demos/demo-1/data/team.ts @@ -2,7 +2,8 @@ export const team = [ { name: 'Dr. Max Mustermann', role: "Rechtsanwalt", - image: '/images/lawyers/mustermann.jpg', + image: '/images/team/mustermann.jpg', + isLawyer: true, short: 'Fachanwalt für Arbeitsrecht und Vertragsrecht mit über 20 Jahren Erfahrung.', biography: `RA Dr. Max Mustermann berät Sie umfassend im Arbeits- und Vertragsrecht. Als Fachanwalt steht er für eine rechtssichere Gestaltung und Durchsetzung Ihrer Interessen.`, specialties: [ @@ -22,8 +23,9 @@ export const team = [ }, { name: 'Lisa Künstler', - role: "Rechtsanwalt", - image: '/images/lawyers/kuenstler.jpg', + role: "Rechtsanwältin", + image: '/images/team/kuenstler.jpg', + isLawyer: true, short: 'Fachanwältin für Familienrecht mit Fokus auf einvernehmliche Lösungen.', biography: `RAin Lisa Künstler begleitet Sie empathisch und zielgerichtet in familiären Angelegenheiten. Ihr besonderes Augenmerk liegt auf tragfähigen Vereinbarungen für alle Beteiligten.`, specialties: [ diff --git a/lawfirm-demos/demo-1/public/images/team/kuenstler.jpg b/lawfirm-demos/demo-1/public/images/team/kuenstler.jpg new file mode 100644 index 0000000..4a62bed Binary files /dev/null and b/lawfirm-demos/demo-1/public/images/team/kuenstler.jpg differ diff --git a/lawfirm-demos/demo-1/public/images/team/mustermann.jpg b/lawfirm-demos/demo-1/public/images/team/mustermann.jpg new file mode 100644 index 0000000..4a62bed Binary files /dev/null and b/lawfirm-demos/demo-1/public/images/team/mustermann.jpg differ