/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/pages/Home/index.jsx
import TrastedPartners from 'components/Sections/TrastedPartners';
import OurProducts from 'components/Sections/OurProducts/';
import Feauters from 'components/Sections/Features';
import UseCases from '../../components/Sections/UseCases/index';
import Reviews from 'components/Sections/Reviews';
import AboutUsSection from 'components/Sections/AboutUs';
import ApiIntegraion from './ApiIntegration';
import GetStarted from 'components/Sections/GetStarted';
import Locations from './Locations';
import ProxyManagement from 'components/Sections/ProxyManagement';
import Hero from './Hero';
import { useSelector } from 'react-redux';
import {
    selectHomepagePartners,
    selectHomepageProducts,
    selectHomepageFeatures,
    selectHomepageDashboard,
    selectHomepageReviews,
    selectHomepageLocations,
    selectHomepageAboutUs,
    selectHomepageCta,
    selectHomepageUsecases,
    selectHomepageIsLoading,
} from 'store/slices/HomepageSlice';
import { selectFeatures } from 'store/slices/FeaturesSlice';
import { Helmet } from 'react-helmet';
import { selectBreadcrumbList } from 'store/slices/GeneralSlice';
import { useEffect, useState } from 'react';
import { useImageLoaded } from 'hooks/useImageLoaded';


const Home = () => {
    const isLoadedImages = useImageLoaded();
    const [isLoading, setIsLoading] = useState(true);

    const { tag, title, product_card } = useSelector(selectHomepageProducts);
    const BreadcrumbList = useSelector(selectBreadcrumbList);
    const partners = useSelector(selectHomepagePartners);
    const featuresSideText = useSelector(selectHomepageFeatures);
    const dashboard = useSelector(selectHomepageDashboard);
    const useCases = useSelector(selectHomepageUsecases);
    const reviews = useSelector(selectHomepageReviews);
    const locationsText = useSelector(selectHomepageLocations);
    const aboutUs = useSelector(selectHomepageAboutUs);
    const cta = useSelector(selectHomepageCta);
    const features = useSelector(selectFeatures);

    const homepageIsLoading = useSelector(selectHomepageIsLoading);


    useEffect(() => {
        if (isLoadedImages && !homepageIsLoading) {
            setIsLoading(false)
        }
    }, [isLoadedImages, homepageIsLoading]);

    return (
        <>
            <Helmet
                script={[
                    {
                        type: "application/ld+json",
                        innerHTML: `{
                "@context": "http://schema.org",
                "@type": "WebSite",
                "name": "Ping Proxies",
                "url": "https://www.pingproxies.com",
                "potentialAction": {
                    "@type": "OrderAction",
                    "target": "https://site-ping-proxies.goodface.com.ua/pricing"
                }
            }`
                    },
                    {
                        type: "application/ld+json",
                        innerHTML: `{
                "@context": "http://schema.org",
                "@type": "Organization",
                "name": "Ping Proxies",
                "url": "https://www.pingproxies.com",
                "logo": "https://www.pingproxies.com/logo.png",
                "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": "4.8",
                    "reviewCount": "84"
                },
                "sameAs": [
                    "https://www.twitter.com/PingProxies"
                ]
            }`
                    },
                    {
                        type: "application/ld+json",
                        innerHTML: `{
                "@context": "http://schema.org",
                "@type": "BreadcrumbList",
                "itemListElement": ${JSON.stringify(BreadcrumbList.map((item, index) => (
                            {
                                "@type": "ListItem",
                                "position": index + 1,
                                "name": item.title,
                                "item": `https://www.pingproxies.com${item.link}`
                            }
                        )))}
            }`
                    }
                ]}
            />
            <Hero isLoading={isLoading} />
            <TrastedPartners data={partners} isLoading={isLoading} />
            <OurProducts title={title} tag={tag} products={product_card} isLoading={isLoading} />
            <Feauters featuresSideText={featuresSideText} features={features} isLoading={isLoading} />
            <ProxyManagement dashboard={dashboard} isLoading={isLoading} />
            <ApiIntegraion isLoading={isLoading} />
            <UseCases useCases={useCases} isLoading={isLoading} />
            <Reviews reviews={reviews} isLoading={isLoading} />
            <Locations locationsText={locationsText} />
            <AboutUsSection aboutUs={aboutUs} isLoading={isLoading} />
            <GetStarted cta={cta} isLoading={isLoading} />
        </>
    );
};

export default Home;