Initial commit with essential code files only

This commit is contained in:
2025-07-18 16:13:09 +02:00
commit 8e9b0ef8a8
33 changed files with 1703 additions and 0 deletions

View File

@@ -0,0 +1,217 @@
import { useState } from "react";
export default function Contact() {
const [formData, setFormData] = useState({
name: "",
email: "",
phone: "",
message: ""
});
const handleChange = (e) => {
setFormData({
...formData,
[e.target.name]: e.target.value
});
};
const handleSubmit = (e) => {
e.preventDefault();
// Here you would typically send the form data to your backend
console.log("Form submitted:", formData);
alert("Dziękujemy za wiadomość! Skontaktujemy się z Państwem wkrótce.");
setFormData({ name: "", email: "", phone: "", message: "" });
};
return (
<section id="kontakt" className="py-20 bg-gray-50">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
{/* Header */}
<div className="text-center mb-16">
<h2 className="text-4xl font-bold text-gray-900 mb-4">
Skontaktuj się z nami
</h2>
<p className="text-xl text-gray-600 max-w-3xl mx-auto">
Masz pytania o nasze usługi? Potrzebujesz wyceny?
Skontaktuj się z nami - chętnie pomożemy!
</p>
</div>
<div className="grid lg:grid-cols-2 gap-16">
{/* Contact Information */}
<div>
<div className="bg-white rounded-2xl shadow-xl p-8 mb-8">
<h3 className="text-2xl font-bold text-gray-900 mb-6">
Nasze Biuro
</h3>
<div className="space-y-6">
<div className="flex items-start space-x-4">
<div className="flex-shrink-0 w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center">
<svg className="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" />
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" />
</svg>
</div>
<div>
<h4 className="font-semibold text-gray-900 mb-1">Adres</h4>
<p className="text-gray-600">
Aleje Wolności 6<br />
II piętro<br />
33-300 Nowy Sącz
</p>
</div>
</div>
<div className="flex items-start space-x-4">
<div className="flex-shrink-0 w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center">
<svg className="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" />
</svg>
</div>
<div>
<h4 className="font-semibold text-gray-900 mb-1">Telefon</h4>
<p className="text-gray-600 space-y-1">
<a href="tel:504066513" className="block hover:text-blue-600 transition-colors">
504 066 513
</a>
<a href="tel:18442022044" className="block hover:text-blue-600 transition-colors">
18 442 02 44
</a>
</p>
</div>
</div>
<div className="flex items-start space-x-4">
<div className="flex-shrink-0 w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center">
<svg className="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
</svg>
</div>
<div>
<h4 className="font-semibold text-gray-900 mb-1">Email</h4>
<a
href="mailto:biuro@wastpol.pl"
className="text-gray-600 hover:text-blue-600 transition-colors"
>
biuro@wastpol.pl
</a>
</div>
</div>
<div className="flex items-start space-x-4">
<div className="flex-shrink-0 w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center">
<svg className="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</div>
<div>
<h4 className="font-semibold text-gray-900 mb-1">Godziny pracy</h4>
<p className="text-gray-600">
Pon - Pt: 8:00 - 16:00<br />
Sob - Nd: Zamknięte
</p>
</div>
</div>
</div>
</div>
{/* Map */}
<div className="bg-white rounded-2xl shadow-xl overflow-hidden">
<img
src="/map.png"
alt="Mapa lokalizacji Wastpol"
className="w-full h-64 object-cover"
/>
</div>
</div>
{/* Contact Form */}
<div className="bg-white rounded-2xl shadow-xl p-8">
<h3 className="text-2xl font-bold text-gray-900 mb-6">
Wyślij wiadomość
</h3>
<form onSubmit={handleSubmit} className="space-y-6">
<div>
<label htmlFor="name" className="block text-sm font-medium text-gray-700 mb-2">
Imię i nazwisko *
</label>
<input
type="text"
id="name"
name="name"
required
value={formData.name}
onChange={handleChange}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors"
placeholder="Wpisz swoje imię i nazwisko"
/>
</div>
<div>
<label htmlFor="email" className="block text-sm font-medium text-gray-700 mb-2">
Email *
</label>
<input
type="email"
id="email"
name="email"
required
value={formData.email}
onChange={handleChange}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors"
placeholder="twoj@email.com"
/>
</div>
<div>
<label htmlFor="phone" className="block text-sm font-medium text-gray-700 mb-2">
Telefon
</label>
<input
type="tel"
id="phone"
name="phone"
value={formData.phone}
onChange={handleChange}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors"
placeholder="123 456 789"
/>
</div>
<div>
<label htmlFor="message" className="block text-sm font-medium text-gray-700 mb-2">
Wiadomość *
</label>
<textarea
id="message"
name="message"
required
rows={6}
value={formData.message}
onChange={handleChange}
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors"
placeholder="Opisz swoje potrzeby lub zadaj pytanie..."
></textarea>
</div>
<button
type="submit"
className="w-full bg-blue-600 hover:bg-blue-700 text-white py-3 px-6 rounded-lg font-semibold transition-all duration-300 transform hover:scale-105"
>
Wyślij wiadomość
</button>
</form>
<div className="mt-6 pt-6 border-t border-gray-200">
<p className="text-sm text-gray-500 text-center">
* Pola wymagane. Twoje dane bezpieczne i nie będą przekazywane osobom trzecim.
</p>
</div>
</div>
</div>
</div>
</section>
);
}