import { useState, useEffect } from "react"; import { Navigation } from "./components/Navigation"; import { HeroSection } from "./components/HeroSection"; import { ClientLogos } from "./components/ClientLogos"; import { ServicesSection } from "./components/ServicesSection"; import { WhyChooseWDI } from "./components/WhyChooseWDI"; import { HorizontalTagScroller } from "./components/HorizontalTagScroller"; import { CaseStudyHighlight } from "./components/CaseStudyHighlight"; import { InlineCTA } from "./components/InlineCTA"; import { ProcessSection } from "./components/ProcessSection"; import { CarouselTestimonials } from "./components/CarouselTestimonials"; import { ResourceCards } from "./components/ResourceCards"; import { SplitCallToAction } from "./components/SplitCallToAction"; import { Footer } from "./components/Footer"; import { Button } from "./components/ui/button"; // Main Category Pages import { Services } from "./pages/Services"; import { Solutions } from "./pages/Solutions"; import { Industries } from "./pages/Industries"; import { Resources } from "./pages/Resources"; import { Company } from "./pages/Company"; import { ContactMain } from "./pages/ContactMain"; import { WebCloudServices } from "./pages/WebCloudServices"; import { SoftwareEngineering } from "./pages/SoftwareEngineering"; import { DesignExperience } from "./pages/DesignExperience"; import { ArtificialIntelligenceServices } from "./pages/ArtificialIntelligenceServices"; import { MachineLearning } from "./pages/MachineLearning"; // Service Pages import { MobileAppDevelopment } from "./pages/MobileAppDevelopment"; import { IOSAppDevelopment } from "./pages/iOSAppDevelopment"; import { AndroidAppDevelopment } from "./pages/AndroidAppDevelopment"; import { CrossPlatformAppDevelopment } from "./pages/CrossPlatformAppDevelopment"; import { NativeAppDevelopment } from "./pages/NativeAppDevelopment"; import { PWADevelopment } from "./pages/PWADevelopment"; import { WearableDeviceDevelopment } from "./pages/WearableDeviceDevelopment"; import { CustomWebAppDevelopment } from "./pages/CustomWebAppDevelopment"; import { SaaSProductEngineering } from "./pages/SaaSProductEngineering"; import { EcommercePlatforms } from "./pages/EcommercePlatforms"; import { AdminPanelsDashboards } from "./pages/AdminPanelsDashboards"; import { APIBackendDevelopment } from "./pages/APIBackendDevelopment"; import { EnterpriseSoftwareSolutions } from "./pages/EnterpriseSoftwareSolutions"; import { SystemArchitectureDevOps } from "./pages/SystemArchitectureDevOps"; import { ThirdPartyIntegrations } from "./pages/ThirdPartyIntegrations"; import { ProductModernization } from "./pages/ProductModernization"; import { UIUXDesign } from "./pages/UIUXDesign"; import { ClickablePrototypes } from "./pages/ClickablePrototypes"; import { DesignThinkingWorkshops } from "./pages/DesignThinkingWorkshops"; import { UserResearchTesting } from "./pages/UserResearchTesting"; import { AIStrategyConsulting } from "./pages/AIStrategyConsulting"; import { AIAutomationWorkflows } from "./pages/AIAutomationWorkflows"; import { AIIntegrationDigitalProducts } from "./pages/AIIntegrationDigitalProducts"; import { GenAIIntegrationDigitalProducts } from "./pages/GenAIIntegrationDigitalProducts"; import { AIChatbotsVirtualAssistants } from "./pages/AIChatbotsVirtualAssistants"; import { AIModelDeploymentMLOps } from "./pages/AIModelDeploymentMLOps"; import { CustomMLModelDevelopment } from "./pages/CustomMLModelDevelopment"; import { PredictiveAnalyticsForecasting } from "./pages/PredictiveAnalyticsForecasting"; import { ComputerVisionApplications } from "./pages/ComputerVisionApplications"; import { NLPTextAnalytics } from "./pages/NLPTextAnalytics"; import { RecommendationEngines } from "./pages/RecommendationEngines"; // Solution Pages import { DigitalProductDevelopment } from "./pages/DigitalProductDevelopment"; import { MVPStartupLaunchPackages } from "./pages/MVPStartupLaunchPackages"; import { LegacySystemRebuilds } from "./pages/LegacySystemRebuilds"; import { DedicatedOffshoreODC } from "./pages/DedicatedOffshoreODC"; import { BusinessProcessAutomation } from "./pages/BusinessProcessAutomation"; import { ComplianceReadySystems } from "./pages/ComplianceReadySystems"; // Industry Pages - Financial Services import { FinTechBankingApps } from "./pages/FinTechBankingApps"; import { WealthTechPlatforms } from "./pages/WealthTechPlatforms"; import { RealEstateTech } from "./pages/RealEstateTech"; // Industry Pages - Healthcare & Wellness import { HealthTechApplications } from "./pages/HealthTechApplications"; import { MedicalComplianceSolutions } from "./pages/MedicalComplianceSolutions"; import { FitnessWellnessPlatforms } from "./pages/FitnessWellnessPlatforms"; // Industry Pages - Learning & Education import { EdTechPlatforms } from "./pages/EdTechPlatforms"; import { VirtualClassroomsLMS } from "./pages/VirtualClassroomsLMS"; import { MicrolearningApps } from "./pages/MicrolearningApps"; // Industry Pages - Commerce & Consumer import { EcommerceMarketplaces } from "./pages/EcommerceMarketplaces"; import { FoodOrderingDelivery } from "./pages/FoodOrderingDelivery"; import { TravelBookingSystems } from "./pages/TravelBookingSystems"; import { EventTicketingSolutions } from "./pages/EventTicketingSolutions"; // Industry Pages - Media & Community import { OTTStreamingApps } from "./pages/OTTStreamingApps"; import { SocialPlatformsNetworks } from "./pages/SocialPlatformsNetworks"; import { SportsFanEngagement } from "./pages/SportsFanEngagement"; // Industry Pages - Mobility & Logistics import { TransportationApps } from "./pages/TransportationApps"; import { OnDemandServices } from "./pages/OnDemandServices"; import { SupplyChainFleetManagement } from "./pages/SupplyChainFleetManagement"; // Industry Pages - Industrial & Emerging Tech import { ManufacturingAutomation } from "./pages/ManufacturingAutomation"; import { AgriTechPlatforms } from "./pages/AgriTechPlatforms"; import { OilGasMonitoringSystems } from "./pages/OilGasMonitoringSystems"; // Company Pages import { AboutWDI } from "./pages/AboutWDI"; import { OurHistory } from "./pages/OurHistory"; import { LeadershipTeam } from "./pages/LeadershipTeam"; import { AwardsCertifications } from "./pages/AwardsCertifications"; import { Careers } from "./pages/Careers"; import { CultureValues } from "./pages/CultureValues"; import { PressMedia } from "./pages/PressMedia"; // Hire Talent Pages import { HireTalent } from "./pages/HireTalent"; import { HireMobileAppDevelopers } from "./pages/HireMobileAppDevelopers"; import { HireFullStackDevelopers } from "./pages/HireFullStackDevelopers"; import { HireFrontendDevelopers } from "./pages/HireFrontendDevelopers"; import { HireBackendDevelopers } from "./pages/HireBackendDevelopers"; import { HireUIUXDesigners } from "./pages/HireUIUXDesigners"; import { HireQAEngineers } from "./pages/HireQAEngineers"; import { DedicatedDevelopmentTeams } from "./pages/DedicatedDevelopmentTeams"; import { EngagementModels } from "./pages/EngagementModels"; import { TeamAugmentationServices } from "./pages/TeamAugmentationServices"; // Resource Pages import { Blog } from "./pages/Blog"; import { CaseStudies } from "./pages/CaseStudies"; import { ClientTestimonials } from "./pages/ClientTestimonials"; import { WhitepapersInsights } from "./pages/WhitepapersInsights"; import { FAQs } from "./pages/FAQs"; // Contact Pages import { Contact } from "./pages/Contact"; import { RequestProposal } from "./pages/RequestProposal"; import { ScheduleDiscoveryCall } from "./pages/ScheduleDiscoveryCall"; import { OfficeLocations } from "./pages/OfficeLocations"; import { ClientSupport } from "./pages/ClientSupport"; import { SendYourCV } from "./pages/SendYourCV"; import { StartAProject } from "./pages/StartAProject"; import { ThankYou } from "./pages/ThankYou"; import { RegroupProject } from "./pages/RegroupProject"; import { SeezunProject } from "./pages/SeezunProject"; import { WokaProject } from "./pages/WokaProject"; import { TanamiProject } from "./pages/TanamiProject"; import { TradersCircuitProject } from "./pages/TradersCircuitProject"; import { GoodTimesProject } from "./pages/GoodTimesProject"; import { ProspertyProject } from "./pages/ProspertyProject"; import { RanOutOfProject } from "./pages/RanOutOfProject"; import { ArticleDetail } from "./pages/ArticleDetail"; import { FutureOfAIHealthcare } from "./pages/FutureOfAIHealthcare"; import { ComplianceReadyFintech } from "./pages/ComplianceReadyFintech"; import { LegacySystemScaling } from "./pages/LegacySystemScaling"; import { AutomationReshapingBusiness } from "./pages/AutomationReshapingBusiness"; import { UXReviewPresentations } from "./pages/UXReviewPresentations"; import { MigratingToLinear101 } from "./pages/MigratingToLinear101"; import { BuildingYourAPIStack } from "./pages/BuildingYourAPIStack"; import { CookieConsent } from "./components/CookieConsent"; import { Helmet } from "react-helmet-async"; // Create a global navigation context let setCurrentPath: ((path: string) => void) | null = null; // Smooth scroll to top function const scrollToTop = () => { const scrollStep = -window.scrollY / (300 / 15); // Duration in ms / frame rate const scrollInterval = () => { if (window.scrollY !== 0) { window.scrollBy(0, scrollStep); window.requestAnimationFrame(scrollInterval); } }; window.requestAnimationFrame(scrollInterval); }; export const navigateTo = (path: string) => { if (setCurrentPath) { // First update the URL and path window.history.pushState({}, "", path); setCurrentPath(path); } }; // Simple routing logic with better state management const useRouter = () => { const [currentPath, setCurrentPathState] = useState( window.location.pathname, ); useEffect(() => { // Set the global navigation function setCurrentPath = setCurrentPathState; const handlePopState = () => { setCurrentPathState(window.location.pathname); }; window.addEventListener("popstate", handlePopState); return () => { window.removeEventListener("popstate", handlePopState); setCurrentPath = null; }; }, []); // Scroll to top whenever the path changes - but only after a delay to ensure rendering useEffect(() => { // Use a timeout to ensure the new page has rendered before scrolling const scrollTimeout = setTimeout(() => { scrollToTop(); }, 100); return () => clearTimeout(scrollTimeout); }, [currentPath]); return { currentPath }; }; // Placeholder component for pages that don't exist yet const PlaceholderPage = ({ title = "Coming Soon", }: { title?: string; }) => (
This page is currently under development. Please check back soon!