import { useEffect, useState } from "react";
import { CarouselTestimonials } from "./components/CarouselTestimonials";
import { CaseStudyHighlight } from "./components/CaseStudyHighlight";
import { ClientLogos } from "./components/ClientLogos";
import { Footer } from "./components/Footer";
import { HeroSection } from "./components/HeroSection";
import { HorizontalTagScroller } from "./components/HorizontalTagScroller";
import { InlineCTA } from "./components/InlineCTA";
import { Navigation } from "./components/Navigation";
import { ProcessSection } from "./components/ProcessSection";
import { ResourceCards } from "./components/ResourceCards";
import { SplitCallToAction } from "./components/SplitCallToAction";
import { Button } from "./components/ui/button";
import { WhyChooseWDI } from "./components/WhyChooseWDI";
// Main Category Pages
import { ArtificialIntelligenceServices } from "./pages/ArtificialIntelligenceServices";
import { ContactMain } from "./pages/ContactMain";
import { DesignExperience } from "./pages/DesignExperience";
import { Industries } from "./pages/Industries";
import { MachineLearning } from "./pages/MachineLearning";
import { Resources } from "./pages/Resources";
import { Services } from "./pages/Services";
import { SoftwareEngineering } from "./pages/SoftwareEngineering";
import { Solutions } from "./pages/Solutions";
import { WebCloudServices } from "./pages/WebCloudServices";
// Service Pages
import { AdminPanelsDashboards } from "./pages/AdminPanelsDashboards";
import { AIAutomationWorkflows } from "./pages/AIAutomationWorkflows";
import { AIChatbotsVirtualAssistants } from "./pages/AIChatbotsVirtualAssistants";
import { AIIntegrationDigitalProducts } from "./pages/AIIntegrationDigitalProducts";
import { AIModelDeploymentMLOps } from "./pages/AIModelDeploymentMLOps";
import { AIStrategyConsulting } from "./pages/AIStrategyConsulting";
import { AndroidAppDevelopment } from "./pages/AndroidAppDevelopment";
import { APIBackendDevelopment } from "./pages/APIBackendDevelopment";
import { ClickablePrototypes } from "./pages/ClickablePrototypes";
import { ComputerVisionApplications } from "./pages/ComputerVisionApplications";
import { CrossPlatformAppDevelopment } from "./pages/CrossPlatformAppDevelopment";
import { CustomMLModelDevelopment } from "./pages/CustomMLModelDevelopment";
import { CustomWebAppDevelopment } from "./pages/CustomWebAppDevelopment";
import { DesignThinkingWorkshops } from "./pages/DesignThinkingWorkshops";
import { EcommercePlatforms } from "./pages/EcommercePlatforms";
import { EnterpriseSoftwareSolutions } from "./pages/EnterpriseSoftwareSolutions";
import { GenAIIntegrationDigitalProducts } from "./pages/GenAIIntegrationDigitalProducts";
import { IOSAppDevelopment } from "./pages/iOSAppDevelopment";
import { MobileAppDevelopment } from "./pages/MobileAppDevelopment";
import { NativeAppDevelopment } from "./pages/NativeAppDevelopment";
import { NLPTextAnalytics } from "./pages/NLPTextAnalytics";
import { PredictiveAnalyticsForecasting } from "./pages/PredictiveAnalyticsForecasting";
import { ProductModernization } from "./pages/ProductModernization";
import { PWADevelopment } from "./pages/PWADevelopment";
import { RecommendationEngines } from "./pages/RecommendationEngines";
import { SaaSProductEngineering } from "./pages/SaaSProductEngineering";
import { SystemArchitectureDevOps } from "./pages/SystemArchitectureDevOps";
import { ThirdPartyIntegrations } from "./pages/ThirdPartyIntegrations";
import { UIUXDesign } from "./pages/UIUXDesign";
import { UserResearchTesting } from "./pages/UserResearchTesting";
import { WearableDeviceDevelopment } from "./pages/WearableDeviceDevelopment";
// Solution Pages
import { BusinessProcessAutomation } from "./pages/BusinessProcessAutomation";
import { ComplianceReadySystems } from "./pages/ComplianceReadySystems";
import { DedicatedOffshoreODC } from "./pages/DedicatedOffshoreODC";
import { DigitalProductDevelopment } from "./pages/DigitalProductDevelopment";
import { LegacySystemRebuilds } from "./pages/LegacySystemRebuilds";
import { MVPStartupLaunchPackages } from "./pages/MVPStartupLaunchPackages";
// Industry Pages - Financial Services
import { FinTechBankingApps } from "./pages/FinTechBankingApps";
import { RealEstateTech } from "./pages/RealEstateTech";
import { WealthTechPlatforms } from "./pages/WealthTechPlatforms";
// Industry Pages - Healthcare & Wellness
import { FitnessWellnessPlatforms } from "./pages/FitnessWellnessPlatforms";
import { HealthTechApplications } from "./pages/HealthTechApplications";
import { MedicalComplianceSolutions } from "./pages/MedicalComplianceSolutions";
// Industry Pages - Learning & Education
import { EdTechPlatforms } from "./pages/EdTechPlatforms";
import { MicrolearningApps } from "./pages/MicrolearningApps";
import { VirtualClassroomsLMS } from "./pages/VirtualClassroomsLMS";
// Industry Pages - Commerce & Consumer
import { EcommerceMarketplaces } from "./pages/EcommerceMarketplaces";
import { EventTicketingSolutions } from "./pages/EventTicketingSolutions";
import { FoodOrderingDelivery } from "./pages/FoodOrderingDelivery";
import { TravelBookingSystems } from "./pages/TravelBookingSystems";
// Industry Pages - Media & Community
import { OTTStreamingApps } from "./pages/OTTStreamingApps";
import { SocialPlatformsNetworks } from "./pages/SocialPlatformsNetworks";
import { SportsFanEngagement } from "./pages/SportsFanEngagement";
// Industry Pages - Mobility & Logistics
import { OnDemandServices } from "./pages/OnDemandServices";
import { SupplyChainFleetManagement } from "./pages/SupplyChainFleetManagement";
import { TransportationApps } from "./pages/TransportationApps";
// Industry Pages - Industrial & Emerging Tech
import { AgriTechPlatforms } from "./pages/AgriTechPlatforms";
import { ManufacturingAutomation } from "./pages/ManufacturingAutomation";
import { OilGasMonitoringSystems } from "./pages/OilGasMonitoringSystems";
// Company Pages
import { AboutWDI } from "./pages/AboutWDI";
import { AwardsCertifications } from "./pages/AwardsCertifications";
import { Careers } from "./pages/Careers";
import { CultureValues } from "./pages/CultureValues";
import { LeadershipTeam } from "./pages/LeadershipTeam";
import { OurHistory } from "./pages/OurHistory";
import { PressMedia } from "./pages/PressMedia";
// Hire Talent Pages
import { DedicatedDevelopmentTeams } from "./pages/DedicatedDevelopmentTeams";
import { EngagementModels } from "./pages/EngagementModels";
import { HireBackendDevelopers } from "./pages/HireBackendDevelopers";
import { HireFrontendDevelopers } from "./pages/HireFrontendDevelopers";
import { HireFullStackDevelopers } from "./pages/HireFullStackDevelopers";
import { HireMobileAppDevelopers } from "./pages/HireMobileAppDevelopers";
import { HireQAEngineers } from "./pages/HireQAEngineers";
import { HireTalent } from "./pages/HireTalent";
import { HireUIUXDesigners } from "./pages/HireUIUXDesigners";
import { TeamAugmentationServices } from "./pages/TeamAugmentationServices";
// Resource Pages
import { Blog } from "./pages/Blog";
import { CaseStudies } from "./pages/CaseStudies";
import { ClientTestimonials } from "./pages/ClientTestimonials";
import { FAQs } from "./pages/FAQs";
import { WhitepapersInsights } from "./pages/WhitepapersInsights";
// Contact Pages
import { motion } from "framer-motion";
import { ChevronRight } from "lucide-react";
import { Helmet } from "react-helmet-async";
import { CookieConsent } from "./components/CookieConsent";
import { ArticleDetail } from "./pages/ArticleDetail";
import { AutomationReshapingBusiness } from "./pages/AutomationReshapingBusiness";
import { BuildingYourAPIStack } from "./pages/BuildingYourAPIStack";
import { ClientSupport } from "./pages/ClientSupport";
import { ComplianceReadyFintech } from "./pages/ComplianceReadyFintech";
import { Contact } from "./pages/Contact";
import { FutureOfAIHealthcare } from "./pages/FutureOfAIHealthcare";
import { GoodTimesProject } from "./pages/GoodTimesProject";
import { LegacySystemScaling } from "./pages/LegacySystemScaling";
import { MigratingToLinear101 } from "./pages/MigratingToLinear101";
import { OfficeLocations } from "./pages/OfficeLocations";
import { ProspertyProject } from "./pages/ProspertyProject";
import { RanOutOfProject } from "./pages/RanOutOfProject";
import { RegroupProject } from "./pages/RegroupProject";
import { RequestProposal } from "./pages/RequestProposal";
import { ScheduleDiscoveryCall } from "./pages/ScheduleDiscoveryCall";
import { SeezunProject } from "./pages/SeezunProject";
import { SendYourCV } from "./pages/SendYourCV";
import { StartAProject } from "./pages/StartAProject";
import { TanamiProject } from "./pages/TanamiProject";
import { ThankYou } from "./pages/ThankYou";
import { TradersCircuitProject } from "./pages/TradersCircuitProject";
import { UXReviewPresentations } from "./pages/UXReviewPresentations";
import { WokaProject } from "./pages/WokaProject";
import { VIB360Project } from "./pages/VIB360Project";
import { AmbleProject } from "./pages/AmbleProject";
import { AmozProject } from "./pages/AmozProject";
import { SimpliTendProject } from "./pages/SimpliTendProject";
import { CaseStudyComingSoon } from "./pages/CaseStudyComingSoon";
// 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 };
};
const services = [
{
title: "Mobile App Development",
icon: (
This page is currently under development. Please check back soon!
End-to-end solutions for every stage of your product lifecycle.
{service.description}