import React from 'react'
import dynamic from 'next/dynamic'
import {
    CollectionProductHeaderSkeleton,
    TradeAssuranceSkeleton,
    HelloWelcomeHeaderSkeleton,
    FullWidthBannerSkeleton,
    TripleBannerSkeleton,
    FeaturesSecurityBarSkeleton,
    CategoriesSliderOneSkeleton,
    LightningDealsSkeleton,
    TrendingNowSkeleton,
    ShoppingSecuritySkeleton,
    BestsellerSliderSkeleton,
    DoubleBannerSliderSkeleton,
} from '@/src/components/relation/skeletons/home-data-skeleton'
import GeneralPageSkeleton from '@/components/relation/skeletons/general-page-skeleton'
import HeroBanner from '@/components/relation/components/hero-banner'
import HeroBannerSkeleton from '../components/relation/skeletons/hero-banner-skeleton'
import { ServiceSkeleton } from '../components/relation/skeletons/about-us-service-skeleton'
import CategorySection from '@/components/relation/components/category-section'
import { CategorySectionSkeleton } from '../components/relation/skeletons/category-section-skeleton'
import SupportServices from '@/components/relation/components/support-and-services'
import { SupportServicesSkeleton } from '../components/relation/skeletons/support-service-skeleton'
import DroneCompanies from '@/components/relation/components/best-drone-companies'
import { DroneCompaniesSkeleton } from '../components/relation/skeletons/drone-companies-skeleton'
import Partners from '@/components/relation/components/our-partners'
import PartnersSkeleton from '../components/relation/skeletons/our-partners-skeleton'
import ListSkeleton from '../components/relation/skeletons/list-skeleton'
import DiveAndDiscoverVideo from '@/components/relation/components/dive-and-discover-video'
import DiveAndDiscoverVideoSkeleton from '../components/relation/skeletons/dive-and-discover-video-skeleton'
import ProductGridSkeleton from '../components/relation/skeletons/product-grid-skeleton'
import ProductMediaSliderSkeleton from '../components/relation/skeletons/product-media-slider-skeleton'
import ServiceSolutionsBanner from '../shared-pages/dynamic-pages/services/service-solutions-banner'

export const relationComponentKeys = {
    heroBanner: 'mainheader',
    topBanner: 'top-banner',
    middleBanner: 'middle-banner',
    bottomBanner: 'bottom-banner',
    homeAboutUs: 'home-about-us',
    categories: 'category',
    bestDroneCompanies: 'best-drone-companies',
    ourPartners: 'brands',
    services: 'support-services',
    blogs: 'blogs',
    newArrivals: 'new-arrivals-products',
    trainings: 'trainings',
    productList: 'product-list',
    productListInspection: 'product-list-inspection',
    videos: 'videos',
    popularProducts: 'popular-products',
    industries: 'industries',
    productListLanding: 'product-list-landing',
    gimbalsLanding: 'landing-component',
    gimbalsLandingContents: 'landing-contents',
    gimbalsProducts: 'light-and-shadow-creation-make-it-real',
    molusg300: 'molusg300',
    fiveray: 'product-packages',
    applicationScenarios: 'application-scenarios',
    userDataSecurity: 'user-data-security',
    openDeveloperSystem: 'open-developer-ecosystem',
    comprehensiveAccessories: 'comprehensive-accessories',
    takeOff: 'takeoff-and-landing-on-ships',
    realTime: 'real-time-terrain-follow',
    intelligence: 'enhanced-intelligence-and-efficiency',
    robust: 'robust-video-transmission',
    flightTime: 'flight-time',
    safeFlight: 'safe-and-reliable-flight',
    compatiblePayload: 'compatible-payloads',
    payload: 'multi-payload-multi-scene',
    headerHero: 'header-description',
    subHeader: 'sub-header',
    ServiceSolutionsBanner: 'service-banner',

    accessories: 'dji-matrice-4-accessories',
    djiSeries: 'dji-matrice-4-series-the-age-of-intelligent-flight',
    safeFlightSeries: 'safe-flight-worry-free-operation',
    smartD: 'smart-3d-capture-precision-modeling',
    capture: 'multi-directional-capture-efficiency-multiplied',
    djiHeader: 'dji-header',
    djimatriceCompare: 'dji-matrice-4-e-and-4-t',
    listCard: 'list-card',
    listSubCard: 'list-sub-cards',
    tabs: 'efficient-flight-intelligent-operations',
    videoTabs: 'video-tabs',
    industrials: 'industrials',
    productPackages: 'product-packages',
    airLandSeacards: 'air-land-sea-cards'
}

export const componentMapping = {
    [relationComponentKeys.heroBanner]: dynamic(() => import("@/components/relation/components/mission-hero-section"), { loading: () => <HeroBannerSkeleton /> }),
    [relationComponentKeys.homeAboutUs]: dynamic(() => import("@/components/relation/components/service"), { loading: () => <ServiceSkeleton /> }),
    [relationComponentKeys.categories]: dynamic(() => import("@/components/relation/components/category-section"), { loading: () => <CategorySectionSkeleton /> }),
    [relationComponentKeys.bestDroneCompanies]: dynamic(() => import("@/components/relation/components/best-drone-companies"), { loading: () => <DroneCompaniesSkeleton /> }),
    [relationComponentKeys.ourPartners]: dynamic(() => import("@/components/relation/components/our-partners"), { loading: () => <PartnersSkeleton /> }),
    [relationComponentKeys.services]: dynamic(() => import("@/components/relation/components/support-and-services"), { loading: () => <SupportServicesSkeleton /> }),
    [relationComponentKeys.blogs]: dynamic(() => import("@/components/relation/components/blogs"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.trainings]: dynamic(() => import("@/components/relation/components/training-course"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.productList]: dynamic(() => import("@/components/relation/components/surveying"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.productListInspection]: dynamic(() => import("@/components/relation/components/inspection"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.videos]: dynamic(() => import("@/components/relation/components/dive-and-discover-video"), { loading: () => <DiveAndDiscoverVideoSkeleton /> }),
    [relationComponentKeys.industries]: dynamic(() => import("@/components/relation/components/industries"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.popularProducts]: dynamic(() => import("@/components/relation/components/most-popular-products"), { loading: () => <ListSkeleton /> }),
    [relationComponentKeys.productListLanding]: dynamic(() => import("@/components/relation/components/new-arrivals"), { loading: () => <CollectionProductHeaderSkeleton /> }),
    [relationComponentKeys.gimbalsLanding]: dynamic(() => import("@/components/relation/components/smooth-ai-hero"), { loading: () => <HeroBannerSkeleton /> }),
    [relationComponentKeys.gimbalsProducts]: dynamic(() => import("@/components/relation/components/product-slider"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.gimbalsLandingContents]: dynamic(() => import("@/components/relation/components/hero-listing"), { loading: () => <ProductGridSkeleton /> }),
    [relationComponentKeys.molusg300]: dynamic(() => import("@/components/relation/components/holus-g-300"), { loading: () => <HeroBannerSkeleton /> }),
    // [relationComponentKeys.fiveray]: dynamic(() => import("@/components/relation/components/product-packages"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.applicationScenarios]: dynamic(() => import("@/components/relation/components/application-scenarios"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.userDataSecurity]: dynamic(() => import("@/components/relation/components/user-data-secuiry"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.openDeveloperSystem]: dynamic(() => import("@/components/relation/components/open-developer-ecosystem"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.comprehensiveAccessories]: dynamic(() => import("@/components/relation/components/comprehensive-accessories"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.takeOff]: dynamic(() => import("@/components/relation/components/take-off-section"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.realTime]: dynamic(() => import("@/components/relation/components/real-time-terrain-follow"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.intelligence]: dynamic(() => import("@/components/relation/components/enhanced-intelligence"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.robust]: dynamic(() => import("@/components/relation/components/robust-video-transmission"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.flightTime]: dynamic(() => import("@/components/relation/components/flight-time"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.safeFlight]: dynamic(() => import("@/components/relation/components/safe-reliable-flight"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.compatiblePayload]: dynamic(() => import("@/components/relation/components/compatible-payloads"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.payload]: dynamic(() => import("@/components/relation/components/payload-section"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.headerHero]: dynamic(() => import("@/components/relation/components/matrice-hero"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.subHeader]: dynamic(() => import("@/components/relation/components/drone-production-info"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.accessories]: dynamic(() => import("@/components/relation/components/accessories"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.djiSeries]: dynamic(() => import("@/components/relation/components/matrices-series"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.safeFlightSeries]: dynamic(() => import("@/components/relation/components/free-operaion-card"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.smartD]: dynamic(() => import("@/components/relation/components/smart-3D-capture"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.capture]: dynamic(() => import("@/components/relation/components/multi-directional-capture"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.djiHeader]: dynamic(() => import("@/components/custom-components/sticky-navigation"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.djimatriceCompare]: dynamic(() => import("@/components/relation/components/matrice-specs"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.listCard]: dynamic(() => import("@/components/relation/components/intelligent-card"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.listSubCard]: dynamic(() => import("@/components/relation/components/accessory-cards"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.tabs]: dynamic(() => import("@/components/relation/components/operations-tab"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.videoTabs]: dynamic(() => import("@/components/relation/components/video-tab-section"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.newArrivals]: dynamic(() => import("@/components/relation/components/new-arrivals"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.industrials]: dynamic(() => import("@/components/custom-components/industries/top-content"), { loading: () => <ProductMediaSliderSkeleton /> }),
    [relationComponentKeys.ServiceSolutionsBanner]: dynamic(() => import("@/components/relation/components/survey-banner"), { loading: () => <CategorySectionSkeleton /> }),
    [relationComponentKeys.airLandSeacards]: dynamic(() => import("@/components/relation/components/air-land-banner"), { loading: () => <CategorySectionSkeleton /> }),
    // [relationComponentKeys.productPackages]: dynamic(() => import("@/components/relation/components/product-packages"), { loading: () => <ProductMediaSliderSkeleton /> }),
}