import React, { useEffect, useState } from 'react' import { FaCode, FaGlobe, FaServer, FaUsers, FaShieldAlt, FaCog, FaCheckCircle, } from 'react-icons/fa' import { Link } from 'react-router-dom' import { useLocalization } from '@/utils/hooks/useLocalization' import { ROUTES_ENUM } from '@/routes/route.constant' import { Helmet } from 'react-helmet' import { ServiceDto } from '@/proxy/services/models' import { getServices } from '@/services/service.service' import navigationIcon from '@/configs/navigation-icon.config' const Services: React.FC = () => { const { translate } = useLocalization() const [services, setServices] = useState([]) // const services: ServiceDto[] = [ // { // icon: , // title: translate('::Public.services.software.title'), // description: translate('::Public.services.software.desc'), // type: 'service', // features: [ // translate('::Public.services.software.features.analysis'), // translate('::Public.services.software.features.design'), // translate('::Public.services.software.features.development'), // translate('::Public.services.software.features.testing'), // translate('::Public.services.software.features.maintenance'), // ], // }, // { // icon: , // title: translate('::Public.services.web.title'), // description: translate('::Public.services.web.desc'), // type: 'service', // features: [ // translate('::Public.services.web.features.frontend'), // translate('::Public.services.web.features.backend'), // translate('::Public.services.web.features.api'), // translate('::Public.services.web.features.seo'), // translate('::Public.services.web.features.performance'), // ], // }, // { // icon: , // title: translate('::Public.services.mobile.title'), // description: translate('::Public.services.mobile.desc'), // type: 'service', // features: [ // translate('::Public.services.mobile.features.design'), // translate('::Public.services.mobile.features.native'), // translate('::Public.services.mobile.features.cross'), // translate('::Public.services.mobile.features.push'), // translate('::Public.services.mobile.features.store'), // ], // }, // { // icon: , // title: translate('::Public.services.database.title'), // description: translate('::Public.services.database.desc'), // type: 'service', // features: [ // translate('::Public.services.database.features.design'), // translate('::Public.services.database.features.optimization'), // translate('::Public.services.database.features.migration'), // translate('::Public.services.database.features.backup'), // translate('::Public.services.database.features.recovery'), // ], // }, // { // icon: , // title: translate('::Public.services.integration.title'), // description: translate('::Public.services.integration.desc'), // type: 'service', // features: [ // translate('::Public.services.integration.features.api'), // translate('::Public.services.integration.features.middleware'), // translate('::Public.services.integration.features.legacy'), // translate('::Public.services.integration.features.realtime'), // translate('::Public.services.integration.features.monitoring'), // ], // }, // { // icon: , // title: translate('::Public.services.consulting.title'), // description: translate('::Public.services.consulting.desc'), // type: 'service', // features: [ // translate('::Public.services.consulting.features.tech'), // translate('::Public.services.consulting.features.project'), // translate('::Public.services.consulting.features.digital'), // translate('::Public.services.consulting.features.risk'), // translate('::Public.services.consulting.features.training'), // ], // }, // { // icon: , // Remote Branch Support // title: translate('::Public.services.support.branchRemote.title'), // description: '', // type: 'support', // features: [ // translate('::Public.services.support.branchRemote.features.priority'), // translate('::Public.services.support.branchRemote.features.remote'), // translate('::Public.services.support.branchRemote.features.optimization'), // translate('::Public.services.support.branchRemote.features.maintenance'), // translate('::Public.services.support.branchRemote.features.consulting'), // ], // }, // { // icon: , // Backup Support // title: translate('::Public.services.support.backup.title'), // description: '', // type: 'support', // features: [ // translate('::Public.services.support.backup.features.daily'), // translate('::Public.services.support.backup.features.encrypted'), // translate('::Public.services.support.backup.features.recovery'), // translate('::Public.services.support.backup.features.verification'), // translate('::Public.services.support.backup.features.access'), // ], // }, // { // icon: , // SMS Support // title: translate('::Public.services.support.sms.title'), // description: '', // type: 'support', // features: [ // translate('::Public.services.support.sms.features.packages'), // translate('::Public.services.support.sms.features.bulk'), // translate('::Public.services.support.sms.features.template'), // translate('::Public.services.support.sms.features.reporting'), // translate('::Public.services.support.sms.features.api'), // ], // }, // ] // Botları çek const iconColors = [ 'text-blue-600', 'text-red-600', 'text-green-600', 'text-purple-600', 'text-yellow-600', 'text-indigo-600', ] function getRandomColor() { return iconColors[Math.floor(Math.random() * iconColors.length)] } useEffect(() => { const fetchServices = async () => { try { const result = await getServices() const items = result?.data?.map((service: ServiceDto) => ({ icon: service.icon, title: service.title, description: service.description, type: service.type, features: service.features, })) setServices(items) } catch (error) { console.error('Service listesi alınırken hata oluştu:', error) } } fetchServices() }, []) return (
{/* Hero Section */}

{translate('::Public.services.title')}

{translate('::Public.services.subtitle')}

{/* Services Grid */}
{services .filter((a) => a.type === 'service') .map((service, index) => { const IconComponent = navigationIcon[service.icon || ''] return (
{IconComponent && ( )}

{translate('::' + service.title)}

{translate('::' + service.description)}

    {service.features.map((feature, fIndex) => (
  • {translate('::' + feature)}
  • ))}
) })}
{/* Support Plans */}

{translate('::Public.services.support.title')}

{services .filter((a) => a.type === 'support') .map((plan, index) => { const IconComponent = navigationIcon[plan.icon || ''] return (
{IconComponent && ( )}

{translate('::' + plan.title)}

    {plan.features.map((feature, fIndex) => (
  • {translate('::' + feature)}
  • ))}
{translate('::Public.services.support.contactButton')}
) })}
{/* Call to Action */}

{translate('::Public.services.cta.title')}

{translate('::Public.services.cta.description')}

{translate('::Public.services.cta.contact')}
) } export default Services