'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { createOrUpdateListingAction } from '@/app/actions' import { ArrowLeft, Save } from 'lucide-react' import { Link } from '@/i18n/routing' interface Option { value: string label: string } interface FormProps { listing: any | null categories: Option[] neighborhoods: Option[] } export default function ListingForm({ listing, categories, neighborhoods }: FormProps) { const router = useRouter() const [activeTab, setActiveTab] = useState<'tr' | 'en' | 'ru'>('tr') const [loading, setLoading] = useState(false) const [error, setError] = useState('') const [success, setSuccess] = useState(false) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setError('') setSuccess(false) const formData = new FormData(e.currentTarget) if (listing) { formData.append('id', listing.id) } try { const res = await createOrUpdateListingAction(formData) if (res.error) { setError(res.error) } else { setSuccess(true) setTimeout(() => { router.push('/admin/listings') router.refresh() }, 1500) } } catch (err) { setError('İşlem sırasında bir hata oluştu.') } finally { setLoading(false) } } const initialImages = listing?.images || [] const img1 = initialImages[0]?.url || '' const img2 = initialImages[1]?.url || '' return (
{error && (
{error}
)} {success && (
Mekan başarıyla kaydedildi! Yönlendiriliyorsunuz...
)} {/* Language tabs */}
{(['tr', 'en', 'ru'] as const).map((lang) => { const label = lang === 'tr' ? '🇹🇷 Türkçe' : lang === 'en' ? '🇬🇧 English' : '🇷🇺 Русский' const isTabActive = activeTab === lang return ( ) })}
{/* Multilingual input fields */}
{/* TR Tab */} {activeTab === 'tr' && (