171 lines
5.7 KiB
TypeScript
171 lines
5.7 KiB
TypeScript
"use client";
|
|
|
|
import type React from "react";
|
|
|
|
import { useState } from "react";
|
|
import { Button } from "@/components/ui/button";
|
|
import { Input } from "@/components/ui/input";
|
|
import { MessageSquare } from "lucide-react";
|
|
import { useLanguage } from "@/contexts/language-context";
|
|
import axios from "axios";
|
|
|
|
export default function Contact() {
|
|
const [formData, setFormData] = useState({
|
|
name: "",
|
|
email: "",
|
|
message: "",
|
|
});
|
|
const { t } = useLanguage();
|
|
|
|
const handleChange = (
|
|
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>
|
|
) => {
|
|
setFormData({
|
|
...formData,
|
|
[e.target.name]: e.target.value,
|
|
});
|
|
};
|
|
|
|
const handleSubmit = async (e: React.FormEvent) => {
|
|
e.preventDefault();
|
|
// Handle form submission
|
|
try {
|
|
const token = "7940057045:AAHRFPvgUCo_7pqpXD6uq4li7-_DYx2J96g"; // Use environment variable
|
|
const chatId = 6134458285;
|
|
|
|
if (!token || !chatId) {
|
|
throw new Error("Telegram token yoki chat ID topilmadi!");
|
|
}
|
|
|
|
const message = `
|
|
📥 Yangi xabar keldi!
|
|
👤 Ism: ${formData.name}
|
|
📧 Email: ${formData.email}
|
|
💬 Xabar: ${formData.message}
|
|
`;
|
|
|
|
await axios.post(`https://api.telegram.org/bot${token}/sendMessage`, {
|
|
chat_id: chatId,
|
|
text: message,
|
|
});
|
|
|
|
alert("✅ Tez orada bog'lanamiz!");
|
|
setFormData({
|
|
name: "",
|
|
email: "",
|
|
message: "",
|
|
});
|
|
} catch (error) {
|
|
console.error("Yuborishda xatolik:", error);
|
|
alert("❌ Yuborishda xatolik yuz berdi!");
|
|
}
|
|
console.log(formData);
|
|
};
|
|
|
|
return (
|
|
<section id="contact" className="py-20 md:py-32 px-4 sm:px-6 lg:px-8">
|
|
<div className="max-w-3xl mx-auto">
|
|
<div className="text-center mb-12">
|
|
<h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">
|
|
{t.contact.title}
|
|
</h2>
|
|
<p className="text-lg text-muted-foreground">{t.contact.subtitle}</p>
|
|
</div>
|
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
|
|
{/* Form */}
|
|
<div className="bg-muted rounded-xl p-8 border border-border">
|
|
<form onSubmit={handleSubmit} className="space-y-4">
|
|
<div>
|
|
<label className="block text-sm font-medium text-foreground mb-2">
|
|
{t.contact.fields.name}
|
|
</label>
|
|
<Input
|
|
type="text"
|
|
name="name"
|
|
value={formData.name}
|
|
onChange={handleChange}
|
|
placeholder={t.contact.fields.name_placeholder}
|
|
className="bg-background border-border"
|
|
required
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<label className="block text-sm font-medium text-foreground mb-2">
|
|
{t.contact.fields.email}
|
|
</label>
|
|
<Input
|
|
type="email"
|
|
name="email"
|
|
value={formData.email}
|
|
onChange={handleChange}
|
|
placeholder={t.contact.fields.email_placeholder}
|
|
className="bg-background border-border"
|
|
required
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<label className="block text-sm font-medium text-foreground mb-2">
|
|
{t.contact.fields.message}
|
|
</label>
|
|
<textarea
|
|
name="message"
|
|
value={formData.message}
|
|
onChange={handleChange}
|
|
placeholder={t.contact.fields.message}
|
|
className="w-full px-3 py-2 bg-background border border-border rounded-lg text-foreground placeholder-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary"
|
|
rows={4}
|
|
required
|
|
/>
|
|
</div>
|
|
|
|
<Button className="w-full bg-primary hover:bg-primary/90">
|
|
{t.contact.fields.send}
|
|
</Button>
|
|
</form>
|
|
</div>
|
|
|
|
{/* Contact Info */}
|
|
<div className="flex flex-col justify-between space-y-6">
|
|
<div className="bg-background rounded-xl p-6 border border-border">
|
|
<div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
|
|
<MessageSquare size={24} className="text-primary" />
|
|
</div>
|
|
<h3 className="font-semibold text-foreground mb-2">
|
|
{t.contact.whatsapp.title}
|
|
</h3>
|
|
<p className="text-muted-foreground mb-4">
|
|
{t.contact.whatsapp.desc}
|
|
</p>
|
|
<a href="https://t.me/Felix_IT_solutions">
|
|
<Button
|
|
variant="outline"
|
|
className="w-full border-primary text-primary hover:bg-primary/90 bg-transparent"
|
|
>
|
|
{t.contact.open}
|
|
</Button>
|
|
</a>
|
|
</div>
|
|
|
|
<div className="bg-background rounded-xl p-6 border border-border">
|
|
<h3 className="font-semibold text-foreground mb-2">
|
|
{t.contact.email.title}
|
|
</h3>
|
|
<p className="text-muted-foreground">{t.contact.email.address}</p>
|
|
</div>
|
|
|
|
<div className="bg-background rounded-xl p-6 border border-border">
|
|
<h3 className="font-semibold text-foreground mb-2">
|
|
{t.contact.response.title}
|
|
</h3>
|
|
<p className="text-muted-foreground">{t.contact.response.desc}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|