Posthog + Unternehmensanfrage
This commit is contained in:
210
src/pages/CookieEinstellungen.tsx
Normal file
210
src/pages/CookieEinstellungen.tsx
Normal file
@@ -0,0 +1,210 @@
|
||||
import { useState } from "react";
|
||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Switch } from "@/components/ui/switch";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import Header from "@/components/Header";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
const CookieEinstellungen = () => {
|
||||
const [necessaryCookies, setNecessaryCookies] = useState(true); // Always true, can't be disabled
|
||||
const [analyticsCookies, setAnalyticsCookies] = useState(false);
|
||||
const [marketingCookies, setMarketingCookies] = useState(false);
|
||||
|
||||
const handleSavePreferences = () => {
|
||||
// Save cookie preferences to localStorage
|
||||
localStorage.setItem('cookiePreferences', JSON.stringify({
|
||||
necessary: necessaryCookies,
|
||||
analytics: analyticsCookies,
|
||||
marketing: marketingCookies
|
||||
}));
|
||||
|
||||
// Show success message
|
||||
alert('Ihre Cookie-Einstellungen wurden gespeichert!');
|
||||
};
|
||||
|
||||
const handleAcceptAll = () => {
|
||||
setAnalyticsCookies(true);
|
||||
setMarketingCookies(true);
|
||||
localStorage.setItem('cookiePreferences', JSON.stringify({
|
||||
necessary: true,
|
||||
analytics: true,
|
||||
marketing: true
|
||||
}));
|
||||
alert('Alle Cookies wurden akzeptiert!');
|
||||
};
|
||||
|
||||
const handleRejectAll = () => {
|
||||
setAnalyticsCookies(false);
|
||||
setMarketingCookies(false);
|
||||
localStorage.setItem('cookiePreferences', JSON.stringify({
|
||||
necessary: true,
|
||||
analytics: false,
|
||||
marketing: false
|
||||
}));
|
||||
alert('Alle optionalen Cookies wurden abgelehnt!');
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<Header />
|
||||
|
||||
<div className="container mx-auto px-4 py-16 mt-16">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<h1 className="text-4xl font-bold text-foreground mb-8">Cookie-Einstellungen</h1>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>Was sind Cookies?</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<p className="text-muted-foreground">
|
||||
Cookies sind kleine Textdateien, die auf Ihrem Gerät gespeichert werden, wenn Sie unsere Website besuchen.
|
||||
Sie helfen uns dabei, Ihre Präferenzen zu speichern und die Website für Sie zu verbessern.
|
||||
Wir verwenden verschiedene Arten von Cookies für unterschiedliche Zwecke.
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>Cookie-Kategorien</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-6">
|
||||
{/* Necessary Cookies */}
|
||||
<div className="flex items-center justify-between p-4 border rounded-lg">
|
||||
<div className="flex-1">
|
||||
<h3 className="font-semibold text-lg mb-2">Notwendige Cookies</h3>
|
||||
<p className="text-muted-foreground text-sm">
|
||||
Diese Cookies sind für das Funktionieren der Website unerlässlich. Sie können nicht deaktiviert werden.
|
||||
Sie werden normalerweise nur als Reaktion auf Aktionen gesetzt, die Sie ausführen und die einer Anfrage nach Diensten entsprechen.
|
||||
</p>
|
||||
</div>
|
||||
<Switch checked={necessaryCookies} disabled />
|
||||
</div>
|
||||
|
||||
{/* Analytics Cookies */}
|
||||
<div className="flex items-center justify-between p-4 border rounded-lg">
|
||||
<div className="flex-1">
|
||||
<h3 className="font-semibold text-lg mb-2">Analyse-Cookies</h3>
|
||||
<p className="text-muted-foreground text-sm">
|
||||
Diese Cookies ermöglichen es uns, die Anzahl der Besucher zu zählen und zu verstehen, wie Besucher mit unserer Website interagieren.
|
||||
Alle Informationen, die diese Cookies sammeln, werden aggregiert und sind daher anonym.
|
||||
</p>
|
||||
</div>
|
||||
<Switch
|
||||
checked={analyticsCookies}
|
||||
onCheckedChange={setAnalyticsCookies}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Marketing Cookies */}
|
||||
<div className="flex items-center justify-between p-4 border rounded-lg">
|
||||
<div className="flex-1">
|
||||
<h3 className="font-semibold text-lg mb-2">Marketing-Cookies</h3>
|
||||
<p className="text-muted-foreground text-sm">
|
||||
Diese Cookies werden verwendet, um Besuchern auf Webseiten zu folgen. Die Absicht ist, Anzeigen zu zeigen,
|
||||
die relevant und ansprechend für den einzelnen Benutzer sind und daher wertvoller für Publisher und Drittanbieter sind.
|
||||
</p>
|
||||
</div>
|
||||
<Switch
|
||||
checked={marketingCookies}
|
||||
onCheckedChange={setMarketingCookies}
|
||||
/>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>Detaillierte Cookie-Informationen</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Notwendige Cookies</h3>
|
||||
<div className="space-y-2 text-sm">
|
||||
<div className="flex justify-between items-center p-2 bg-gray-50 rounded">
|
||||
<span className="font-medium">session_id</span>
|
||||
<span className="text-muted-foreground">Speichert Ihre Session-ID</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center p-2 bg-gray-50 rounded">
|
||||
<span className="font-medium">cookie_preferences</span>
|
||||
<span className="text-muted-foreground">Speichert Ihre Cookie-Einstellungen</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Analyse-Cookies</h3>
|
||||
<div className="space-y-2 text-sm">
|
||||
<div className="flex justify-between items-center p-2 bg-gray-50 rounded">
|
||||
<span className="font-medium">_ga</span>
|
||||
<span className="text-muted-foreground">Google Analytics - Unterscheidet Benutzer</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center p-2 bg-gray-50 rounded">
|
||||
<span className="font-medium">_gid</span>
|
||||
<span className="text-muted-foreground">Google Analytics - Unterscheidet Benutzer</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Marketing-Cookies</h3>
|
||||
<div className="space-y-2 text-sm">
|
||||
<div className="flex justify-between items-center p-2 bg-gray-50 rounded">
|
||||
<span className="font-medium">_fbp</span>
|
||||
<span className="text-muted-foreground">Facebook Pixel - Verfolgt Besucher</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>Ihre Rechte</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<p className="text-muted-foreground mb-4">
|
||||
Sie haben das Recht, Ihre Cookie-Einstellungen jederzeit zu ändern. Sie können auch Cookies,
|
||||
die bereits auf Ihrem Gerät gespeichert sind, über Ihren Browser löschen.
|
||||
</p>
|
||||
<div className="space-y-2 text-sm">
|
||||
<p><strong>Chrome:</strong> Einstellungen → Erweitert → Datenschutz und Sicherheit → Cookies und andere Websitedaten</p>
|
||||
<p><strong>Firefox:</strong> Einstellungen → Datenschutz & Sicherheit → Cookies und Website-Daten</p>
|
||||
<p><strong>Safari:</strong> Einstellungen → Datenschutz → Cookies und Website-Daten verwalten</p>
|
||||
<p><strong>Edge:</strong> Einstellungen → Cookies und Websiteberechtigungen → Cookies und gespeicherte Daten</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* Action Buttons */}
|
||||
<div className="flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Button
|
||||
onClick={handleSavePreferences}
|
||||
className="bg-primary hover:bg-primary/90"
|
||||
>
|
||||
Einstellungen speichern
|
||||
</Button>
|
||||
<Button
|
||||
onClick={handleAcceptAll}
|
||||
variant="outline"
|
||||
>
|
||||
Alle akzeptieren
|
||||
</Button>
|
||||
<Button
|
||||
onClick={handleRejectAll}
|
||||
variant="outline"
|
||||
>
|
||||
Alle ablehnen
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default CookieEinstellungen;
|
||||
158
src/pages/Datenschutz.tsx
Normal file
158
src/pages/Datenschutz.tsx
Normal file
@@ -0,0 +1,158 @@
|
||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import Header from "@/components/Header";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
const Datenschutz = () => {
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<Header />
|
||||
|
||||
<div className="container mx-auto px-4 py-16 mt-16">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<h1 className="text-4xl font-bold text-foreground mb-8">Datenschutzerklärung</h1>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>1. Datenschutz auf einen Blick</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Allgemeine Hinweise</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Datenerfassung auf dieser Website</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle" in dieser Datenschutzerklärung entnehmen.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>2. Allgemeine Hinweise und Pflichtinformationen</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Datenschutz</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Hinweis zur verantwortlichen Stelle</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist der Betreiber dieser Website.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Speicherdauer</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>3. Datenerfassung auf dieser Website</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Server-Log-Dateien</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:
|
||||
</p>
|
||||
<ul className="list-disc list-inside text-muted-foreground mt-2 space-y-1">
|
||||
<li>Browsertyp und Browserversion</li>
|
||||
<li>verwendetes Betriebssystem</li>
|
||||
<li>Referrer URL</li>
|
||||
<li>Hostname des zugreifenden Rechners</li>
|
||||
<li>Uhrzeit der Serveranfrage</li>
|
||||
<li>IP-Adresse</li>
|
||||
</ul>
|
||||
<p className="text-muted-foreground mt-2">
|
||||
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Die Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Kontaktformular</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre Angaben aus dem Anfrageformular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>4. Analyse-Tools und Tools von Drittanbietern</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Google Analytics</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Diese Website nutzt Funktionen des Webanalysedienstes Google Analytics. Anbieter ist die Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland.
|
||||
</p>
|
||||
<p className="text-muted-foreground mt-2">
|
||||
Google Analytics verwendet so genannte "Cookies". Das sind Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglichen. Die durch das Cookie erzeugten Informationen über Ihre Benutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>5. Ihre Rechte</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Widerruf Ihrer Einwilligung zur Datenverarbeitung</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Recht auf Datenübertragbarkeit</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch machbar ist.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">SSL- bzw. TLS-Verschlüsselung</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von "http://" auf "https://" wechselt und an dem Schloss-Symbol in Ihrer Browserzeile.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>6. Kontakt</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<p className="text-muted-foreground">
|
||||
Bei Fragen zum Datenschutz können Sie uns über die auf dieser Website verfügbaren Kontaktmöglichkeiten erreichen.
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Datenschutz;
|
||||
49
src/pages/Impressum.tsx
Normal file
49
src/pages/Impressum.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import Header from "@/components/Header";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
const Impressum = () => {
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<Header />
|
||||
|
||||
<div className="container mx-auto px-4 py-16 mt-16">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<h1 className="text-4xl font-bold text-foreground mb-8">Impressum</h1>
|
||||
|
||||
<Card className="mb-8">
|
||||
<CardHeader>
|
||||
<CardTitle>Angaben gemäß § 5 TMG</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Betreiber dieser Website</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Diese Website wird von einem privaten Betreiber geführt.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Haftungsausschluss</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die Inhalte dieser Website dienen der allgemeinen Information. Wir übernehmen keine Gewähr für die Vollständigkeit, Richtigkeit oder Aktualität der bereitgestellten Informationen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold text-lg mb-2">Urheberrecht</h3>
|
||||
<p className="text-muted-foreground">
|
||||
Die Inhalte dieser Website unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Impressum;
|
||||
@@ -3,13 +3,17 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { Textarea } from "@/components/ui/textarea";
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
||||
import { SimpleSelect, SimpleSelectItem } from "@/components/ui/simple-select";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import { Checkbox } from "@/components/ui/checkbox";
|
||||
import { Building2, MapPin, Phone, Mail, Globe, CheckCircle, Users, Award, Clock } from "lucide-react";
|
||||
import Header from "@/components/Header";
|
||||
import { usePostHog } from "@/hooks/usePostHog";
|
||||
import { sendCompanyRegistrationEmail } from "@/lib/emailService";
|
||||
|
||||
const UnternehmenListen = () => {
|
||||
const posthog = usePostHog();
|
||||
|
||||
const [formData, setFormData] = useState({
|
||||
companyName: "",
|
||||
contactPerson: "",
|
||||
@@ -37,6 +41,14 @@ const UnternehmenListen = () => {
|
||||
...prev,
|
||||
[field]: value
|
||||
}));
|
||||
|
||||
// Track form interactions
|
||||
if (field === 'experience') {
|
||||
posthog.capture('experience_selected', {
|
||||
experience_level: value,
|
||||
form_section: 'company_registration'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const handleEnergyTypeChange = (type: string, checked: boolean) => {
|
||||
@@ -51,6 +63,13 @@ const UnternehmenListen = () => {
|
||||
energyTypes: prev.energyTypes.filter(t => t !== type)
|
||||
}));
|
||||
}
|
||||
|
||||
// Track energy type selection
|
||||
posthog.capture('energy_type_selected', {
|
||||
energy_type: type,
|
||||
selected: checked,
|
||||
form_section: 'company_registration'
|
||||
});
|
||||
};
|
||||
|
||||
const handleServiceChange = (service: string, checked: boolean) => {
|
||||
@@ -65,14 +84,63 @@ const UnternehmenListen = () => {
|
||||
services: prev.services.filter(s => s !== service)
|
||||
}));
|
||||
}
|
||||
|
||||
// Track service selection
|
||||
posthog.capture('service_selected', {
|
||||
service: service,
|
||||
selected: checked,
|
||||
form_section: 'company_registration'
|
||||
});
|
||||
};
|
||||
|
||||
const handleSubmit = async (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setIsSubmitting(true);
|
||||
|
||||
// Simulate API call
|
||||
await new Promise(resolve => setTimeout(resolve, 2000));
|
||||
// Track form submission in PostHog
|
||||
posthog.capture('company_registration_started', {
|
||||
company_name: formData.companyName,
|
||||
energy_types: formData.energyTypes,
|
||||
services: formData.services,
|
||||
experience: formData.experience,
|
||||
location: `${formData.zipCode} ${formData.city}`
|
||||
});
|
||||
|
||||
try {
|
||||
// Send email notification via webhook
|
||||
const result = await sendCompanyRegistrationEmail(formData);
|
||||
|
||||
if (result.success) {
|
||||
console.log('✅ E-Mail erfolgreich an Webhook gesendet!');
|
||||
console.log('📧 Daten wurden an knuth.timo@gmail.com weitergeleitet');
|
||||
|
||||
// Track successful submission
|
||||
posthog.capture('company_registration_completed', {
|
||||
company_name: formData.companyName,
|
||||
energy_types: formData.energyTypes,
|
||||
services: formData.services,
|
||||
experience: formData.experience,
|
||||
location: `${formData.zipCode} ${formData.city}`
|
||||
});
|
||||
} else {
|
||||
console.log('⚠️ Webhook-Fehler, aber Daten wurden geloggt:', result.data);
|
||||
|
||||
// Track failed submission
|
||||
posthog.capture('company_registration_failed', {
|
||||
company_name: formData.companyName,
|
||||
error: result.error || 'Webhook failed'
|
||||
});
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ Fehler beim Senden der E-Mail:', error);
|
||||
|
||||
// Track failed submission
|
||||
posthog.capture('company_registration_failed', {
|
||||
company_name: formData.companyName,
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
|
||||
setIsSubmitting(false);
|
||||
setIsSubmitted(true);
|
||||
@@ -266,17 +334,16 @@ const UnternehmenListen = () => {
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="experience">Jahre Erfahrung *</Label>
|
||||
<Select value={formData.experience} onValueChange={(value) => handleInputChange("experience", value)}>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Erfahrung wählen" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="0-2">0-2 Jahre</SelectItem>
|
||||
<SelectItem value="3-5">3-5 Jahre</SelectItem>
|
||||
<SelectItem value="6-10">6-10 Jahre</SelectItem>
|
||||
<SelectItem value="10+">Über 10 Jahre</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<SimpleSelect
|
||||
value={formData.experience}
|
||||
onValueChange={(value) => handleInputChange("experience", value)}
|
||||
placeholder="Erfahrung wählen"
|
||||
>
|
||||
<SimpleSelectItem value="0-2">0-2 Jahre</SimpleSelectItem>
|
||||
<SimpleSelectItem value="3-5">3-5 Jahre</SimpleSelectItem>
|
||||
<SimpleSelectItem value="6-10">6-10 Jahre</SimpleSelectItem>
|
||||
<SimpleSelectItem value="10+">Über 10 Jahre</SimpleSelectItem>
|
||||
</SimpleSelect>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="coverageArea">Einzugsgebiet</Label>
|
||||
|
||||
Reference in New Issue
Block a user