"use client"; import * as React from "react"; import { FormState } from "../types"; import { AlertCircle } from "lucide-react"; interface TimelineStepProps { state: FormState; updateState: (_updates: Partial) => void; } export function TimelineStep({ state, updateState }: TimelineStepProps) { const isMissingAssets = !state.assets.includes("logo") || !state.assets.includes("content_concept"); const isMissingPages = state.selectedPages.length === 0 && state.otherPages.length === 0 && state.otherPagesCount === 0; const toggleDontKnow = (id: string) => { const current = state.dontKnows || []; if (current.includes(id)) { updateState({ dontKnows: current.filter((i) => i !== id) }); } else { updateState({ dontKnows: [...current, id] }); } }; return (

Zeitplan

{[ { id: "asap", label: "So schnell wie möglich", desc: "Priorisierter Start gewünscht.", }, { id: "2-3-months", label: "In 2-3 Monaten", desc: "Normaler Projektvorlauf.", }, { id: "3-6-months", label: "In 3-6 Monaten", desc: "Langfristige Planung.", }, { id: "flexible", label: "Flexibel", desc: "Kein fester Termindruck.", }, ].map((opt) => ( ))}
{state.deadline === "asap" && (

Hinweis: Bei sehr kurzfristigen Deadlines kann ein Express-Zuschlag anfallen, um die Kapazitäten entsprechend zu priorisieren.

)} {(isMissingAssets || isMissingPages) && (

Mögliche Verzögerungen

Für einen reibungslosen Projektstart benötigen wir noch einige Details (z.B. {isMissingAssets ? "Logo/Inhaltskonzept" : ""}{" "} {isMissingAssets && isMissingPages ? "und" : ""}{" "} {isMissingPages ? "Seitenstruktur" : ""}). Ohne diese kann sich der Beginn verzögern.

)}
); }