"use client"; import { ExamplePills } from "./ExamplePills"; interface SearchCardProps { query: string; region: string; count: number; loading: boolean; onChange: (field: "query" | "region" | "count", value: string | number) => void; onSubmit: () => void; } export function SearchCard({ query, region, count, loading, onChange, onSubmit }: SearchCardProps) { const canSubmit = query.trim().length > 0 && !loading; return (
{/* 3-column grid */}
{/* Suchbegriff */}
onChange("query", e.target.value)} onKeyDown={(e) => { if (e.key === "Enter" && canSubmit) onSubmit(); }} placeholder="z.B. Dachdecker, Solaranlage, Steuerberater…" style={{ width: "100%", background: "#0d0d18", border: "1px solid #1e1e2e", borderRadius: 8, padding: "9px 12px", fontSize: 14, color: "#ffffff", outline: "none", boxSizing: "border-box", transition: "border-color 0.15s", }} onFocus={(e) => { e.currentTarget.style.borderColor = "#3b82f6"; }} onBlur={(e) => { e.currentTarget.style.borderColor = "#1e1e2e"; }} />
{/* Region */}
onChange("region", e.target.value)} onKeyDown={(e) => { if (e.key === "Enter" && canSubmit) onSubmit(); }} placeholder="z.B. Bayern, München, Deutschland" style={{ width: "100%", background: "#0d0d18", border: "1px solid #1e1e2e", borderRadius: 8, padding: "9px 12px", fontSize: 14, color: "#ffffff", outline: "none", boxSizing: "border-box", transition: "border-color 0.15s", }} onFocus={(e) => { e.currentTarget.style.borderColor = "#3b82f6"; }} onBlur={(e) => { e.currentTarget.style.borderColor = "#1e1e2e"; }} />
{/* Anzahl */}
{/* Submit button */} {/* Divider */}
Beispielsuche
{/* Example pills */} { onChange("query", q); onChange("region", r); }} />
); }