feat(cms): add storage based website content management
This commit is contained in:
parent
7d5689cfa4
commit
12d31f5468
31 changed files with 1347 additions and 158 deletions
55
app/page.tsx
55
app/page.tsx
|
|
@ -1,26 +1,32 @@
|
|||
import Link from "next/link";
|
||||
import ServiceCard from "@/components/ServiceCard";
|
||||
import { getContent } from "@/lib/content/service";
|
||||
import { createContentMetadata } from "./seo";
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
|
||||
export async function generateMetadata() {
|
||||
const content = await getContent("home");
|
||||
return createContentMetadata(content.seo);
|
||||
}
|
||||
|
||||
export default async function HomePage() {
|
||||
const content = await getContent("home");
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<>
|
||||
<section className="hero">
|
||||
<div className="container hero-content">
|
||||
<p className="eyebrow">Funktechnik, Messtechnik, Werkstattservice</p>
|
||||
<h1>Funktechnik Schubert</h1>
|
||||
<p className="lead">Service, Reparatur und Diagnose für Funkgeräte, Messtechnik und Kommunikationstechnik.</p>
|
||||
<p className="hero-copy">Von CB-Funk und Amateurfunk bis zur professionellen Funktechnik: Wir unterstützen bei Fehlersuche, Abgleich, Modulationsproblemen, Frequenzproblemen und technischer Dokumentation.</p>
|
||||
<p className="eyebrow">{content.eyebrow}</p>
|
||||
<h1>{content.title}</h1>
|
||||
<p className="lead">{content.subtitle}</p>
|
||||
<p className="hero-copy">{content.heroText}</p>
|
||||
<div className="hero-badges" aria-label="Technische Schwerpunkte">
|
||||
<span>CB-Funk</span>
|
||||
<span>Amateurfunk</span>
|
||||
<span>Messtechnik</span>
|
||||
<span>Abgleich</span>
|
||||
<span>Diagnose</span>
|
||||
<span>Service Manuals</span>
|
||||
{content.badges.map((badge) => <span key={badge}>{badge}</span>)}
|
||||
</div>
|
||||
<div className="hero-actions">
|
||||
<Link className="button" href="/reparatur">Reparatur anfragen</Link>
|
||||
<Link className="button secondary" href="/leistungen">Leistungen ansehen</Link>
|
||||
<Link className="button" href={content.cta.primary.href}>{content.cta.primary.label}</Link>
|
||||
<Link className="button secondary" href={content.cta.secondary.href}>{content.cta.secondary.label}</Link>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -29,13 +35,11 @@ export default function HomePage() {
|
|||
<div className="container">
|
||||
<div className="section-head">
|
||||
<p className="eyebrow">Leistungsbereiche</p>
|
||||
<h2>Werkstattservice für Funktechnik und Messtechnik</h2>
|
||||
<p className="lead">Von der ersten Fehlerbeschreibung bis zur dokumentierten Prüfung: Funktechnik Schubert verbindet technische Erfahrung, geeignete Messmittel und strukturierte Kommunikation.</p>
|
||||
<h2>{content.cta.text}</h2>
|
||||
<p className="lead">{content.intro}</p>
|
||||
</div>
|
||||
<div className="grid three">
|
||||
<ServiceCard title="Funkgeräte-Service">Sichtprüfung, Funktionsprüfung und technische Beurteilung für CB-Funk, Amateurfunk, Betriebsfunk sowie ältere und moderne Geräte.</ServiceCard>
|
||||
<ServiceCard title="Fehlersuche & Reparatur">Systematische Diagnose bei Empfangsproblemen, Sendeproblemen, PLL-Fehlern, Frequenzabweichungen und Audio-/NF-Störungen.</ServiceCard>
|
||||
<ServiceCard title="Abgleich & Messtechnik">Frequenzabgleich, Hub- und Modulationsprüfung, Sendeleistung, Empfindlichkeit und RF-Messung mit geeigneter Messtechnik.</ServiceCard>
|
||||
{content.features.map((feature) => <ServiceCard key={feature.title} title={feature.title}>{feature.text}</ServiceCard>)}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -43,20 +47,17 @@ export default function HomePage() {
|
|||
<section className="section dark">
|
||||
<div className="container split">
|
||||
<div>
|
||||
<p className="eyebrow">Persönlicher Support</p>
|
||||
<h2>Direkte technische Einschätzung statt anonymer Abwicklung</h2>
|
||||
<p className="lead">Viele Fehlerbilder lassen sich bereits mit einer klaren Beschreibung und den richtigen Gerätedaten eingrenzen. Die Reparaturannahme fragt deshalb die wichtigsten technischen Details strukturiert ab.</p>
|
||||
<p className="eyebrow">{content.promise.eyebrow}</p>
|
||||
<h2>{content.promise.title}</h2>
|
||||
<p className="lead">{content.promise.text}</p>
|
||||
<div className="actions">
|
||||
<Link className="button" href="/reparatur">Reparaturformular öffnen</Link>
|
||||
<Link className="button" href={content.promise.button.href}>{content.promise.button.label}</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card">
|
||||
<h3>Warum Funktechnik Schubert?</h3>
|
||||
<h3>{content.promise.title}</h3>
|
||||
<ul className="list">
|
||||
<li>Technischer Fokus auf Funkgeräte und Kommunikationstechnik</li>
|
||||
<li>Nachvollziehbare Diagnose mit Blick auf Messwerte und Fehlerbild</li>
|
||||
<li>Sauberer Umgang mit Service Manuals, Schaltplänen und Abgleichanleitungen</li>
|
||||
<li>Klare Rückmeldung zu Zustand, Aufwand und sinnvollen nächsten Schritten</li>
|
||||
{content.promise.bullets.map((item) => <li key={item}>{item}</li>)}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue