import { getTenantByNameDetail } from '@/services/tenant.service' import { CustomTenantDto } from '@/proxy/config/models' import { FaArrowLeft, FaArrowRight, FaDollarSign, FaMoneyBillWave, FaBuilding, FaGlobe, FaEnvelope, FaMap, FaMapPin, FaPhone, FaSearch, FaUser, FaUserPlus, } from 'react-icons/fa' import React, { useState } from 'react' import { useNavigate } from 'react-router-dom' import { useLocalization } from '@/utils/hooks/useLocalization' import { ROUTES_ENUM } from '@/routes/route.constant' interface TenantFormProps { onSubmit: (tenant: CustomTenantDto) => void onBack: () => void } export const TenantForm: React.FC = ({ onSubmit }) => { const [isExisting, setIsExisting] = useState(true) const [formData, setFormData] = useState>({}) const navigate = useNavigate() const { translate } = useLocalization() const handleSubmit = (e: React.FormEvent) => { e.preventDefault() onSubmit({ ...formData, isExisting: isExisting! } as CustomTenantDto) } const handleInputChange = (field: keyof CustomTenantDto, value: string) => { setFormData((prev) => ({ ...prev, [field]: value })) } const getTenantInfo = async () => { if (!formData.name) return try { const tenant = await getTenantByNameDetail(formData.name) setFormData((prev) => ({ ...prev, id: tenant.data.id, name: tenant.data.name, isActive: tenant.data.isActive, organizationName: tenant.data.organizationName, founder: tenant.data.founder, vknTckn: tenant.data.vknTckn, taxOffice: tenant.data.taxOffice, address1: tenant.data.address1, address2: tenant.data.address2, district: tenant.data.district, country: tenant.data.country, city: tenant.data.city, postalCode: tenant.data.postalCode, phoneNumber: tenant.data.phoneNumber, mobileNumber: tenant.data.mobileNumber, faxNumber: tenant.data.faxNumber, email: tenant.data.email, website: tenant.data.website, menuGroup: tenant.data.menuGroup, })) } catch (error) { console.error('Kurum bilgisi alınırken hata:', error) } } return (

{' '} {translate('::Public.payment.customerInfo')}

{isExisting !== null && (
{isExisting ? (
handleInputChange('name', e.target.value)} onKeyDown={async (e) => { if (e.key === 'Enter') { e.preventDefault() await getTenantInfo() } }} className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg sm:rounded-l-lg sm:rounded-r-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all" />
{formData.organizationName && (
{translate('::LoginPanel.Profil')} {formData.founder}
{translate('::Public.payment.customer.company')} {formData.organizationName}
{translate('::Abp.Account.EmailAddress')}: {formData.email}
{translate('::blog.categories.mobile')}: {formData.mobileNumber}
{translate('::App.Address')}:
{formData.address1}
{translate('::Public.payment.customer.country')}: {formData.country}
{translate('::Public.common.city')}: {formData.city}
{translate('::Public.payment.customer.district')}: {formData.district}
{translate('::Public.payment.customer.postalCode')}: {formData.postalCode}
{translate('::Public.contact.taxOffice')}: {formData.taxOffice}
{translate('::Public.contact.taxNumber')}: {formData.vknTckn}
{formData.reference && (
{translate('::Public.payment.customer.reference')}: {formData.reference}
)}
)}
) : (
handleInputChange('organizationName', e.target.value)} className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all" />
handleInputChange('founder', e.target.value)} className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent" />
handleInputChange('phoneNumber', e.target.value)} className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent" />
handleInputChange('email', e.target.value)} className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent" />