diff --git a/App.tsx b/App.tsx index 6028699..f7456fb 100644 --- a/App.tsx +++ b/App.tsx @@ -1,845 +1,34 @@ -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"; +// App.tsx 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 { Footer } from "./components/Footer"; 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"; -import { HireiOSAppDevelopers } from "./pages/HireiOSAppDevelopers"; -import { HireAndroidAppDevelopers } from "./pages/HireAndroidAppDevelopers"; -import { HireCrossPlatformDevelopers } from "./pages/HireCrossPlatformDevelopers"; -import { HireNativeAppDevelopers } from "./pages/HireNativeAppDevelopers"; -import { HirePWADevelopers } from "./pages/HirePWADevelopers"; -import { HireWearableAppDevelopers } from "./pages/HireWearableAppDevelopers"; -import { HireCustomWebAppDevelopers } from "./pages/HireCustomWebAppDevelopers"; -import { HireSaaSProductDevelopers } from "./pages/HireSaaSProductDevelopers"; -import { HireEcommercePlatformDevelopers } from "./pages/HireEcommercePlatformDevelopers"; -import { HireAdminPanelDevelopers } from "./pages/HireAdminPanelDevelopers"; -import { HireAPIBackendDevelopers } from "./pages/HireAPIBackendDevelopers"; -import { HireEnterpriseSoftwareDevelopers } from "./pages/HireEnterpriseSoftwareDevelopers"; -import { HireSystemArchitectureDevOpsDevelopers } from "./pages/HireSystemArchitectureDevOpsDevelopers"; -import { HireProductModernizationDevelopers } from "./pages/HireProductModernizationDevelopers"; -import { HireThirdPartyIntegrationsDevelopers } from "./pages/HireThirdPartyIntegrationsDevelopers"; -import { HireClickablePrototypesDevelopers } from "./pages/HireClickablePrototypesDevelopers"; -import { HireDesignThinkingWorkshopsDevelopers } from "./pages/HireDesignThinkingWorkshopsDevelopers"; -import { HireUserResearchTestingDevelopers } from "./pages/HireUserResearchTestingDevelopers"; - - -// Create a global navigation context -let setCurrentPath: ((path: string) => void) | null = null; +import { AppRouter } from "./src/Router"; +import { useLocation } from "react-router-dom"; +import { useEffect } from "react"; // 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); + window.scrollTo({ top: 0, behavior: 'smooth' }); }; -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, - ); +function App() { + const location = useLocation(); + // Scroll to top on route change useEffect(() => { - // Set the global navigation function - setCurrentPath = setCurrentPathState; + scrollToTop(); + }, [location.pathname]); - 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: ( - - ), - description: "Native & cross-platform apps with pixel-perfect UIs and seamless user experiences.", - link: "/services/mobile-app-development" - }, - { - title: "Web Platforms & SaaS", - icon: ( - - ), - description: "Scalable, secure, and SEO-optimized web applications built for performance.", - link: "/web-cloud" - }, - { - title: "AI & ML Solutions", - icon: ( - - ), - description: "Intelligent features powered by cutting-edge algorithms and machine learning.", - link: "/artificial-intelligence" - }, - { - title: "DevOps & Cloud", - icon: ( - - ), - description: "CI/CD pipelines and managed cloud infrastructure for seamless deployment.", - link: "/services/system-architecture-devops" - }, - { - title: "Product Design & UX", - icon: ( - - ), - description: "Human-centered UX with delightful micro-interactions and intuitive interfaces.", - link: "/design-experience" - }, - { - title: "Security & Compliance", - icon: ( - - ), - description: "Pen-testing, auditing, and regulatory alignment for enterprise-grade security.", - link: "/solutions/compliance-ready-systems" - } -]; - -// Placeholder component for pages that don't exist yet -const PlaceholderPage = ({ - title = "Coming Soon", -}: { - title?: string; -}) => ( -
- -
-
-
-

- {title} -

-

- This page is currently under development. Please - check back soon! -

- -
-
-
-
-
-); - -// Homepage component - ENSURED ALL SECTIONS USE DARK BACKGROUNDS -const Homepage = () => ( -
- - {/* Page Title and Meta Description */} - Mobile App Development Services | WDI - iOS & Android App Development - - - {/* Canonical Link */} - - - {/* Open Graph Tags (for Facebook, LinkedIn) */} - - - - - - - {/* Twitter Card Tags */} - - - - - - {/* Social Profiles (using JSON-LD Schema) */} - - - - - {/* Hero Section - Dark background */} -
- -
- - {/* Client Logos - Dark background */} -
- -
- - {/* Services Grid - Dark background */} - {/*
- -
*/} -
-
- -
-

What We Do

-

- End-to-end solutions for every stage of your product lifecycle. -

-
-
- - - {services.map((service, index) => { - const IconComponent = service.icon; - return ( - navigateTo(service.link)} - > -
-
-
- {/* */} - - {service.icon} - -
- -
-

- {service.title} -

-

- {service.description} -

-
- -
- Explore Services - -
-
-
-
- ); - })} -
-
-
- - {/* Why Choose WDI - Dark background */} -
- -
- - {/* Industry Solutions - Dark background */} -
- -
- - {/* Case Studies - Dark background */} -
- -
- - {/* Inline CTA - Dark background */} -
- -
- - {/* Process Steps - Dark background */} -
- -
- - {/* Testimonials - Dark background */} -
- -
- - {/* Resources - Dark background */} -
- -
- - {/* Final CTA - Dark background */} -
- -
- - {/* Footer - Dark background */} -
-
-
-
-); - -export default function App() { - const { currentPath } = useRouter(); - - // Route definitions for cleaner code - const routes = { - // Homepage - "/": Homepage, - "/home": Homepage, - - // MAIN CATEGORY PAGES - ALL NOW FULLY IMPLEMENTED ✅ - "/services": Services, - "/solutions": Solutions, - "/industries": Industries, - "/resources": Resources, - // "/company": Company, - // "/contact": ContactMain, - "/web-cloud": WebCloudServices, - "/software-engineering": SoftwareEngineering, - "/design-experience": DesignExperience, - "/artificial-intelligence": ArtificialIntelligenceServices, - "/machine-learning": MachineLearning, - - // SERVICES - "/services/mobile-app-development": MobileAppDevelopment, - "/services/ios-app-development": IOSAppDevelopment, - "/services/android-app-development": AndroidAppDevelopment, - "/services/cross-platform-app-development": - CrossPlatformAppDevelopment, - "/services/native-app-development": NativeAppDevelopment, - "/services/pwa-development": PWADevelopment, - "/services/wearable-device-development": - WearableDeviceDevelopment, - "/services/custom-web-app-development": - CustomWebAppDevelopment, - "/services/saas-product-engineering": - SaaSProductEngineering, - "/services/ecommerce-platforms": EcommercePlatforms, - "/services/admin-panels-dashboards": AdminPanelsDashboards, - "/services/api-backend-development": APIBackendDevelopment, - "/services/enterprise-software-solutions": - EnterpriseSoftwareSolutions, - "/services/system-architecture-devops": - SystemArchitectureDevOps, - "/services/third-party-integrations": - ThirdPartyIntegrations, - "/services/product-modernization": ProductModernization, - "/services/ui-ux-design": UIUXDesign, - "/services/clickable-prototypes": ClickablePrototypes, - "/services/design-thinking-workshops": - DesignThinkingWorkshops, - "/services/user-research-testing": UserResearchTesting, - "/services/ai-strategy-consulting": AIStrategyConsulting, - "/services/ai-automation-workflows": AIAutomationWorkflows, - "/services/ai-integration-digital-products": - AIIntegrationDigitalProducts, - "/services/gen-ai-integration-digital-products": - GenAIIntegrationDigitalProducts, - "/services/ai-chatbots-virtual-assistants": - AIChatbotsVirtualAssistants, - "/services/ai-model-deployment-mlops": - AIModelDeploymentMLOps, - "/services/custom-ml-model-development": - CustomMLModelDevelopment, - "/services/predictive-analytics-forecasting": - PredictiveAnalyticsForecasting, - "/services/computer-vision-applications": - ComputerVisionApplications, - "/services/nlp-text-analytics": NLPTextAnalytics, - "/services/recommendation-engines": RecommendationEngines, - - // SOLUTIONS - Original routes - "/solutions/digital-product-development": - DigitalProductDevelopment, - "/solutions/mvp-startup-launch-packages": - MVPStartupLaunchPackages, - "/solutions/legacy-system-rebuilds": LegacySystemRebuilds, - "/solutions/dedicated-offshore-odc": DedicatedOffshoreODC, - "/solutions/business-process-automation": - BusinessProcessAutomation, - "/solutions/compliance-ready-systems": - ComplianceReadySystems, - - // SOLUTIONS - New simplified routes - "/digital-product-development": DigitalProductDevelopment, - "/mvp-startup-launch": MVPStartupLaunchPackages, - "/legacy-system-rebuilds": LegacySystemRebuilds, - "/dedicated-development-centers": DedicatedOffshoreODC, - "/business-process-automation": BusinessProcessAutomation, - "/compliance-ready-systems": ComplianceReadySystems, - - // INDUSTRIES - Financial Services - "/industries/fintech-banking-apps": FinTechBankingApps, - "/industries/financial-services/wealthtech-platforms": - WealthTechPlatforms, - "/industries/financial-services/real-estate-tech": - RealEstateTech, - - // INDUSTRIES - Healthcare & Wellness - "/industries/healthcare/healthtech-applications": - HealthTechApplications, - "/industries/healthcare/medical-compliance-solutions": - MedicalComplianceSolutions, - "/industries/healthcare/fitness-wellness-platforms": - FitnessWellnessPlatforms, - - // INDUSTRIES - Learning & Education - "/industries/education/edtech-platforms": EdTechPlatforms, - "/industries/education/virtual-classrooms-lms": - VirtualClassroomsLMS, - "/industries/education/microlearning-apps": - MicrolearningApps, - - // INDUSTRIES - Commerce & Consumer - "/industries/commerce/ecommerce-marketplaces": - EcommerceMarketplaces, - "/industries/commerce/food-ordering-delivery": - FoodOrderingDelivery, - "/industries/commerce/travel-booking-systems": - TravelBookingSystems, - "/industries/commerce/event-ticketing-solutions": - EventTicketingSolutions, - - // INDUSTRIES - Media & Community - "/industries/media/ott-streaming-apps": OTTStreamingApps, - "/industries/media/social-platforms-networks": - SocialPlatformsNetworks, - "/industries/media/sports-fan-engagement": - SportsFanEngagement, - - // INDUSTRIES - Mobility & Logistics - "/industries/mobility/transportation-apps": - TransportationApps, - "/industries/mobility/on-demand-services": OnDemandServices, - "/industries/mobility/supply-chain-fleet-management": - SupplyChainFleetManagement, - - // INDUSTRIES - Industrial & Emerging Tech - "/industries/industrial/manufacturing-automation": - ManufacturingAutomation, - "/industries/industrial/agritech-platforms": - AgriTechPlatforms, - "/industries/industrial/oil-gas-monitoring-systems": - OilGasMonitoringSystems, - - // COMPANY PAGES - About WDI now accessible only through Company dropdown - "/company/about-wdi": AboutWDI, - "/company/our-history": OurHistory, - "/company/leadership-team": LeadershipTeam, - "/company/awards-certifications": AwardsCertifications, - "/company/careers": Careers, - "/company/culture-values": CultureValues, - "/company/press-media": PressMedia, - - // CAREERS PAGES - Direct access routes - "/careers": Careers, - "/careers/open-positions": Careers, - "/careers/send-cv": Careers, - - // HIRE TALENT PAGES - "/hire-talent": HireTalent, - "/hire-talent/mobile-app-developers": - HireMobileAppDevelopers, - "/hire-talent/full-stack-developers": - HireFullStackDevelopers, - "/hire-talent/frontend-developers": HireFrontendDevelopers, - "/hire-talent/backend-developers": HireBackendDevelopers, - "/hire-talent/ui-ux-designers": HireUIUXDesigners, - "/hire-talent/qa-engineers": HireQAEngineers, - "/dedicated-development-teams": DedicatedDevelopmentTeams, - "/engagement-models": EngagementModels, - "/team-augmentation-services": TeamAugmentationServices, - - // RESOURCES PAGES - "/resources/blog": Blog, - "/case-studies": CaseStudies, - "/resources/client-testimonials": ClientTestimonials, - "/resources/whitepapers-insights": WhitepapersInsights, - "/resources/faqs": FAQs, - - // New hire pages - "/hire-talent/ios-app-developers": HireiOSAppDevelopers, - "/hire-talent/android-app-developers": HireAndroidAppDevelopers, - "/hire-talent/cross-platform-developers": HireCrossPlatformDevelopers, - "/hire-talent/native-app-developers": HireNativeAppDevelopers, - "/hire-talent/pwa-developers": HirePWADevelopers, - "/hire-talent/wearable-app-developers": HireWearableAppDevelopers, - "/hire-talent/custom-web-app-developers": HireCustomWebAppDevelopers, - "/hire-talent/saas-product-developers": HireSaaSProductDevelopers, - "/hire-talent/ecommerce-platform-developers": HireEcommercePlatformDevelopers, - "/hire-talent/admin-panel-developers": HireAdminPanelDevelopers, - "/hire-talent/api-backend-developers": HireAPIBackendDevelopers, - "/hire-talent/enterprise-software-developers": HireEnterpriseSoftwareDevelopers, - "/hire-talent/system-architecture-developers": HireSystemArchitectureDevOpsDevelopers, - "/hire-talent/third-party-integration-developers": HireThirdPartyIntegrationsDevelopers, - "/hire-talent/product-modernization-developers": HireProductModernizationDevelopers, - "/hire-talent/clickable-prototypes-developers": HireClickablePrototypesDevelopers, - "/hire-talent/design-thinking-workshops-developers": HireDesignThinkingWorkshopsDevelopers, - "/hire-talent/user-research-testing-developers": HireUserResearchTestingDevelopers, - - //Comming Soon / Placeholder Pages - "/comming-soon": () => , - - // CONTACT PAGES - Updated to use proper main contact route - "/contact-us": Contact, // Contact Us Now page - "/contact-us-now": Contact, // Alternative URL for Contact Us Now page - "/contact/request-a-proposal": RequestProposal, - "/contact/schedule-a-discovery-call": ScheduleDiscoveryCall, - "/contact/office-locations": OfficeLocations, - "/contact/client-support": ClientSupport, - "/contact/send-your-cv": SendYourCV, - "/start-a-project": StartAProject, - "/thank-you": ThankYou, - - // LEGACY CONTACT ROUTE SUPPORT - "/contact/contact-form": ContactMain, // Support for contact form specific route - - // PROJECT PAGES - "/projects/regroup": RegroupProject, - "/projects/seezun": SeezunProject, - "/projects/woka": WokaProject, - "/projects/tanami": TanamiProject, - "/projects/traderscircuit": TradersCircuitProject, - "/projects/goodtimes": GoodTimesProject, - "/projects/prosperty": ProspertyProject, - "/projects/ranoutof": RanOutOfProject, - "/projects/vib360": VIB360Project, - "/projects/amble": AmbleProject, - "/projects/amoz": AmozProject, - "/projects/simpletend": SimpliTendProject, - - - // ARTICLE PAGES - "/articles/future-of-ai-healthcare": FutureOfAIHealthcare, - "/articles/compliance-ready-systems-fintech": - ComplianceReadyFintech, - "/articles/legacy-system-scaling": LegacySystemScaling, - "/articles/automation-reshaping-business": - AutomationReshapingBusiness, - - // INSIGHT PAGES - "/insights/ux-review-presentations": UXReviewPresentations, - "/insights/migrating-to-linear-101": MigratingToLinear101, - "/insights/building-your-api-stack": BuildingYourAPIStack, - - }; - - // Check if current path matches any route - const RouteComponent = - routes[currentPath as keyof typeof routes]; - if (RouteComponent) { - return ( -
- - -
- ); - } - - // Handle dynamic article routes - if (currentPath.startsWith("/articles/")) { - return ( -
- - -
- ); - } - - // Handle dynamic insight routes - if (currentPath.startsWith("/insights/")) { - const slug = currentPath.replace("/insights/", ""); - let InsightComponent; - - switch (slug) { - case "ux-review-presentations": - InsightComponent = UXReviewPresentations; - break; - case "migrating-to-linear-101": - InsightComponent = MigratingToLinear101; - break; - case "building-your-api-stack": - InsightComponent = BuildingYourAPIStack; - break; - default: - InsightComponent = null; - } - - if (InsightComponent) { - return ( -
- - -
- ); - } - } - - // Default to homepage for root path and unmatched paths return (
- + +
+ +
+
); -} \ No newline at end of file +} + +export default App; \ No newline at end of file diff --git a/components/CaseStudyHighlight.tsx b/components/CaseStudyHighlight.tsx index b164e8e..4aca96e 100644 --- a/components/CaseStudyHighlight.tsx +++ b/components/CaseStudyHighlight.tsx @@ -3,12 +3,12 @@ import { ArrowRight, ExternalLink } from "lucide-react"; import { Button } from "./ui/button"; import { GridPattern } from "./GridPattern"; import { ImageWithFallback } from "./figma/ImageWithFallback"; -import { navigateTo } from "../App"; import regroupImage from '../src/images/regroup.webp'; import seezunImage from '../src/images/seezun.webp'; // import wokaImage from '../src/images/woka.webp'; import wokaAwardImage from '../src/images/woka.webp'; import tanamiImage from '../src/images/tanami.webp'; +import { useNavigate } from "react-router-dom"; const featuredCaseStudy = { title: "Woka", @@ -63,6 +63,8 @@ const SmallCaseStudyCard = ({ study, index }: { study: typeof caseStudies[0]; in } }; + const navigate = useNavigate(); + return ( navigateTo(getNavigationPath(study.title))} + onClick={() => navigate(getNavigationPath(study.title))} >
{ e.stopPropagation(); - navigateTo(getNavigationPath(study.title)); + navigate(getNavigationPath(study.title)); }} > View Case Study @@ -125,6 +127,7 @@ const SmallCaseStudyCard = ({ study, index }: { study: typeof caseStudies[0]; in }; export const CaseStudyHighlight = () => { + const navigate = useNavigate(); return (
@@ -151,7 +154,7 @@ export const CaseStudyHighlight = () => { transition={{ duration: 0.8 }} viewport={{ once: true }} className="bg-card rounded-[10px] overflow-hidden mb-12 group cursor-pointer hover:bg-card/80 hover:shadow-xl hover:scale-[1.01] transition-all duration-300 border border-transparent hover:border-accent/20" - onClick={() => navigateTo('/projects/woka')} + onClick={() => navigate('/projects/woka')} >
@@ -199,7 +202,7 @@ export const CaseStudyHighlight = () => { className="text-accent font-medium hover:text-foreground transition-colors duration-300 flex items-center gap-3 group-hover:translate-x-2 transition-transform duration-300" onClick={(e) => { e.stopPropagation(); - navigateTo('/projects/woka'); + navigate('/projects/woka'); }} > View Full Case Study @@ -222,7 +225,7 @@ export const CaseStudyHighlight = () => { className="text-center" > @@ -64,7 +65,7 @@ export function HeroBanner({ variant="secondary" size="lg" className="bg-white/5 hover:bg-white/10 text-white border-white/20 hover:border-white/30 font-medium px-8 py-4 h-auto text-base" - onClick={() => navigateTo(secondaryCTA.href)} + onClick={() => navigate(secondaryCTA.href)} > {secondaryCTA.text} diff --git a/components/HeroSection.tsx b/components/HeroSection.tsx index 0199662..2dcb70f 100644 --- a/components/HeroSection.tsx +++ b/components/HeroSection.tsx @@ -1,11 +1,12 @@ import { Button } from "./ui/button"; import { GridPattern } from "./GridPattern"; import { Calendar, Briefcase } from "lucide-react"; -import { navigateTo } from "../App"; import { motion } from "framer-motion"; import Spline from "@splinetool/react-spline"; +import { useNavigate } from "react-router-dom"; export function HeroSection() { + const navigate = useNavigate(); return (
navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} > Book a Free Consultation @@ -101,7 +102,7 @@ export function HeroSection() { variant="secondary" size="lg" className="whitespace-nowrap" - onClick={() => navigateTo("/services")} + onClick={() => navigate("/services")} > Explore Services diff --git a/components/HireDeveloperSection.tsx b/components/HireDeveloperSection.tsx index 7a856d3..5a3753e 100644 --- a/components/HireDeveloperSection.tsx +++ b/components/HireDeveloperSection.tsx @@ -3,7 +3,7 @@ import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { UserPlus, ArrowRight } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { ShimmerButton } from "./ui/shimmer-button"; const HireDeveloperSection = ({ @@ -13,6 +13,7 @@ const HireDeveloperSection = ({ buttonText, buttonLink, }) => { + const navigate = useNavigate(); return (
@@ -104,7 +105,7 @@ const HireDeveloperSection = ({ viewport={{ once: true }} className="flex flex-col sm:flex-row gap-4 justify-center" > - navigateTo(buttonLink)}> + navigate(buttonLink)}>
{buttonText} diff --git a/components/HireTalentHeroBanner.tsx b/components/HireTalentHeroBanner.tsx index 7b432a1..df43f99 100644 --- a/components/HireTalentHeroBanner.tsx +++ b/components/HireTalentHeroBanner.tsx @@ -1,6 +1,6 @@ +import { useNavigate } from "react-router-dom"; import { Button } from "./ui/button"; import { ShimmerButton } from "./ui/shimmer-button"; -import { navigateTo } from "../App"; import { DashboardVector } from "./vectors/DashboardVector"; import { motion } from "framer-motion"; @@ -31,6 +31,7 @@ export function HireTalentHeroBanner({ useVectors = false, vectorComponent: VectorComponent }: HireTalentHeroBannerProps) { + const navigate = useNavigate(); return (
@@ -74,7 +75,7 @@ export function HireTalentHeroBanner({ > navigateTo(primaryCTA.href)} + onClick={() => navigate(primaryCTA.href)} >
{primaryCTA.icon && } @@ -87,7 +88,7 @@ export function HireTalentHeroBanner({ variant="outline" size="lg" className="text-lg px-8 py-4 h-auto border-gray-600 text-gray-300 hover:bg-gray-800 hover:text-white font-manrope" - onClick={() => navigateTo(secondaryCTA.href)} + onClick={() => navigate(secondaryCTA.href)} >
{secondaryCTA.icon && } diff --git a/components/HorizontalTagScroller.tsx b/components/HorizontalTagScroller.tsx index 2b921f8..f32438d 100644 --- a/components/HorizontalTagScroller.tsx +++ b/components/HorizontalTagScroller.tsx @@ -14,28 +14,30 @@ import { Cloud } from "lucide-react"; import { GridPattern } from "./GridPattern"; +import { useNavigate } from "react-router-dom"; const industries = [ // First row - { name: "FinTech", icon: CreditCard }, - { name: "HealthTech", icon: Heart }, - { name: "eCommerce", icon: ShoppingCart }, - { name: "EdTech", icon: GraduationCap }, + { name: "FinTech", icon: CreditCard, link: "/industries/fintech-banking-apps" }, + { name: "HealthTech", icon: Heart, link: "/industries/healthcare/healthtech-applications" }, + { name: "eCommerce", icon: ShoppingCart, link: "/industries/commerce/ecommerce-marketplaces" }, + { name: "EdTech", icon: GraduationCap, link: "/industries/education/edtech-platforms" }, // Second row - { name: "Logistics", icon: Truck }, - { name: "Media & OTT", icon: Video }, - { name: "Real Estate", icon: Building }, - { name: "Travel", icon: Plane }, - // Third row (we'll make it 3x4 instead to fit all 12) - { name: "Manufacturing", icon: Factory }, - { name: "AgriTech", icon: Wheat }, - { name: "Gaming", icon: Gamepad2 }, - { name: "SaaS", icon: Cloud } + { name: "Logistics", icon: Truck, link: "/industries/mobility/transportation-apps" }, + { name: "Media & OTT", icon: Video, link: "/industries/media/ott-streaming-apps" }, + { name: "Real Estate", icon: Building, link: "/industries/financial-services/real-estate-tech" }, + { name: "Travel", icon: Plane, link: "/industries/commerce/travel-booking-systems" }, + // Third row + { name: "Manufacturing", icon: Factory, link: "/industries/industrial/manufacturing-automation" }, + { name: "AgriTech", icon: Wheat, link: "/industries/industrial/agritech-platforms" }, + { name: "Gaming", icon: Gamepad2, link: "/industries/media/sports-fan-engagement" }, + { name: "SaaS", icon: Cloud, link: "/industries/financial-services/wealthtech-platforms" } ]; -const IndustryCard = ({ industry, index }: { - industry: { name: string; icon: any }; +const IndustryCard = ({ industry, index, onClick }: { + industry: { name: string; icon: any; link: string }; index: number; + onClick: (link: string) => void; }) => { const Icon = industry.icon; @@ -47,6 +49,7 @@ const IndustryCard = ({ industry, index }: { viewport={{ once: true }} whileHover={{ y: -5, scale: 1.02 }} className="group p-6 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 hover:border-[#E5195E]/50 transition-all duration-300 cursor-pointer text-center" + onClick={() => onClick(industry.link)} >
@@ -59,6 +62,12 @@ const IndustryCard = ({ industry, index }: { }; export const HorizontalTagScroller = () => { + const navigate = useNavigate(); + + const handleIndustryClick = (link: string) => { + navigate(link); + }; + return (
@@ -79,13 +88,13 @@ export const HorizontalTagScroller = () => {

- {/* 4x3 Grid for larger screens, 2x6 for tablets, 1x12 for mobile */}
{industries.map((industry, index) => ( ))}
diff --git a/components/InlineCTA.tsx b/components/InlineCTA.tsx index 9421cc5..be71840 100644 --- a/components/InlineCTA.tsx +++ b/components/InlineCTA.tsx @@ -2,9 +2,10 @@ import { motion } from "framer-motion"; import { Lightbulb, Clock } from "lucide-react"; import { Button } from "./ui/button"; import { GridPattern } from "./GridPattern"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; export const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -145,7 +146,7 @@ export const InlineCTA = () => {
    {category.sub_services.map((service) => (
  • { e.preventDefault(); - if (service.href) { - navigate(service.href); - } + service.href && handleNavigate(service.href); }} > {service.name} @@ -724,13 +723,11 @@ const MegaMenu = ({ return ( { e.preventDefault(); - if (solution.href) { - navigate(solution.href); - } + solution.href && handleNavigate(solution.href); }} >
    @@ -764,13 +761,11 @@ const MegaMenu = ({ {industry.items.map((item) => (
  • { e.preventDefault(); - if (item.href) { - navigate(item.href); - } + item.href && handleNavigate(item.href); }} > {item.name} @@ -794,13 +789,11 @@ const MegaMenu = ({ return ( { e.preventDefault(); - if (item.href) { - navigate(item.href); - } + item.href && handleNavigate(item.href); }} >
    @@ -870,10 +863,7 @@ export const Navigation = () => { const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const timeoutRef = useRef(); const navRef = useRef(null); - - const navigate = (path: string) => { - navigateTo(path); - }; + const navigate = useNavigate(); const openMenu = useCallback((item: string) => { if (timeoutRef.current) { @@ -918,12 +908,6 @@ export const Navigation = () => { closeMenu(); }, [closeMenu]); - // const handleNavMouseLeave = useCallback((e: React.MouseEvent) => { - // const relatedTarget = e.relatedTarget as Element; - // if (!navRef.current?.contains(relatedTarget)) { - // closeMenu(); - // } - // }, [closeMenu]); const handleNavMouseLeave = useCallback( (e: React.MouseEvent) => { const relatedTarget = e.relatedTarget; @@ -977,14 +961,20 @@ export const Navigation = () => { case "AI & ML": return "/artificial-intelligence"; case "Solutions": - return "/solutions/digital-product-development"; // Default to first solution + return "/solutions/digital-product-development"; case "Industries": - return "/industries/fintech-banking-apps"; // Default to first industry + return "/industries/fintech-banking-apps"; default: - return null; + return "/"; } }; + const handleNavigation = (path: string) => { + navigate(path); + setIsMobileMenuOpen(false); + setActiveMenu(null); + }; + return ( ); -}; +}; \ No newline at end of file diff --git a/components/ProcessSection.tsx b/components/ProcessSection.tsx index a969649..c74bf49 100644 --- a/components/ProcessSection.tsx +++ b/components/ProcessSection.tsx @@ -13,7 +13,7 @@ import { } from "lucide-react"; import { Button } from "./ui/button"; import { Badge } from "./ui/badge"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; const steps = [ { @@ -252,6 +252,7 @@ const ProcessCard = ({ export const ProcessSection = () => { const titleRef = useRef(null); + const navigate = useNavigate(); return (
    @@ -299,7 +300,7 @@ export const ProcessSection = () => { diff --git a/components/ServicesGrid.tsx b/components/ServicesGrid.tsx index d92e984..39c6ce3 100644 --- a/components/ServicesGrid.tsx +++ b/components/ServicesGrid.tsx @@ -1,7 +1,7 @@ import { motion } from "framer-motion"; import { Smartphone, Globe, Palette, Brain, RefreshCw, Users } from "lucide-react"; import { GridPattern } from "./GridPattern"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; const services = [ { @@ -42,10 +42,10 @@ const ServiceCard = ({ service, index }: { service: typeof services[0]; index: n const handleClick = () => { if (service.href) { - navigateTo(service.href); + navigate(service.href); } }; - + const navigate = useNavigate(); return ( { + const navigate = useNavigate(); return (
    @@ -86,7 +87,7 @@ export const SplitCallToAction = () => { @@ -604,7 +605,7 @@ export const AmbleProject = () => { @@ -622,7 +623,7 @@ export const AmbleProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/AmozProject.tsx b/pages/AmozProject.tsx index 10fc055..548a91b 100644 --- a/pages/AmozProject.tsx +++ b/pages/AmozProject.tsx @@ -5,13 +5,14 @@ import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { ArrowRight, Calendar, Users, Smartphone, Globe, Check, Star, TrendingUp, ShoppingBag, Brain, Zap, MessageCircle, Target, AlertCircle, Clock, DollarSign, Play, Shield, CreditCard } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; export const AmozProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -88,7 +89,7 @@ export const AmozProject = () => { @@ -610,7 +611,7 @@ export const AmozProject = () => { @@ -628,7 +629,7 @@ export const AmozProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/AndroidAppDevelopment.tsx b/pages/AndroidAppDevelopment.tsx index c4bb2e2..d468e74 100644 --- a/pages/AndroidAppDevelopment.tsx +++ b/pages/AndroidAppDevelopment.tsx @@ -39,7 +39,7 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import androidVectorImage from "../src/images/android-vector.png"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import ranoutofImage from "../src/images/ranoutof.webp" import tradersCircuitImage from "../src/images/traders-circuit.webp"; @@ -49,6 +49,7 @@ import awsLogoImage from "../src/images/aws-logo.png"; // Android Hero Section with Android device mockups and Android vector const AndroidHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -169,7 +170,7 @@ const AndroidHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
{ // Android Case Studies const AndroidCaseStudies = () => { + const navigate = useNavigate(); const caseStudies = [ { title: "Household Management Revolution", @@ -905,7 +907,7 @@ const AndroidCaseStudies = () => { variant="ghost" size="sm" className="w-full justify-between text-accent hover:text-accent hover:bg-accent/10 group-hover:translate-x-1 transition-all duration-300" - onClick={() => navigateTo(study.buttonLink)} + onClick={() => navigate(study.buttonLink)} > VIEW CASE STUDY @@ -925,6 +927,7 @@ const AndroidCaseStudies = () => { // Mid-Page CTA const AndroidInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -969,7 +972,7 @@ const AndroidInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
{ // Hire Android Developers Section const HireAndroidDevelopers = () => { + const navigate = useNavigate(); const developerTypes = [ { title: "Senior Android Developer", @@ -1115,7 +1119,7 @@ const HireAndroidDevelopers = () => { > navigateTo("/hire-talent/android-app-developers")} + onClick={() => navigate("/hire-talent/android-app-developers")} >
@@ -1213,6 +1217,7 @@ const AndroidFAQs = () => { // Final CTA Section const AndroidFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1277,7 +1282,7 @@ const AndroidFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
{ export const AndroidAppDevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1330,6 +1335,11 @@ export const AndroidAppDevelopment = () => {
+ {/* Case Studies */} +
+ +
+ {/* Development Process */}
@@ -1345,15 +1355,10 @@ export const AndroidAppDevelopment = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Android Developers */}
@@ -1361,9 +1366,9 @@ export const AndroidAppDevelopment = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1371,8 +1376,8 @@ export const AndroidAppDevelopment = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/ArticleDetail.tsx b/pages/ArticleDetail.tsx index beff824..89d6e25 100644 --- a/pages/ArticleDetail.tsx +++ b/pages/ArticleDetail.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; // Mock article data - in real implementation, this would come from props or API const articleData = { @@ -116,9 +116,11 @@ export const ArticleDetail = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -126,11 +128,11 @@ export const ArticleDetail = () => {
{/* Breadcrumb */}
- / - / @@ -297,7 +299,7 @@ export const ArticleDetail = () => {
navigateTo(`/articles/${article.id}`)} + onClick={() => navigate(`/articles/${article.id}`)} >
{ @@ -368,7 +370,7 @@ export const ArticleDetail = () => { @@ -387,7 +389,7 @@ export const ArticleDetail = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/ArtificialIntelligenceServices.tsx b/pages/ArtificialIntelligenceServices.tsx index f842ba4..08efdfd 100644 --- a/pages/ArtificialIntelligenceServices.tsx +++ b/pages/ArtificialIntelligenceServices.tsx @@ -15,7 +15,6 @@ import { UserPlus, Zap, } from "lucide-react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -25,9 +24,11 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -120,8 +121,8 @@ const HeroWithCTA = () => { > navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -132,7 +133,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4 h-auto" - onClick={() => navigateTo("/case-studies")} + onClick={() => navigate("/case-studies")} > View AI Case Studies @@ -405,6 +406,7 @@ const SideBySideContentWithIcons = () => { // Service Categories Grid const TabbedServiceDisplay = () => { + const navigate = useNavigate(); const services = [ { title: "AI Strategy & Consulting", @@ -486,7 +488,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(service.link)} + onClick={() => navigate(service.link)} >
@@ -515,6 +517,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -560,8 +563,8 @@ const InlineCTA = () => {
navigateTo("/contact/schedule-a-discovery-call")} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate("/contact/schedule-a-discovery-call")} + onClick={() => navigate("/start-a-project")} >
@@ -701,7 +704,7 @@ const HireDevelopersSection = () => {
navigateTo(specialist.link)} + // onClick={() => navigate(specialist.link)} >
@@ -752,7 +755,7 @@ const aiServicesFAQs = [ export function ArtificialIntelligenceServices() { return (
- + {/* */} @@ -765,7 +768,7 @@ export function ArtificialIntelligenceServices() { subtitle="Get answers to common questions about our artificial intelligence services." faqs={aiServicesFAQs} /> -
+ {/*
*/}
); } diff --git a/pages/AutomationReshapingBusiness.tsx b/pages/AutomationReshapingBusiness.tsx index 24bb267..8bb64e8 100644 --- a/pages/AutomationReshapingBusiness.tsx +++ b/pages/AutomationReshapingBusiness.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "automation-reshaping-business", @@ -305,9 +305,11 @@ export const AutomationReshapingBusiness = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -315,11 +317,11 @@ export const AutomationReshapingBusiness = () => {
{/* Breadcrumb */}
- / - / @@ -486,7 +488,7 @@ export const AutomationReshapingBusiness = () => {
navigateTo(`/articles/${article.id}`)} + onClick={() => navigate(`/articles/${article.id}`)} >
{ @@ -557,7 +559,7 @@ export const AutomationReshapingBusiness = () => { @@ -576,7 +578,7 @@ export const AutomationReshapingBusiness = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/AwardsCertifications.tsx b/pages/AwardsCertifications.tsx index de348f7..2bba0b0 100644 --- a/pages/AwardsCertifications.tsx +++ b/pages/AwardsCertifications.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React from "react"; import { Navigation } from "../components/Navigation"; import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; @@ -110,7 +110,7 @@ export const AwardsCertifications = () => { return (
- + {/* */} {/* Hero Section */}
@@ -285,7 +285,7 @@ export const AwardsCertifications = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/Blog.tsx b/pages/Blog.tsx index 72e54f5..f4a7dcf 100644 --- a/pages/Blog.tsx +++ b/pages/Blog.tsx @@ -20,8 +20,8 @@ import { ArrowRight, BookOpen, } from "lucide-react"; -import { navigateTo } from "../App"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; export const Blog = () => { const [searchTerm, setSearchTerm] = useState(""); @@ -175,20 +175,21 @@ export const Blog = () => { return matchesSearch && matchesCategory && matchesTag; }); + const navigate = useNavigate(); const handlePostClick = (post: any) => { if (typeof post.id === "string") { // Navigate to dedicated article page - navigateTo(`/articles/${post.id}`); + navigate(`/articles/${post.id}`); } else { // For placeholder posts, navigate to generic article detail - navigateTo("/articles/generic-article"); + navigate("/articles/generic-article"); } }; return (
- + {/* */} {/* Hero Section */}
@@ -529,7 +530,7 @@ export const Blog = () => { @@ -548,7 +549,7 @@ export const Blog = () => {
-
+ {/*
*/}
); }; diff --git a/pages/BuildingYourAPIStack.tsx b/pages/BuildingYourAPIStack.tsx index 525948e..702f947 100644 --- a/pages/BuildingYourAPIStack.tsx +++ b/pages/BuildingYourAPIStack.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "building-your-api-stack", @@ -208,9 +208,11 @@ export const BuildingYourAPIStack = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -218,11 +220,11 @@ export const BuildingYourAPIStack = () => {
{/* Breadcrumb */}
- / - / @@ -389,7 +391,7 @@ export const BuildingYourAPIStack = () => {
navigateTo(`/insights/${article.id}`)} + onClick={() => navigate(`/insights/${article.id}`)} >
{ @@ -460,7 +462,7 @@ export const BuildingYourAPIStack = () => { @@ -479,7 +481,7 @@ export const BuildingYourAPIStack = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/BusinessProcessAutomation.tsx b/pages/BusinessProcessAutomation.tsx index 40e08bd..ed61f1a 100644 --- a/pages/BusinessProcessAutomation.tsx +++ b/pages/BusinessProcessAutomation.tsx @@ -41,11 +41,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Business Process Automation Hero Section const BusinessProcessAutomationHero = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const BusinessProcessAutomationHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1288,6 +1289,7 @@ const BusinessProcessAutomationCaseStudies = () => { // Mid-Page Lead Capture CTA const BusinessProcessAutomationInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1326,7 +1328,7 @@ const BusinessProcessAutomationInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1413,6 +1415,7 @@ const BusinessProcessAutomationFAQs = () => { // Final CTA Section const BusinessProcessAutomationFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1466,7 +1469,7 @@ const BusinessProcessAutomationFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1496,7 +1499,7 @@ const BusinessProcessAutomationFinalCTA = () => { export const BusinessProcessAutomation = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1550,7 +1553,7 @@ export const BusinessProcessAutomation = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/Careers.tsx b/pages/Careers.tsx index dd76df8..b12808b 100644 --- a/pages/Careers.tsx +++ b/pages/Careers.tsx @@ -166,7 +166,7 @@ Best regards, `} - + {/* */} {/* Hero Section */}
@@ -373,7 +373,7 @@ Best regards,
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/CaseStudies.tsx b/pages/CaseStudies.tsx index a4e54b0..f572cc1 100644 --- a/pages/CaseStudies.tsx +++ b/pages/CaseStudies.tsx @@ -22,7 +22,6 @@ import { } from "lucide-react"; import { useState } from "react"; import { Helmet } from "react-helmet-async"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -46,6 +45,7 @@ import simplitendCase from "../src/images/simplitendCase.webp"; import amozCase from "../src/images/amozCase.webp"; import farmCase from "../src/images/farmCase.webp"; import leanCase from "../src/images/leanCase.webp"; +import { useNavigate } from "react-router-dom"; const caseStudies = [ @@ -231,9 +231,11 @@ export const CaseStudies = () => { return matchesSearch && matchesIndustry && matchesCategory && matchesFeatured; }); + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -393,12 +395,12 @@ export const CaseStudies = () => { viewport={{ once: true }} whileHover={{ y: -8, scale: 1.02 }} className="group cursor-pointer" - onClick={() => navigateTo(study.link)} + onClick={() => navigate(study.link)} > { e.stopPropagation(); - navigateTo(study.link); + navigate(study.link); }} > @@ -465,7 +467,7 @@ export const CaseStudies = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/CaseStudyComingSoon.tsx b/pages/CaseStudyComingSoon.tsx index 60990dc..48cfaee 100644 --- a/pages/CaseStudyComingSoon.tsx +++ b/pages/CaseStudyComingSoon.tsx @@ -26,12 +26,12 @@ import { Database, Zap } from 'lucide-react'; -import { navigateTo } from '../App'; import { Navigation } from '@/components/Navigation'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Footer } from '@/components/Footer'; +import { useNavigate } from 'react-router-dom'; interface CaseStudyComingSoonProps { projectTitle?: string; @@ -78,11 +78,13 @@ export const CaseStudyComingSoon: React.FC = ({ return icons[industry as keyof typeof icons] || Building2; }; + const navigate = useNavigate(); + const IconComponent = getIndustryIcon(industry); return (
- + {/* */} {/* Hero Section */}
@@ -300,7 +302,7 @@ export const CaseStudyComingSoon: React.FC = ({ Join our mailing list to be the first to know when this case study goes live.

@@ -343,7 +345,7 @@ export const CaseStudyComingSoon: React.FC = ({
-
+ {/*
*/}
); }; diff --git a/pages/ClickablePrototypes.tsx b/pages/ClickablePrototypes.tsx index 5443f3b..91c99ab 100644 --- a/pages/ClickablePrototypes.tsx +++ b/pages/ClickablePrototypes.tsx @@ -42,11 +42,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Clickable Prototypes Hero Section const PrototypesHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const PrototypesHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1031,6 +1032,7 @@ const PrototypingCaseStudies = () => { // Mid-Page CTA const PrototypingInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1069,7 +1071,7 @@ const PrototypingInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1085,6 +1087,7 @@ const PrototypingInlineCTA = () => { // Hire UI/UX Designers for Prototypes const HirePrototypeDesigners = () => { + const navigate = useNavigate(); const designerTypes = [ { title: "Prototype Specialists", @@ -1235,7 +1238,7 @@ const HirePrototypeDesigners = () => { >
navigateTo("/hire-talent/clickable-prototypes-developers")} + onClick={() => navigate("/hire-talent/clickable-prototypes-developers")} >
@@ -1333,6 +1336,7 @@ const PrototypingFAQs = () => { // Final CTA Section const PrototypingFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1385,7 +1389,7 @@ const PrototypingFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1414,7 +1418,7 @@ const PrototypingFinalCTA = () => { export const ClickablePrototypes = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1426,6 +1430,11 @@ export const ClickablePrototypes = () => {
+ {/* Case Studies */} +
+ +
+ {/* Prototyping Process */}
@@ -1441,15 +1450,10 @@ export const ClickablePrototypes = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Designers */}
@@ -1457,9 +1461,9 @@ export const ClickablePrototypes = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1467,8 +1471,8 @@ export const ClickablePrototypes = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/ClientSupport.tsx b/pages/ClientSupport.tsx index b5e3c6b..6299f05 100644 --- a/pages/ClientSupport.tsx +++ b/pages/ClientSupport.tsx @@ -240,7 +240,7 @@ export const ClientSupport = () => { return (
- + {/* */} {/* Hero Section */}
@@ -776,7 +776,7 @@ export const ClientSupport = () => {
-
+ {/*
*/}
); }; diff --git a/pages/ClientTestimonials.tsx b/pages/ClientTestimonials.tsx index d9c8580..70a10a9 100644 --- a/pages/ClientTestimonials.tsx +++ b/pages/ClientTestimonials.tsx @@ -23,8 +23,8 @@ import { Users, Award, } from "lucide-react"; -import { navigateTo } from "../App"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; export const ClientTestimonials = () => { const [selectedIndustry, setSelectedIndustry] = useState("all"); @@ -387,9 +387,11 @@ export const ClientTestimonials = () => { return icons[industry as keyof typeof icons] || Building2; }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -735,7 +737,7 @@ export const ClientTestimonials = () => {
-
+ {/*
*/}
); }; diff --git a/pages/Company.tsx b/pages/Company.tsx index 7e7163f..685955f 100644 --- a/pages/Company.tsx +++ b/pages/Company.tsx @@ -10,7 +10,6 @@ import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "../components/ui/accordion"; import { GridPattern } from "../components/GridPattern"; -import { navigateTo } from "../App"; import { Users, Heart, Shield, Target, Lightbulb, Award, TrendingUp, Clock, Newspaper, ArrowRight, Building, Globe, CheckCircle, Coffee, @@ -18,9 +17,11 @@ import { ChevronRight } from "lucide-react"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -107,7 +108,7 @@ const HeroWithCTA = () => { transition={{ duration: 0.8, delay: 0.3 }} className="flex flex-col sm:flex-row gap-4" > - navigateTo('/company/our-history')}> + navigate('/company/our-history')}>
Our Story @@ -117,7 +118,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4" - onClick={() => navigateTo('/company/leadership-team')} + onClick={() => navigate('/company/leadership-team')} > Meet Our Leaders @@ -481,6 +482,7 @@ const SideBySideContentWithIcons = () => { // Company Sections Grid - Updated to remove About WDI card const TabbedServiceDisplay = () => { + const navigate = useNavigate(); const sections = [ { title: "Our History", @@ -556,7 +558,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(section.link)} + onClick={() => navigate(section.link)} >
@@ -590,6 +592,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -633,7 +636,7 @@ const InlineCTA = () => {
navigateTo('/company/careers')} + onClick={() => navigate('/company/careers')} >
@@ -655,6 +658,7 @@ const InlineCTA = () => { // Press and Recognition Section const PressRecognitionSection = () => { + const navigate = useNavigate(); const press = [ { title: "Innovation Leader 2024", @@ -759,7 +763,7 @@ const PressRecognitionSection = () => {
navigateTo(item.link)} + onClick={() => navigate(item.link)} >
@@ -846,7 +850,7 @@ const FAQSection = () => { export function Company() { return (
- + {/* */} @@ -855,7 +859,7 @@ export function Company() { -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/ComplianceReadyFintech.tsx b/pages/ComplianceReadyFintech.tsx index 3a8e01a..7df5f0a 100644 --- a/pages/ComplianceReadyFintech.tsx +++ b/pages/ComplianceReadyFintech.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "compliance-ready-systems-fintech", @@ -211,7 +211,7 @@ const articleData = { id: "automation-reshaping-business", title: "5 Ways Automation is Reshaping Business Operations", excerpt: "Discover how intelligent automation is transforming modern business processes and operations.", - readTime: "10 min read", + readTime: "10 min read", image: "https://images.unsplash.com/photo-1485827404703-89b55fcc595e?w=400&h=250&fit=crop&auto=format", category: "Automation" } @@ -222,7 +222,7 @@ export const ComplianceReadyFintech = () => { const handleShare = (platform: string) => { const url = encodeURIComponent(window.location.href); const title = encodeURIComponent(articleData.title); - + let shareUrl = ''; switch (platform) { case 'linkedin': @@ -235,27 +235,27 @@ export const ComplianceReadyFintech = () => { shareUrl = `https://wa.me/?text=${title} ${url}`; break; } - + if (shareUrl) { window.open(shareUrl, '_blank', 'width=600,height=400'); } }; - + const navigate = useNavigate(); return (
- - + {/* */} + {/* Hero Section */}
{/* Breadcrumb */}
- / - / @@ -311,13 +311,13 @@ export const ComplianceReadyFintech = () => {
- + {/* Article Content - 70% */}
{/* Article Body */} -
- + {/* Related Articles */}

You Might Also Like

{articleData.relatedArticles.map((article) => ( -
navigateTo(`/articles/${article.id}`)} + onClick={() => navigate(`/articles/${article.id}`)} >
{
))}
- + - - @@ -486,23 +486,23 @@ export const ComplianceReadyFintech = () => { Enjoyed this article? Let's talk.

- Ready to build a compliance-ready fintech platform? Our team of experts is here to help you navigate + Ready to build a compliance-ready fintech platform? Our team of experts is here to help you navigate regulatory requirements while delivering innovative financial technology solutions.

- - @@ -512,7 +512,7 @@ export const ComplianceReadyFintech = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/ComplianceReadySystems.tsx b/pages/ComplianceReadySystems.tsx index 9e41cc9..30164bd 100644 --- a/pages/ComplianceReadySystems.tsx +++ b/pages/ComplianceReadySystems.tsx @@ -39,11 +39,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Compliance-Ready Systems Hero Section const ComplianceReadySystemsHero = () => { + const navigate = useNavigate(); return (
@@ -135,7 +136,7 @@ const ComplianceReadySystemsHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1275,6 +1276,7 @@ const ComplianceReadySystemsCaseStudies = () => { // Mid-Page Lead Capture CTA const ComplianceReadySystemsInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1312,7 +1314,7 @@ const ComplianceReadySystemsInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1405,6 +1407,7 @@ const ComplianceReadySystemsFAQs = () => { // Final CTA Section const ComplianceReadySystemsFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1458,7 +1461,7 @@ const ComplianceReadySystemsFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1488,7 +1491,7 @@ const ComplianceReadySystemsFinalCTA = () => { export const ComplianceReadySystems = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1542,7 +1545,7 @@ export const ComplianceReadySystems = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/ComputerVisionApplications.tsx b/pages/ComputerVisionApplications.tsx index 8545efa..c0dea1e 100644 --- a/pages/ComputerVisionApplications.tsx +++ b/pages/ComputerVisionApplications.tsx @@ -48,11 +48,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; +import { AIStrategyTargetAudience } from "./AIStrategyConsulting"; // Computer Vision Applications Hero Section const ComputerVisionHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -141,7 +143,7 @@ const ComputerVisionHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -674,14 +676,12 @@ const ComputerVisionProcess = () => { whileInView={{ opacity: 1, x: 0 }} transition={{ duration: 0.8, delay: index * 0.2 }} viewport={{ once: true }} - className={`flex items-center ${ - isEven ? "lg:flex-row" : "lg:flex-row-reverse" - } flex-col lg:gap-16 gap-8`} + className={`flex items-center ${isEven ? "lg:flex-row" : "lg:flex-row-reverse" + } flex-col lg:gap-16 gap-8`} >
@@ -981,10 +981,9 @@ const ComputerVisionTechStack = () => { >
@@ -1145,6 +1144,7 @@ const ComputerVisionCaseStudies = () => { // Mid-Page CTA const ComputerVisionInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1182,7 +1182,7 @@ const ComputerVisionInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1448,6 +1448,7 @@ const ComputerVisionFAQs = () => { // Final CTA Section const ComputerVisionFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1500,7 +1501,7 @@ const ComputerVisionFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1530,7 +1531,7 @@ const ComputerVisionFinalCTA = () => { export const ComputerVisionApplications = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1542,6 +1543,11 @@ export const ComputerVisionApplications = () => {
+ {/* Tech Stack */} +
+ +
+ {/* Development Process */}
@@ -1552,9 +1558,9 @@ export const ComputerVisionApplications = () => {
- {/* Tech Stack */} + {/* Target Audience */}
- +
{/* Case Studies */} @@ -1584,7 +1590,7 @@ export const ComputerVisionApplications = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/Contact.tsx b/pages/Contact.tsx index afd70f3..d49eed4 100644 --- a/pages/Contact.tsx +++ b/pages/Contact.tsx @@ -9,7 +9,7 @@ import { Textarea } from "../components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../components/ui/select"; import { Checkbox } from "../components/ui/checkbox"; import { Mail, Phone, MapPin, Clock, Send, ArrowRight, MessageSquare, FileCheck, Calendar, Headphones, UserPlus } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; export const Contact = () => { const [formData, setFormData] = useState({ @@ -53,6 +53,8 @@ export const Contact = () => { { icon: UserPlus, title: "Send your CV to HR", description: "Submit your resume for career opportunities", href: "/contact/send-your-cv" } ]; + const navigate = useNavigate(); + const handleInputChange = (field: string, value: string | boolean) => { setFormData(prev => ({ ...prev, [field]: value })); }; @@ -112,12 +114,12 @@ export const Contact = () => { setIsSubmitting(false); // Redirect to Thank You page - navigateTo('/thank-you'); + navigate('/thank-you'); }; return (
- + {/* */}
@@ -255,7 +257,7 @@ export const Contact = () => { {contactPages.map((page, index) => { const Icon = page.icon; return ( - navigateTo(page.href)}> + navigate(page.href)}>
@@ -283,10 +285,10 @@ export const Contact = () => { Privacy Statement: Your information is secure with us. We respect your privacy and will only use your data to respond to your inquiry.

- -
@@ -294,7 +296,7 @@ export const Contact = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/ContactMain.tsx b/pages/ContactMain.tsx index 0172f62..d583102 100644 --- a/pages/ContactMain.tsx +++ b/pages/ContactMain.tsx @@ -1,29 +1,35 @@ -import React from "react"; import { motion } from "framer-motion"; -import { Navigation } from "../components/Navigation"; -import { Footer } from "../components/Footer"; -import { ProcessSection } from "../components/ProcessSection"; -import { FAQSection } from "../components/FAQSection"; -import { AnimatedGradientText } from "../components/AnimatedGradientText"; -import { Button } from "../components/ui/button"; -import { ShimmerButton } from "../components/ui/shimmer-button"; -import { Badge } from "../components/ui/badge"; -import { Card, CardContent } from "../components/ui/card"; -import { Input } from "../components/ui/input"; -import { Textarea } from "../components/ui/textarea"; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../components/ui/select"; -import { Checkbox } from "../components/ui/checkbox"; -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "../components/ui/accordion"; -import { GridPattern } from "../components/GridPattern"; -import { navigateTo } from "../App"; -import { - Mail, FileCheck, Phone, UserPlus, Headphones, MapPin, MessageSquare, - Calendar, ArrowRight, Globe, Clock, Users, Target, Send, - Coffee, Monitor, Shield, Award, Rocket +import { + Calendar, + Clock, + FileCheck, + Globe, + Headphones, + Mail, + MapPin, MessageSquare, + Phone, + Rocket, + Send, + Shield, + Target, + UserPlus, + Users } from "lucide-react"; +import { FAQSection } from "../components/FAQSection"; +import { Footer } from "../components/Footer"; +import { Navigation } from "../components/Navigation"; +import { Button } from "../components/ui/button"; +import { Card, CardContent } from "../components/ui/card"; +import { Checkbox } from "../components/ui/checkbox"; +import { Input } from "../components/ui/input"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../components/ui/select"; +import { ShimmerButton } from "../components/ui/shimmer-button"; +import { Textarea } from "../components/ui/textarea"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -64,7 +70,7 @@ const HeroWithCTA = () => { transition={{ duration: 0.8, delay: 0.3 }} className="flex flex-col sm:flex-row gap-4" > - navigateTo('#contact-form')}> + navigate('#contact-form')}>
Send a Message @@ -74,7 +80,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4" - onClick={() => navigateTo('/contact/schedule-a-discovery-call')} + onClick={() => navigate('/contact/schedule-a-discovery-call')} > Schedule a Call @@ -429,6 +435,7 @@ const ContactFormSection = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -471,7 +478,7 @@ const InlineCTA = () => {
navigateTo('/contact/schedule-a-discovery-call')} + onClick={() => navigate('/contact/schedule-a-discovery-call')} >
@@ -493,6 +500,7 @@ const InlineCTA = () => { // Office Locations Section const OfficeLocationsSection = () => { + const navigate = useNavigate(); const offices = [ { title: "New York, USA", @@ -599,7 +607,7 @@ const OfficeLocationsSection = () => {
navigateTo(office.link)} + onClick={() => navigate(office.link)} >
@@ -645,7 +653,7 @@ const contactFAQs = [ export function ContactMain() { return (
- + {/* */} @@ -657,7 +665,7 @@ export function ContactMain() { subtitle="Get answers to common questions about reaching out to WDI." faqs={contactFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/CrossPlatformAppDevelopment.tsx b/pages/CrossPlatformAppDevelopment.tsx index 097b6a6..731d255 100644 --- a/pages/CrossPlatformAppDevelopment.tsx +++ b/pages/CrossPlatformAppDevelopment.tsx @@ -41,14 +41,16 @@ import { TabsList, TabsTrigger, } from "../components/ui/tabs"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import ranoutofImage from "../src/images/ranoutof.webp" import seezunImage from "../src/images/seezun.webp"; import regroupImage from "../src/images/regroup.webp"; +import awsLogoImage from "../src/images/aws-logo.png"; // Cross-Platform Hero Section const CrossPlatformHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -138,7 +140,7 @@ const CrossPlatformHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -825,6 +827,7 @@ const CrossPlatformServices = () => { // Cross-Platform Case Studies const CrossPlatformCaseStudies = () => { + const navigate = useNavigate(); const caseStudies = [ { title: "Household Management Revolution", @@ -948,7 +951,7 @@ const CrossPlatformCaseStudies = () => { variant="ghost" size="sm" className="w-full justify-between text-accent hover:text-accent hover:bg-accent/10 group-hover:translate-x-1 transition-all duration-300" - onClick={() => navigateTo(study.buttonLink)} + onClick={() => navigate(study.buttonLink)} > VIEW CASE STUDY @@ -968,6 +971,7 @@ const CrossPlatformCaseStudies = () => { // Mid-Page CTA const CrossPlatformInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1006,7 +1010,7 @@ const CrossPlatformInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1019,9 +1023,98 @@ const CrossPlatformInlineCTA = () => {
); }; +// CrossPlatformTechStack + +const CrossPlatformTechStack = () => { + const technologies = [ + { + name: "React Native", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg", + }, + { + name: "Flutter", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/flutter/flutter-original.svg", + }, + { + name: "Xamarin", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/xamarin/xamarin-original.svg", + }, + { + name: "Ionic", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/ionic/ionic-original.svg", + }, + { + name: "Firebase", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/firebase/firebase-plain.svg", + }, + { + name: "AWS", + logo: awsLogoImage, + }, + { + name: "GraphQL / Apollo", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/graphql/graphql-plain.svg", + }, + { + name: "TypeScript", + logo: "https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg", + }, + ]; + + return ( +
+
+ +

+ Cross-Platform App Development Technologies +

+

+ We build seamless apps for iOS, Android, and the web using + cutting-edge cross-platform frameworks and tools. +

+
+ +
+ {technologies.map((tech, index) => ( + +
+ +
+ + {tech.name} + +
+ ))} +
+
+
+ ); +}; + +export default CrossPlatformTechStack; + // Hire Cross-Platform Developers const HireCrossPlatformDevelopers = () => { + const navigate = useNavigate(); const developerTypes = [ { title: "Senior Flutter Developer", @@ -1128,7 +1221,7 @@ const HireCrossPlatformDevelopers = () => { className="flex flex-col sm:flex-row gap-4 justify-center" > navigateTo("/hire-talent/cross-platform-developers")} + onClick={() => navigate("/hire-talent/cross-platform-developers")} >
@@ -1224,6 +1317,7 @@ const CrossPlatformFAQs = () => { // Final CTA Section const CrossPlatformFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1282,7 +1376,7 @@ const CrossPlatformFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1311,7 +1405,7 @@ const CrossPlatformFinalCTA = () => { export const CrossPlatformAppDevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1323,29 +1417,34 @@ export const CrossPlatformAppDevelopment = () => {
+ {/* Case Studies */} +
+ +
+ {/* Technologies */} -
+
{/* Development Process */} -
+
{/* Services */} -
+
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
+
*/} + + {/* cross platform tech */} +
+
{/* Hire Developers */} @@ -1354,18 +1453,18 @@ export const CrossPlatformAppDevelopment = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */} -
+
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/CultureValues.tsx b/pages/CultureValues.tsx index fb7cac1..658ef9e 100644 --- a/pages/CultureValues.tsx +++ b/pages/CultureValues.tsx @@ -70,7 +70,7 @@ export const CultureValues = () => { return (
- + {/* */} {/* Hero Section */}
@@ -310,7 +310,7 @@ export const CultureValues = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/CustomMLModelDevelopment.tsx b/pages/CustomMLModelDevelopment.tsx index cadc50e..610811c 100644 --- a/pages/CustomMLModelDevelopment.tsx +++ b/pages/CustomMLModelDevelopment.tsx @@ -42,11 +42,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; +import { AIStrategyTargetAudience } from "./AIStrategyConsulting"; // Custom ML Model Development Hero Section const CustomMLHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -135,7 +137,7 @@ const CustomMLHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1126,6 +1128,7 @@ const CustomMLCaseStudies = () => { // Mid-Page CTA const CustomMLInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1164,7 +1167,7 @@ const CustomMLInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1431,6 +1434,7 @@ const CustomMLFAQs = () => { // Final CTA Section const CustomMLFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1483,7 +1487,7 @@ const CustomMLFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1513,7 +1517,7 @@ const CustomMLFinalCTA = () => { export const CustomMLModelDevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1525,6 +1529,11 @@ export const CustomMLModelDevelopment = () => {
+ {/* Tech Stack */} +
+ +
+ {/* Development Process */}
@@ -1535,9 +1544,9 @@ export const CustomMLModelDevelopment = () => {
- {/* Tech Stack */} + {/* Target Audience */}
- +
{/* Case Studies */} @@ -1567,7 +1576,7 @@ export const CustomMLModelDevelopment = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/CustomWebAppDevelopment.tsx b/pages/CustomWebAppDevelopment.tsx index c090b81..2ceb2b2 100644 --- a/pages/CustomWebAppDevelopment.tsx +++ b/pages/CustomWebAppDevelopment.tsx @@ -46,11 +46,12 @@ import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import patientManagementPortal from "../src/images/patient-management-portal.webp"; import awsLogo from "../src/images/aws-logo.png"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Custom Web App Development Hero Section const CustomWebAppHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -140,7 +141,7 @@ const CustomWebAppHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1023,6 +1024,7 @@ const WebAppCaseStudies = () => { // Mid-Page CTA const WebAppInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1061,7 +1063,7 @@ const WebAppInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1077,6 +1079,7 @@ const WebAppInlineCTA = () => { // Hire Web App Developers const HireWebDevelopers = () => { + const navigate = useNavigate(); const developerTypes = [ { title: "Frontend Specialists", @@ -1208,7 +1211,7 @@ const HireWebDevelopers = () => { >
navigateTo("/hire-talent/custom-web-app-developers")} + onClick={() => navigate("/hire-talent/custom-web-app-developers")} >
@@ -1234,6 +1237,7 @@ const HireWebDevelopers = () => { // Custom Web App FAQs const CustomWebAppFAQs = () => { + const navigate = useNavigate(); const faqs = [ { question: "How long does it take to develop a custom web app?", @@ -1305,6 +1309,7 @@ const CustomWebAppFAQs = () => { // Final CTA Section const CustomWebAppFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1357,7 +1362,7 @@ const CustomWebAppFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1386,7 +1391,7 @@ const CustomWebAppFinalCTA = () => { export const CustomWebAppDevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1398,6 +1403,11 @@ export const CustomWebAppDevelopment = () => {
+ {/* Case Studies */} +
+ +
+ {/* Development Process */}
@@ -1413,15 +1423,10 @@ export const CustomWebAppDevelopment = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Developers */}
@@ -1429,9 +1434,9 @@ export const CustomWebAppDevelopment = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1440,7 +1445,7 @@ export const CustomWebAppDevelopment = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/DedicatedDevelopmentTeams.tsx b/pages/DedicatedDevelopmentTeams.tsx index 87b92fa..53c1c3e 100644 --- a/pages/DedicatedDevelopmentTeams.tsx +++ b/pages/DedicatedDevelopmentTeams.tsx @@ -18,7 +18,7 @@ import { Star, UsersRound, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { TeamCollaborationVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; @@ -138,9 +138,11 @@ export const DedicatedDevelopmentTeams = () => { }, ]; + const navigate = useNavigate(); + return (
- + {/* */} {/* Page Title and Meta Description */} @@ -370,7 +372,7 @@ export const DedicatedDevelopmentTeams = () => {
-
+ {/*
*/}
); }; diff --git a/pages/DedicatedOffshoreODC.tsx b/pages/DedicatedOffshoreODC.tsx index 508c73d..e97568b 100644 --- a/pages/DedicatedOffshoreODC.tsx +++ b/pages/DedicatedOffshoreODC.tsx @@ -42,11 +42,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Dedicated Offshore Development Centers Hero Section const DedicatedOffshoreODCHero = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const DedicatedOffshoreODCHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1257,6 +1258,7 @@ const DedicatedOffshoreODCCaseStudies = () => { // Mid-Page Lead Capture CTA const DedicatedOffshoreODCInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1295,7 +1297,7 @@ const DedicatedOffshoreODCInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1387,6 +1389,7 @@ const DedicatedOffshoreODCFAQs = () => { // Final CTA Section const DedicatedOffshoreODCFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1440,7 +1443,7 @@ const DedicatedOffshoreODCFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1470,7 +1473,7 @@ const DedicatedOffshoreODCFinalCTA = () => { export const DedicatedOffshoreODC = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1524,7 +1527,7 @@ export const DedicatedOffshoreODC = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/DesignExperience.tsx b/pages/DesignExperience.tsx index d3178f8..7fce6e4 100644 --- a/pages/DesignExperience.tsx +++ b/pages/DesignExperience.tsx @@ -13,7 +13,6 @@ import { UserPlus, Users } from "lucide-react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -23,9 +22,11 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -119,7 +120,7 @@ const HeroWithCTA = () => { > navigateTo('/start-a-project')} + onClick={() => navigate('/start-a-project')} >
@@ -129,7 +130,7 @@ const HeroWithCTA = () => {
-
+ {/*
*/}
); }; diff --git a/pages/EnterpriseSoftwareSolutions.tsx b/pages/EnterpriseSoftwareSolutions.tsx index 0e7502f..01439f5 100644 --- a/pages/EnterpriseSoftwareSolutions.tsx +++ b/pages/EnterpriseSoftwareSolutions.tsx @@ -46,11 +46,12 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import awsLogo from "../src/images/aws-logo.png"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Enterprise Software Solutions Hero Section const EnterpriseHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -141,7 +142,7 @@ const EnterpriseHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1353,6 +1354,7 @@ const EnterpriseCaseStudies = () => { // Mid-Page CTA const EnterpriseInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1391,7 +1393,7 @@ const EnterpriseInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1407,6 +1409,7 @@ const EnterpriseInlineCTA = () => { // Hire Enterprise Talent const HireEnterpriseTalent = () => { + const navigate = useNavigate(); const talentTypes = [ { title: "Enterprise Architects", @@ -1542,7 +1545,7 @@ const HireEnterpriseTalent = () => { >
navigateTo("/hire-talent/enterprise-software-developers")} + onClick={() => navigate("/hire-talent/enterprise-software-developers")} >
@@ -1641,6 +1644,7 @@ const EnterpriseFAQs = () => { // Final CTA Section const EnterpriseFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1693,7 +1697,7 @@ const EnterpriseFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1722,7 +1726,7 @@ const EnterpriseFinalCTA = () => { export const EnterpriseSoftwareSolutions = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1734,6 +1738,11 @@ export const EnterpriseSoftwareSolutions = () => {
+ {/* Case Studies */} +
+ +
+ {/* Development Process */}
@@ -1749,15 +1758,10 @@ export const EnterpriseSoftwareSolutions = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Talent */}
@@ -1765,9 +1769,9 @@ export const EnterpriseSoftwareSolutions = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1776,7 +1780,7 @@ export const EnterpriseSoftwareSolutions = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/EventTicketingSolutions.tsx b/pages/EventTicketingSolutions.tsx index 5418296..efc82c2 100644 --- a/pages/EventTicketingSolutions.tsx +++ b/pages/EventTicketingSolutions.tsx @@ -470,7 +470,7 @@ const eventTicketingFAQs = [ export const EventTicketingSolutions = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; diff --git a/pages/FAQs.tsx b/pages/FAQs.tsx index e9369d8..4dde859 100644 --- a/pages/FAQs.tsx +++ b/pages/FAQs.tsx @@ -19,11 +19,12 @@ import { Phone, Mail, } from "lucide-react"; -import { navigateTo } from "../App"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; export const FAQs = () => { const [searchTerm, setSearchTerm] = useState(""); + const navigate = useNavigate(); const faqCategories = [ { @@ -187,7 +188,7 @@ export const FAQs = () => { return (
- + {/* */} {/* Hero Section */}
@@ -484,7 +485,7 @@ export const FAQs = () => {
-
+ {/*
*/}
); }; diff --git a/pages/FinTechBankingApps.tsx b/pages/FinTechBankingApps.tsx index 0021417..ba29341 100644 --- a/pages/FinTechBankingApps.tsx +++ b/pages/FinTechBankingApps.tsx @@ -55,11 +55,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // FinTech & Banking Apps Hero Section const FinTechBankingAppsHero = () => { + const navigate = useNavigate(); return (
@@ -150,7 +151,7 @@ const FinTechBankingAppsHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -293,7 +294,7 @@ const FinTechBankingAppsHero = () => { initial={{ opacity: 0, scale: 0 }} animate={{ opacity: 1, scale: 1 }} transition={{ duration: 0.5, delay: 2.0 + i * 0.1 }} - className="text-center" + className="text-center flex-column items-center justify-self-center" >
{ // Mid-Page Lead Capture CTA const FinTechBankingAppsInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1422,7 +1424,7 @@ const FinTechBankingAppsInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1519,6 +1521,7 @@ const FinTechBankingAppsFAQs = () => { // Final CTA Section const FinTechBankingAppsFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1572,7 +1575,7 @@ const FinTechBankingAppsFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1601,7 +1604,7 @@ const FinTechBankingAppsFinalCTA = () => { export const FinTechBankingApps = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1660,7 +1663,7 @@ export const FinTechBankingApps = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/FitnessWellnessPlatforms.tsx b/pages/FitnessWellnessPlatforms.tsx index 6ac551b..bd9036a 100644 --- a/pages/FitnessWellnessPlatforms.tsx +++ b/pages/FitnessWellnessPlatforms.tsx @@ -16,11 +16,12 @@ import { Navigation } from "../components/Navigation"; import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Fitness & Wellness Hero Section const FitnessWellnessHero = () => { + const navigate = useNavigate(); return (
@@ -108,7 +109,7 @@ const FitnessWellnessHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -387,7 +388,7 @@ const FitnessWellnessHero = () => { export const FitnessWellnessPlatforms = () => { return (
- + {/* */}
@@ -396,7 +397,7 @@ export const FitnessWellnessPlatforms = () => { {/* Additional sections would go here following the same pattern as other industry pages */}
-
+ {/*
*/}
); diff --git a/pages/FoodOrderingDelivery.tsx b/pages/FoodOrderingDelivery.tsx index abe2646..bfb4222 100644 --- a/pages/FoodOrderingDelivery.tsx +++ b/pages/FoodOrderingDelivery.tsx @@ -464,7 +464,7 @@ const foodDeliveryFAQs = [ export const FoodOrderingDelivery = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; diff --git a/pages/FutureOfAIHealthcare.tsx b/pages/FutureOfAIHealthcare.tsx index 2098204..9c1937b 100644 --- a/pages/FutureOfAIHealthcare.tsx +++ b/pages/FutureOfAIHealthcare.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "future-of-ai-healthcare", @@ -161,9 +161,11 @@ export const FutureOfAIHealthcare = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -171,11 +173,11 @@ export const FutureOfAIHealthcare = () => {
{/* Breadcrumb */}
- / - / @@ -342,7 +344,7 @@ export const FutureOfAIHealthcare = () => {
navigateTo(`/articles/${article.id}`)} + onClick={() => navigate(`/articles/${article.id}`)} >
{ @@ -413,7 +415,7 @@ export const FutureOfAIHealthcare = () => { @@ -432,7 +434,7 @@ export const FutureOfAIHealthcare = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/GenAIIntegrationDigitalProducts.tsx b/pages/GenAIIntegrationDigitalProducts.tsx index b2284b6..456e986 100644 --- a/pages/GenAIIntegrationDigitalProducts.tsx +++ b/pages/GenAIIntegrationDigitalProducts.tsx @@ -42,11 +42,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; +import { AIStrategyTargetAudience } from "./AIStrategyConsulting"; // Gen AI Integration Hero Section const GenAIIntegrationHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -135,7 +137,7 @@ const GenAIIntegrationHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1173,6 +1175,7 @@ const GenAICaseStudies = () => { // Mid-Page CTA const GenAIInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1211,7 +1214,7 @@ const GenAIInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1480,6 +1483,7 @@ const GenAIFAQs = () => { // Final CTA Section const GenAIFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1532,7 +1536,7 @@ const GenAIFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1561,7 +1565,7 @@ const GenAIFinalCTA = () => { export const GenAIIntegrationDigitalProducts = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1585,7 +1589,7 @@ export const GenAIIntegrationDigitalProducts = () => { {/* Tech Stack */}
- +
{/* Case Studies */} @@ -1615,7 +1619,7 @@ export const GenAIIntegrationDigitalProducts = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/GoodTimesProject.tsx b/pages/GoodTimesProject.tsx index e5b23cf..3daab13 100644 --- a/pages/GoodTimesProject.tsx +++ b/pages/GoodTimesProject.tsx @@ -5,10 +5,10 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { GridPattern } from "../components/GridPattern"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; -import { navigateTo } from "../App"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import goodTimesLogo from "../src/images/good-times-logo.webp"; +import { useNavigate } from "react-router-dom"; // Technology to icon mapping const getTechIcon = (tech: string) => { @@ -202,9 +202,10 @@ const futureRoadmap = [ ]; export const GoodTimesProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Section 1: Hero with Heading, Subheading, and Image */}
@@ -220,7 +221,7 @@ export const GoodTimesProject = () => { >
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/HealthTechApplications.tsx b/pages/HealthTechApplications.tsx index 02aefdd..a05b769 100644 --- a/pages/HealthTechApplications.tsx +++ b/pages/HealthTechApplications.tsx @@ -45,11 +45,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // HealthTech Hero Section const HealthTechHero = () => { + const navigate = useNavigate(); return (
@@ -140,7 +141,7 @@ const HealthTechHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1224,6 +1225,7 @@ const HealthTechTestimonials = () => { // Mid-Page Lead Capture CTA const HealthTechInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1262,7 +1264,7 @@ const HealthTechInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1359,6 +1361,7 @@ const HealthTechFAQs = () => { // Final CTA Section const HealthTechFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1412,7 +1415,7 @@ const HealthTechFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1441,7 +1444,7 @@ const HealthTechFinalCTA = () => { export const HealthTechApplications = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1495,7 +1498,7 @@ export const HealthTechApplications = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/HireAPIBackendDevelopers.tsx b/pages/HireAPIBackendDevelopers.tsx index 34b6e67..6d453ae 100644 --- a/pages/HireAPIBackendDevelopers.tsx +++ b/pages/HireAPIBackendDevelopers.tsx @@ -139,7 +139,7 @@ const hireAPIBackendDevelopersData = { export function HireAPIBackendDevelopers() { return (
- + {/* */} {/* Hero Section with BackendVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireAdminPanelDevelopers.tsx b/pages/HireAdminPanelDevelopers.tsx index 3aa4eb8..a7c4f01 100644 --- a/pages/HireAdminPanelDevelopers.tsx +++ b/pages/HireAdminPanelDevelopers.tsx @@ -139,7 +139,7 @@ const hireAdminPanelDevelopersData = { export function HireAdminPanelDevelopers() { return (
- + {/* */} {/* Hero Section with DashboardVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireAndroidAppDevelopers.tsx b/pages/HireAndroidAppDevelopers.tsx index c45b991..60ad858 100644 --- a/pages/HireAndroidAppDevelopers.tsx +++ b/pages/HireAndroidAppDevelopers.tsx @@ -139,7 +139,7 @@ const hireAndroidAppDevelopersData = { export function HireAndroidAppDevelopers() { return (
- + {/* */} {/* Hero Section with MobileAppVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireBackendDevelopers.tsx b/pages/HireBackendDevelopers.tsx index 8bd8ab9..60328ff 100644 --- a/pages/HireBackendDevelopers.tsx +++ b/pages/HireBackendDevelopers.tsx @@ -17,12 +17,13 @@ import { Code, Users, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { BackendVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; export const HireBackendDevelopers = () => { + const navigate = useNavigate(); const expertise = [ { category: "Languages & Frameworks", @@ -215,7 +216,7 @@ export const HireBackendDevelopers = () => { return (
- + {/* */} {/* Page Title and Meta Description */} @@ -494,7 +495,7 @@ export const HireBackendDevelopers = () => {
-
+ {/*
*/}
); }; diff --git a/pages/HireClickablePrototypesDevelopers.tsx b/pages/HireClickablePrototypesDevelopers.tsx index 5102da0..b3e6688 100644 --- a/pages/HireClickablePrototypesDevelopers.tsx +++ b/pages/HireClickablePrototypesDevelopers.tsx @@ -139,7 +139,7 @@ const hireClickablePrototypesDevelopersData = { export function HireClickablePrototypesDevelopers() { return (
- + {/* */} {/* Hero Section with ProjectTimelineVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireCrossPlatformDevelopers.tsx b/pages/HireCrossPlatformDevelopers.tsx index 3230ab3..44836ae 100644 --- a/pages/HireCrossPlatformDevelopers.tsx +++ b/pages/HireCrossPlatformDevelopers.tsx @@ -139,7 +139,7 @@ const hireCrossPlatformDevelopersData = { export function HireCrossPlatformDevelopers() { return (
- + {/* */} {/* Hero Section with TechStackVisualization */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireCustomWebAppDevelopers.tsx b/pages/HireCustomWebAppDevelopers.tsx index e379661..3ffb13a 100644 --- a/pages/HireCustomWebAppDevelopers.tsx +++ b/pages/HireCustomWebAppDevelopers.tsx @@ -139,7 +139,7 @@ const hireCustomWebAppDevelopersData = { export function HireCustomWebAppDevelopers() { return (
- + {/* */} {/* Hero Section with FrontendVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireDesignThinkingWorkshopsDevelopers.tsx b/pages/HireDesignThinkingWorkshopsDevelopers.tsx index 9e04861..2233301 100644 --- a/pages/HireDesignThinkingWorkshopsDevelopers.tsx +++ b/pages/HireDesignThinkingWorkshopsDevelopers.tsx @@ -139,7 +139,7 @@ const hireDesignThinkingWorkshopsDevelopersData = { export function HireDesignThinkingWorkshopsDevelopers() { return (
- + {/* */} {/* Hero Section with TeamCollaborationVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireEcommercePlatformDevelopers.tsx b/pages/HireEcommercePlatformDevelopers.tsx index ece9c2c..6eea6d0 100644 --- a/pages/HireEcommercePlatformDevelopers.tsx +++ b/pages/HireEcommercePlatformDevelopers.tsx @@ -139,7 +139,7 @@ const hireEcommercePlatformDevelopersData = { export function HireEcommercePlatformDevelopers() { return (
- + {/* */} {/* Hero Section with FullStackVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireEnterpriseSoftwareDevelopers.tsx b/pages/HireEnterpriseSoftwareDevelopers.tsx index f42941b..16915da 100644 --- a/pages/HireEnterpriseSoftwareDevelopers.tsx +++ b/pages/HireEnterpriseSoftwareDevelopers.tsx @@ -139,7 +139,7 @@ const hireEnterpriseSoftwareDevelopersData = { export function HireEnterpriseSoftwareDevelopers() { return (
- + {/* */} {/* Hero Section with FullStackVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireFrontendDevelopers.tsx b/pages/HireFrontendDevelopers.tsx index d3376ea..8945bd5 100644 --- a/pages/HireFrontendDevelopers.tsx +++ b/pages/HireFrontendDevelopers.tsx @@ -16,12 +16,13 @@ import { Star, Palette, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { FrontendVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; export const HireFrontendDevelopers = () => { + const navigate = useNavigate(); const expertise = [ { category: "JavaScript Frameworks", @@ -148,7 +149,7 @@ export const HireFrontendDevelopers = () => { return (
- + {/* */} {/* Page Title and Meta Description */} @@ -383,7 +384,7 @@ export const HireFrontendDevelopers = () => {
-
+ {/*
*/}
); }; diff --git a/pages/HireFullStackDevelopers.tsx b/pages/HireFullStackDevelopers.tsx index f210913..5d56326 100644 --- a/pages/HireFullStackDevelopers.tsx +++ b/pages/HireFullStackDevelopers.tsx @@ -18,12 +18,13 @@ import { Star, Layers, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; import { DeveloperSkillsVector } from "@/components/vectors"; export const HireFullStackDevelopers = () => { + const navigate = useNavigate(); const expertise = [ { category: "Frontend Technologies", @@ -157,7 +158,7 @@ export const HireFullStackDevelopers = () => { return (
- + {/* */} {/* Page Title and Meta Description */} @@ -434,7 +435,7 @@ export const HireFullStackDevelopers = () => {
-
+ {/*
*/}
); }; diff --git a/pages/HireMobileAppDevelopers.tsx b/pages/HireMobileAppDevelopers.tsx index 44dcc45..3bf8e10 100644 --- a/pages/HireMobileAppDevelopers.tsx +++ b/pages/HireMobileAppDevelopers.tsx @@ -5,12 +5,13 @@ import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { ArrowRight, Smartphone, Apple, Code, Zap, Shield, Target, Users, CheckCircle, Star } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; import { MobileAppVector } from "@/components/vectors"; export const HireMobileAppDevelopers = () => { + const navigate = useNavigate(); const expertise = [ { icon: Apple, @@ -115,7 +116,7 @@ export const HireMobileAppDevelopers = () => { return (
- + {/* */} {/* Page Title and Meta Description */} Hire Mobile App Developers | Expert Talent at WDI @@ -326,7 +327,7 @@ export const HireMobileAppDevelopers = () => {

-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/HireNativeAppDevelopers.tsx b/pages/HireNativeAppDevelopers.tsx index f67f0ca..c8ffb96 100644 --- a/pages/HireNativeAppDevelopers.tsx +++ b/pages/HireNativeAppDevelopers.tsx @@ -139,7 +139,7 @@ const hireNativeAppDevelopersData = { export function HireNativeAppDevelopers() { return (
- + {/* */} {/* Hero Section with DeveloperSkillsVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HirePWADevelopers.tsx b/pages/HirePWADevelopers.tsx index 96ab83c..4f05af2 100644 --- a/pages/HirePWADevelopers.tsx +++ b/pages/HirePWADevelopers.tsx @@ -139,7 +139,7 @@ const hirePWADevelopersData = { export function HirePWADevelopers() { return (
- + {/* */} {/* Hero Section with FrontendVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireProductModernizationDevelopers.tsx b/pages/HireProductModernizationDevelopers.tsx index db8a9ba..4f17a26 100644 --- a/pages/HireProductModernizationDevelopers.tsx +++ b/pages/HireProductModernizationDevelopers.tsx @@ -139,7 +139,7 @@ const hireProductModernizationDevelopersData = { export function HireProductModernizationDevelopers() { return (
- + {/* */} {/* Hero Section with ProjectTimelineVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireQAEngineers.tsx b/pages/HireQAEngineers.tsx index 852589f..19af475 100644 --- a/pages/HireQAEngineers.tsx +++ b/pages/HireQAEngineers.tsx @@ -17,12 +17,13 @@ import { Activity, Search, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { QATestingVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; export const HireQAEngineers = () => { + const navigate = useNavigate(); const expertise = [ { category: "Manual Testing", @@ -222,7 +223,7 @@ export const HireQAEngineers = () => { return (
- + {/* */} {/* Page Title and Meta Description */} @@ -410,7 +411,7 @@ export const HireQAEngineers = () => {
-
+ {/*
*/}
); }; diff --git a/pages/HireSaaSProductDevelopers.tsx b/pages/HireSaaSProductDevelopers.tsx index 7fb7923..3181211 100644 --- a/pages/HireSaaSProductDevelopers.tsx +++ b/pages/HireSaaSProductDevelopers.tsx @@ -139,7 +139,7 @@ const hireSaaSProductDevelopersData = { export function HireSaaSProductDevelopers() { return (
- + {/* */} {/* Hero Section with TechStackVisualization */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireSystemArchitectureDevOpsDevelopers.tsx b/pages/HireSystemArchitectureDevOpsDevelopers.tsx index dbdb134..ca7a876 100644 --- a/pages/HireSystemArchitectureDevOpsDevelopers.tsx +++ b/pages/HireSystemArchitectureDevOpsDevelopers.tsx @@ -139,7 +139,7 @@ const hireSystemArchitectureDevOpsDevelopersData = { export function HireSystemArchitectureDevOpsDevelopers() { return (
- + {/* */} {/* Hero Section with BackendVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireTalent.tsx b/pages/HireTalent.tsx index b4e75e1..eb2f469 100644 --- a/pages/HireTalent.tsx +++ b/pages/HireTalent.tsx @@ -5,10 +5,11 @@ import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { ArrowRight, Users, Clock, Target, DollarSign, Shield, Zap, CheckCircle, Smartphone, Code, Monitor, Database, Palette, TestTube } from "lucide-react"; -import { navigateTo } from "../App"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; export const HireTalent = () => { + const navigate = useNavigate(); const talentCategories = [ { title: "Mobile App Developers", @@ -107,7 +108,7 @@ export const HireTalent = () => { return (
- + {/* */} {/* Hero Section */}
@@ -180,7 +181,7 @@ export const HireTalent = () => { Connecting You with Exceptional Tech Professionals, Effortlessly. In today's fast-paced digital landscape, access to top-tier technical talent is crucial for success.

navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/HireThirdPartyIntegrationsDevelopers.tsx b/pages/HireThirdPartyIntegrationsDevelopers.tsx index a7c5443..b0842df 100644 --- a/pages/HireThirdPartyIntegrationsDevelopers.tsx +++ b/pages/HireThirdPartyIntegrationsDevelopers.tsx @@ -139,7 +139,7 @@ const hireThirdPartyIntegrationsDevelopersData = { export function HireThirdPartyIntegrationsDevelopers() { return (
- + {/* */} {/* Hero Section with TeamCollaborationVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireUIUXDesigners.tsx b/pages/HireUIUXDesigners.tsx index 1c5ea8e..f1a1a3b 100644 --- a/pages/HireUIUXDesigners.tsx +++ b/pages/HireUIUXDesigners.tsx @@ -16,12 +16,13 @@ import { MousePointer2, TestTube, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { UIUXVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; export const HireUIUXDesigners = () => { + const navigate = useNavigate(); const expertise = [ { category: "User Research & Analysis", @@ -199,7 +200,7 @@ export const HireUIUXDesigners = () => { return (
- + {/* */} {/* Page Title and Meta Description */} @@ -475,7 +476,7 @@ export const HireUIUXDesigners = () => {
-
+ {/*
*/}
); }; diff --git a/pages/HireUserResearchTestingDevelopers.tsx b/pages/HireUserResearchTestingDevelopers.tsx index e778979..76d6163 100644 --- a/pages/HireUserResearchTestingDevelopers.tsx +++ b/pages/HireUserResearchTestingDevelopers.tsx @@ -139,7 +139,7 @@ const hireUserResearchTestingDevelopersData = { export function HireUserResearchTestingDevelopers() { return (
- + {/* */} {/* Hero Section with DeveloperSkillsVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireWearableAppDevelopers.tsx b/pages/HireWearableAppDevelopers.tsx index ddaf6ce..ce571fb 100644 --- a/pages/HireWearableAppDevelopers.tsx +++ b/pages/HireWearableAppDevelopers.tsx @@ -139,7 +139,7 @@ const hireWearableAppDevelopersData = { export function HireWearableAppDevelopers() { return (
- + {/* */} {/* Hero Section with TechStackVisualization */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/HireiOSAppDevelopers.tsx b/pages/HireiOSAppDevelopers.tsx index c7257ff..f5691bc 100644 --- a/pages/HireiOSAppDevelopers.tsx +++ b/pages/HireiOSAppDevelopers.tsx @@ -139,7 +139,7 @@ const hireiOSAppDevelopersData = { export function HireiOSAppDevelopers() { return (
- + {/* */} {/* Hero Section with MobileAppVector */}
-
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/Homepage.tsx b/pages/Homepage.tsx new file mode 100644 index 0000000..29ed095 --- /dev/null +++ b/pages/Homepage.tsx @@ -0,0 +1,288 @@ +import { CarouselTestimonials } from "@/components/CarouselTestimonials"; +import { CaseStudyHighlight } from "@/components/CaseStudyHighlight"; +import { Footer } from "@/components/Footer"; +import { HorizontalTagScroller } from "@/components/HorizontalTagScroller"; +import { InlineCTA } from "@/components/InlineCTA"; +import { ProcessSection } from "@/components/ProcessSection"; +import { ResourceCards } from "@/components/ResourceCards"; +import { SplitCallToAction } from "@/components/SplitCallToAction"; +import { WhyChooseWDI } from "@/components/WhyChooseWDI"; +import { ChevronRight } from "lucide-react"; +import { motion } from "framer-motion"; +import { Helmet } from "react-helmet-async"; +import { Navigation } from "@/components/Navigation"; +import { HeroSection } from "@/components/HeroSection"; +import { ClientLogos } from "@/components/ClientLogos"; +import { useNavigate } from "react-router-dom"; + + +const services = [ + { + title: "Mobile App Development", + icon: ( + + ), + description: "Native & cross-platform apps with pixel-perfect UIs and seamless user experiences.", + link: "/services/mobile-app-development" + }, + { + title: "Web Platforms & SaaS", + icon: ( + + ), + description: "Scalable, secure, and SEO-optimized web applications built for performance.", + link: "/web-cloud" + }, + { + title: "AI & ML Solutions", + icon: ( + + ), + description: "Intelligent features powered by cutting-edge algorithms and machine learning.", + link: "/artificial-intelligence" + }, + { + title: "DevOps & Cloud", + icon: ( + + ), + description: "CI/CD pipelines and managed cloud infrastructure for seamless deployment.", + link: "/services/system-architecture-devops" + }, + { + title: "Product Design & UX", + icon: ( + + ), + description: "Human-centered UX with delightful micro-interactions and intuitive interfaces.", + link: "/design-experience" + }, + { + title: "Security & Compliance", + icon: ( + + ), + description: "Pen-testing, auditing, and regulatory alignment for enterprise-grade security.", + link: "/solutions/compliance-ready-systems" + } +]; + +export const Homepage = () => { + + const navigate = useNavigate(); + + return ( +
+ + {/* Page Title and Meta Description */} + Mobile App Development Services | WDI - iOS & Android App Development + + + {/* Canonical Link */} + + + {/* Open Graph Tags (for Facebook, LinkedIn) */} + + + + + + + {/* Twitter Card Tags */} + + + + + + {/* Social Profiles (using JSON-LD Schema) */} + + + {/* */} + + {/* Hero Section - Dark background */} +
+ +
+ + {/* Client Logos - Dark background */} +
+ +
+ + {/* Services Grid - Dark background */} + {/*
+ +
*/} +
+
+ +
+

What We Do

+

+ End-to-end solutions for every stage of your product lifecycle. +

+
+
+ + + {services.map((service, index) => { + const IconComponent = service.icon; + return ( + navigate(service.link)} + > +
+
+
+ {/* */} + + {service.icon} + +
+ +
+

+ {service.title} +

+

+ {service.description} +

+
+ +
+ Explore Services + +
+
+
+
+ ); + })} +
+
+
+ + {/* Why Choose WDI - Dark background */} +
+ +
+ + {/* Industry Solutions - Dark background */} +
+ +
+ + {/* Case Studies - Dark background */} +
+ +
+ + {/* Inline CTA - Dark background */} +
+ +
+ + {/* Process Steps - Dark background */} +
+ +
+ + {/* Testimonials - Dark background */} +
+ +
+ + {/* Resources - Dark background */} +
+ +
+ + {/* Final CTA - Dark background */} +
+ +
+ + {/* Footer - Dark background */} +
+ {/*
*/} +
+
+ ); +}; \ No newline at end of file diff --git a/pages/Industries.tsx b/pages/Industries.tsx index a760a97..8dd297a 100644 --- a/pages/Industries.tsx +++ b/pages/Industries.tsx @@ -8,16 +8,17 @@ import { Button } from "../components/ui/button"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; -import { navigateTo } from "../App"; import { DollarSign, Stethoscope, GraduationCap, ShoppingCart, Monitor, Truck, Factory, Users, Star, ArrowRight, ChevronRight, Clock, TrendingUp, Building, Cpu, Calendar, Eye, Target, Zap, CheckCircle, Lightbulb, Award, Handshake, Heart } from "lucide-react"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -57,7 +58,7 @@ const HeroWithCTA = () => { transition={{ duration: 0.8, delay: 0.3 }} className="flex flex-col sm:flex-row gap-4" > - navigateTo('/contact/schedule-a-discovery-call')}> + navigate('/contact/schedule-a-discovery-call')}>
Discuss Your Industry @@ -67,7 +68,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > View Success Stories @@ -117,6 +118,7 @@ const HeroWithCTA = () => { // Industry Categories Grid const IndustryGrid = () => { + const navigate = useNavigate(); const industries = [ { title: "Financial Services", @@ -228,7 +230,7 @@ const IndustryGrid = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(industry.link)} + onClick={() => navigate(industry.link)} > @@ -369,6 +371,7 @@ const WhyChooseWDI = () => { // Updated CTA Section const InlineCTA = () => { + const navigate = useNavigate(); return (
{/* Add subtle decorative elements matching site theme */} @@ -412,7 +415,7 @@ const InlineCTA = () => {

{/* CTA Button */} - navigateTo('/contact/schedule-a-discovery-call')}> + navigate('/contact/schedule-a-discovery-call')}>
Schedule Industry Consultation @@ -452,7 +455,7 @@ const industriesFAQs = [ export function Industries() { return (
- + {/* */} @@ -463,7 +466,7 @@ export function Industries() { subtitle="Get answers to common questions about our industry-specific solutions and expertise." faqs={industriesFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/LeadershipTeam.tsx b/pages/LeadershipTeam.tsx index 0ee02cf..f24fb87 100644 --- a/pages/LeadershipTeam.tsx +++ b/pages/LeadershipTeam.tsx @@ -4,7 +4,7 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { ArrowRight, Linkedin, Twitter, Mail } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import riteshImage from "../src/images/ritesh-pandey.png"; import manavImage from "../src/images/manav-sain.png"; import sudhirImage from "../src/images/sudhir-malya.jpg"; @@ -14,6 +14,7 @@ import tanveerImage from "../src/images/tanveer.jpg"; import { Helmet } from "react-helmet-async"; export const LeadershipTeam = () => { + const navigate = useNavigate(); const leaders = [ { name: "Ritesh Pandey", @@ -176,7 +177,7 @@ export const LeadershipTeam = () => { `} - + {/* */} {/* Hero Section */}
@@ -372,7 +373,7 @@ export const LeadershipTeam = () => { size="lg" variant="outline" className="border-white/20 text-white hover:bg-white/10" - onClick={() => navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} > Start a Project @@ -381,7 +382,7 @@ export const LeadershipTeam = () => {
-
+ {/*
*/}
); }; diff --git a/pages/LegacySystemRebuilds.tsx b/pages/LegacySystemRebuilds.tsx index 1be2095..fe2213d 100644 --- a/pages/LegacySystemRebuilds.tsx +++ b/pages/LegacySystemRebuilds.tsx @@ -42,11 +42,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Legacy System Rebuilds Hero Section const LegacySystemRebuildsHero = () => { + const navigate = useNavigate(); return (
@@ -137,7 +138,7 @@ const LegacySystemRebuildsHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1249,6 +1250,7 @@ const LegacySystemCaseStudies = () => { // Mid-Page Lead Capture CTA const LegacySystemInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1287,7 +1289,7 @@ const LegacySystemInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1375,6 +1377,7 @@ const LegacySystemFAQs = () => { // Final CTA Section const LegacySystemFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1427,7 +1430,7 @@ const LegacySystemFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1456,7 +1459,7 @@ const LegacySystemFinalCTA = () => { export const LegacySystemRebuilds = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1510,7 +1513,7 @@ export const LegacySystemRebuilds = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/LegacySystemScaling.tsx b/pages/LegacySystemScaling.tsx index bf6e013..5ed4175 100644 --- a/pages/LegacySystemScaling.tsx +++ b/pages/LegacySystemScaling.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "legacy-system-scaling", @@ -255,9 +255,11 @@ export const LegacySystemScaling = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -265,11 +267,11 @@ export const LegacySystemScaling = () => {
{/* Breadcrumb */}
- / - / @@ -437,7 +439,7 @@ export const LegacySystemScaling = () => {
navigateTo(`/articles/${article.id}`)} + onClick={() => navigate(`/articles/${article.id}`)} >
{ @@ -508,7 +510,7 @@ export const LegacySystemScaling = () => { @@ -527,7 +529,7 @@ export const LegacySystemScaling = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/MVPStartupLaunchPackages.tsx b/pages/MVPStartupLaunchPackages.tsx index aaa2a22..3954235 100644 --- a/pages/MVPStartupLaunchPackages.tsx +++ b/pages/MVPStartupLaunchPackages.tsx @@ -37,11 +37,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // MVP & Startup Launch Packages Hero Section const MVPStartupLaunchPackagesHero = () => { + const navigate = useNavigate(); return (
@@ -131,7 +132,7 @@ const MVPStartupLaunchPackagesHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1215,6 +1216,7 @@ const MVPStartupCaseStudies = () => { // Mid-Page Lead Capture CTA const MVPStartupInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1252,7 +1254,7 @@ const MVPStartupInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1339,6 +1341,7 @@ const MVPStartupFAQs = () => { // Final CTA Section const MVPStartupFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1391,7 +1394,7 @@ const MVPStartupFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1420,7 +1423,7 @@ const MVPStartupFinalCTA = () => { export const MVPStartupLaunchPackages = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1474,7 +1477,7 @@ export const MVPStartupLaunchPackages = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/MachineLearning.tsx b/pages/MachineLearning.tsx index 5b7a0e0..4937b09 100644 --- a/pages/MachineLearning.tsx +++ b/pages/MachineLearning.tsx @@ -13,7 +13,6 @@ import { UserPlus, Zap } from "lucide-react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -23,9 +22,11 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -113,8 +114,8 @@ const HeroWithCTA = () => { className="flex flex-col sm:flex-row gap-4" > navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -125,7 +126,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4 h-auto" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > View ML Case Studies @@ -366,6 +367,7 @@ const SideBySideContentWithIcons = () => { // Service Categories Grid const TabbedServiceDisplay = () => { + const navigate = useNavigate(); const services = [ { title: "Custom ML Model Development", @@ -441,7 +443,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(service.link)} + onClick={() => navigate(service.link)} >
@@ -470,6 +472,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -512,8 +515,8 @@ const InlineCTA = () => {
navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -643,7 +646,7 @@ const HireDevelopersSection = () => {
navigateTo(specialist.link)} + // onClick={() => navigate(specialist.link)} >
@@ -689,7 +692,7 @@ const machineLearningFAQs = [ export function MachineLearning() { return (
- + {/* */} @@ -702,7 +705,7 @@ export function MachineLearning() { subtitle="Get answers to common questions about our machine learning services." faqs={machineLearningFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/ManufacturingAutomation.tsx b/pages/ManufacturingAutomation.tsx index 4247a9b..aa381a2 100644 --- a/pages/ManufacturingAutomation.tsx +++ b/pages/ManufacturingAutomation.tsx @@ -402,7 +402,7 @@ const manufacturingAutomationFAQs = [ export const ManufacturingAutomation = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/MedicalComplianceSolutions.tsx b/pages/MedicalComplianceSolutions.tsx index 6d154bb..a3b785e 100644 --- a/pages/MedicalComplianceSolutions.tsx +++ b/pages/MedicalComplianceSolutions.tsx @@ -47,11 +47,12 @@ import { ScrollText, Archive, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Medical Compliance Hero Section const MedicalComplianceHero = () => { + const navigate = useNavigate(); return (
@@ -141,7 +142,7 @@ const MedicalComplianceHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1236,6 +1237,7 @@ const MedicalComplianceTestimonials = () => { // Mid-Page Lead Capture CTA const MedicalComplianceInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1274,7 +1276,7 @@ const MedicalComplianceInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1371,6 +1373,7 @@ const MedicalComplianceFAQs = () => { // Final CTA Section const MedicalComplianceFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1424,7 +1427,7 @@ const MedicalComplianceFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1453,7 +1456,7 @@ const MedicalComplianceFinalCTA = () => { export const MedicalComplianceSolutions = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1507,7 +1510,7 @@ export const MedicalComplianceSolutions = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/MicrolearningApps.tsx b/pages/MicrolearningApps.tsx index 830bc3b..a3bc3a3 100644 --- a/pages/MicrolearningApps.tsx +++ b/pages/MicrolearningApps.tsx @@ -402,7 +402,7 @@ const microlearningFAQs = [ export const MicrolearningApps = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/MigratingToLinear101.tsx b/pages/MigratingToLinear101.tsx index b460789..e6c808b 100644 --- a/pages/MigratingToLinear101.tsx +++ b/pages/MigratingToLinear101.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "migrating-to-linear-101", @@ -169,9 +169,11 @@ export const MigratingToLinear101 = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -179,11 +181,11 @@ export const MigratingToLinear101 = () => {
{/* Breadcrumb */}
- / - / @@ -350,7 +352,7 @@ export const MigratingToLinear101 = () => {
navigateTo(`/insights/${article.id}`)} + onClick={() => navigate(`/insights/${article.id}`)} >
{ @@ -421,7 +423,7 @@ export const MigratingToLinear101 = () => { @@ -440,7 +442,7 @@ export const MigratingToLinear101 = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/MobileAppDevelopment.tsx b/pages/MobileAppDevelopment.tsx index 8659635..35249e4 100644 --- a/pages/MobileAppDevelopment.tsx +++ b/pages/MobileAppDevelopment.tsx @@ -24,7 +24,6 @@ import { Zap } from "lucide-react"; import React from "react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -35,10 +34,12 @@ import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import heroMockupImage from '../src/images/mobile-app-banner.webp'; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section - NEW IMAGE WITH COMPREHENSIVE CSS REQUIREMENTS const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const HeroWithCTA = () => { > navigateTo('/start-a-project')} + onClick={() => navigate('/start-a-project')} >
@@ -146,7 +147,7 @@ const HeroWithCTA = () => { -
@@ -439,7 +441,7 @@ export const OfficeLocations = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/OilGasMonitoringSystems.tsx b/pages/OilGasMonitoringSystems.tsx index e374520..e92422d 100644 --- a/pages/OilGasMonitoringSystems.tsx +++ b/pages/OilGasMonitoringSystems.tsx @@ -402,7 +402,7 @@ const oilGasMonitoringFAQs = [ export const OilGasMonitoringSystems = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/OnDemandServices.tsx b/pages/OnDemandServices.tsx index 48a4528..0c1f129 100644 --- a/pages/OnDemandServices.tsx +++ b/pages/OnDemandServices.tsx @@ -402,7 +402,7 @@ const onDemandServicesFAQs = [ export const OnDemandServices = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/OurHistory.tsx b/pages/OurHistory.tsx index 4acee69..0db08aa 100644 --- a/pages/OurHistory.tsx +++ b/pages/OurHistory.tsx @@ -46,7 +46,7 @@ export const OurHistory = () => { return (
- + {/* */} {/* Hero Section */}
@@ -183,7 +183,7 @@ export const OurHistory = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/PWADevelopment.tsx b/pages/PWADevelopment.tsx index d1cf536..385586b 100644 --- a/pages/PWADevelopment.tsx +++ b/pages/PWADevelopment.tsx @@ -1,4 +1,4 @@ -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { motion } from "framer-motion"; import { ArrowRight, @@ -63,6 +63,7 @@ import HireDeveloperSection from "@/components/HireDeveloperSection"; // PWA Hero Section const PWAHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -153,7 +154,7 @@ const PWAHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1040,6 +1041,8 @@ const PWASuccessStories = () => { return icons[industry as keyof typeof icons] || Building; }; + const navigate = useNavigate(); + return (
@@ -1074,11 +1077,11 @@ const PWASuccessStories = () => { className="group cursor-pointer" onClick={() => { if (study.title === "TradersCircuit") { - navigateTo("/projects/traderscircuit"); + navigate("/projects/traderscircuit"); } else if (study.title === "Prosperty") { - navigateTo("/projects/prosperty"); + navigate("/projects/prosperty"); } else if (study.title === "GoodTimes") { - navigateTo("/projects/goodtimes"); + navigate("/projects/goodtimes"); } }} > @@ -1155,11 +1158,11 @@ const PWASuccessStories = () => { onClick={(e) => { e.stopPropagation(); if (study.title === "TradersCircuit") { - navigateTo("/projects/traderscircuit"); + navigate("/projects/traderscircuit"); } else if (study.title === "Prosperty") { - navigateTo("/projects/prosperty"); + navigate("/projects/prosperty"); } else if (study.title === "GoodTimes") { - navigateTo("/projects/goodtimes"); + navigate("/projects/goodtimes"); } }} > @@ -1180,6 +1183,7 @@ const PWASuccessStories = () => { // Mid-Page CTA const PWAInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1218,7 +1222,7 @@ const PWAInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1308,6 +1312,7 @@ const PWAFAQs = () => { // Final CTA Section const PWAFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1360,7 +1365,7 @@ const PWAFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1389,7 +1394,7 @@ const PWAFinalCTA = () => { export const PWADevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1401,11 +1406,16 @@ export const PWADevelopment = () => {
- {/* How PWAs Work */} + {/* Case Studies */}
- +
+ {/* How PWAs Work */} + {/*
+ +
*/} + {/* Development Process */}
@@ -1421,11 +1431,6 @@ export const PWADevelopment = () => {
- {/* Case Studies */} -
- -
- { {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1471,7 +1476,7 @@ export const PWADevelopment = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/PredictiveAnalyticsForecasting.tsx b/pages/PredictiveAnalyticsForecasting.tsx index a67a104..4c738fa 100644 --- a/pages/PredictiveAnalyticsForecasting.tsx +++ b/pages/PredictiveAnalyticsForecasting.tsx @@ -47,11 +47,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; +import { AIStrategyTargetAudience } from "./AIStrategyConsulting"; // Predictive Analytics & Forecasting Hero Section const PredictiveAnalyticsHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -140,7 +142,7 @@ const PredictiveAnalyticsHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -670,14 +672,12 @@ const PredictiveAnalyticsProcess = () => { whileInView={{ opacity: 1, x: 0 }} transition={{ duration: 0.8, delay: index * 0.2 }} viewport={{ once: true }} - className={`flex items-center ${ - isEven ? "lg:flex-row" : "lg:flex-row-reverse" - } flex-col lg:gap-16 gap-8`} + className={`flex items-center ${isEven ? "lg:flex-row" : "lg:flex-row-reverse" + } flex-col lg:gap-16 gap-8`} >
@@ -1009,10 +1009,9 @@ const PredictiveAnalyticsTechStack = () => { >
@@ -1173,6 +1172,7 @@ const PredictiveAnalyticsCaseStudies = () => { // Mid-Page CTA const PredictiveAnalyticsInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1211,7 +1211,7 @@ const PredictiveAnalyticsInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1476,6 +1476,7 @@ const PredictiveAnalyticsFAQs = () => { // Final CTA Section const PredictiveAnalyticsFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1528,7 +1529,7 @@ const PredictiveAnalyticsFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1558,7 +1559,7 @@ const PredictiveAnalyticsFinalCTA = () => { export const PredictiveAnalyticsForecasting = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1570,6 +1571,11 @@ export const PredictiveAnalyticsForecasting = () => {
+ {/* Tech Stack */} +
+ +
+ {/* Development Process */}
@@ -1580,9 +1586,9 @@ export const PredictiveAnalyticsForecasting = () => {
- {/* Tech Stack */} + {/* Target Audience */}
- +
{/* Case Studies */} @@ -1612,7 +1618,7 @@ export const PredictiveAnalyticsForecasting = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/PressMedia.tsx b/pages/PressMedia.tsx index 5281e0e..b0c34ad 100644 --- a/pages/PressMedia.tsx +++ b/pages/PressMedia.tsx @@ -105,7 +105,7 @@ export const PressMedia = () => { return (
- + {/* */} {/* Hero Section */}
@@ -341,7 +341,7 @@ export const PressMedia = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/ProductModernization.tsx b/pages/ProductModernization.tsx index 5171eff..2f9fb63 100644 --- a/pages/ProductModernization.tsx +++ b/pages/ProductModernization.tsx @@ -44,11 +44,12 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import awsLogo from "../src/images/aws-logo.png"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Product Modernization Hero Section const ModernizationHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -139,7 +140,7 @@ const ModernizationHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1208,6 +1209,7 @@ const ModernizationCaseStudies = () => { // Mid-Page CTA const ModernizationInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1246,7 +1248,7 @@ const ModernizationInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1262,6 +1264,7 @@ const ModernizationInlineCTA = () => { // Hire Modernization Specialists const HireModernizationTalent = () => { + const navigate = useNavigate(); const talentTypes = [ { title: "Software Modernization Architects", @@ -1412,7 +1415,7 @@ const HireModernizationTalent = () => { >
navigateTo("/hire-talent/product-modernization-developers")} + onClick={() => navigate("/hire-talent/product-modernization-developers")} >
@@ -1513,6 +1516,7 @@ const ModernizationFAQs = () => { // Final CTA Section const ModernizationFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1565,7 +1569,7 @@ const ModernizationFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1594,7 +1598,7 @@ const ModernizationFinalCTA = () => { export const ProductModernization = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1606,6 +1610,11 @@ export const ProductModernization = () => {
+ {/* Case Studies */} +
+ +
+ {/* Modernization Process */}
@@ -1621,15 +1630,10 @@ export const ProductModernization = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Talent */}
@@ -1637,9 +1641,9 @@ export const ProductModernization = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1647,8 +1651,8 @@ export const ProductModernization = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/ProspertyProject.tsx b/pages/ProspertyProject.tsx index 2d7ae09..ad56b0b 100644 --- a/pages/ProspertyProject.tsx +++ b/pages/ProspertyProject.tsx @@ -5,7 +5,7 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { GridPattern } from "../components/GridPattern"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; const projectMetrics = [ { @@ -101,9 +101,10 @@ const processPhases = [ ]; export const ProspertyProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -119,7 +120,7 @@ export const ProspertyProject = () => { > @@ -388,7 +389,7 @@ export const ProspertyProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/RanOutOfProject.tsx b/pages/RanOutOfProject.tsx index 75d4972..72012c7 100644 --- a/pages/RanOutOfProject.tsx +++ b/pages/RanOutOfProject.tsx @@ -32,13 +32,13 @@ import { Wrench, Zap } from "lucide-react"; -import { navigateTo } from "../App"; import { Footer } from "../components/Footer"; import { GridPattern } from "../components/GridPattern"; import { Navigation } from "../components/Navigation"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; import { Button } from "../components/ui/button"; import ranoutofLogo from "../src/images/ranoutof-logo.webp"; +import { useNavigate } from "react-router-dom"; // Technology to icon mapping const getTechIcon = (tech: string) => { @@ -212,10 +212,12 @@ const futureRoadmap = [ } ]; + export const RanOutOfProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Section 1: Hero with Heading, Subheading, and Image */}
@@ -231,7 +233,7 @@ export const RanOutOfProject = () => { >
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/RealEstateTech.tsx b/pages/RealEstateTech.tsx index 77b4b10..2c6c820 100644 --- a/pages/RealEstateTech.tsx +++ b/pages/RealEstateTech.tsx @@ -41,11 +41,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Real Estate Tech Hero Section const RealEstateTechHero = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const RealEstateTechHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1235,6 +1236,7 @@ const RealEstateTechTestimonials = () => { // Mid-Page Lead Capture CTA const RealEstateTechInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1273,7 +1275,7 @@ const RealEstateTechInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1369,6 +1371,7 @@ const RealEstateTechFAQs = () => { // Final CTA Section const RealEstateTechFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1422,7 +1425,7 @@ const RealEstateTechFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1451,7 +1454,7 @@ const RealEstateTechFinalCTA = () => { export const RealEstateTech = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1505,7 +1508,7 @@ export const RealEstateTech = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/RecommendationEngines.tsx b/pages/RecommendationEngines.tsx index 1aab912..6fa0a72 100644 --- a/pages/RecommendationEngines.tsx +++ b/pages/RecommendationEngines.tsx @@ -49,11 +49,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; +import { AIStrategyTargetAudience } from "./AIStrategyConsulting"; // Personalized Recommendation Engines Hero Section const RecommendationEnginesHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -65,7 +67,7 @@ const RecommendationEnginesHeroWithCTA = () => { /> {/* Canonical Link */} - + {/* Open Graph Tags (for Facebook, LinkedIn) */} @@ -133,7 +135,7 @@ const RecommendationEnginesHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -623,14 +625,12 @@ const RecommendationProcess = () => { whileInView={{ opacity: 1, x: 0 }} transition={{ duration: 0.8, delay: index * 0.2 }} viewport={{ once: true }} - className={`flex items-center ${ - isEven ? "lg:flex-row" : "lg:flex-row-reverse" - } flex-col lg:gap-16 gap-8`} + className={`flex items-center ${isEven ? "lg:flex-row" : "lg:flex-row-reverse" + } flex-col lg:gap-16 gap-8`} >
@@ -942,10 +942,9 @@ const RecommendationTechStack = () => { >
@@ -1106,6 +1105,7 @@ const RecommendationCaseStudies = () => { // Mid-Page Lead Capture CTA const RecommendationInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1146,7 +1146,7 @@ const RecommendationInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1390,6 +1390,7 @@ const RecommendationFAQs = () => { // Final CTA Section const RecommendationFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1443,7 +1444,7 @@ const RecommendationFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1473,7 +1474,7 @@ const RecommendationFinalCTA = () => { export const RecommendationEngines = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1485,6 +1486,11 @@ export const RecommendationEngines = () => {
+ {/* Tech Stack */} +
+ +
+ {/* Process */}
@@ -1495,9 +1501,9 @@ export const RecommendationEngines = () => {
- {/* Tech Stack */} + {/* Target Audience */}
- +
{/* Case Studies */} @@ -1527,7 +1533,7 @@ export const RecommendationEngines = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/RegroupProject.tsx b/pages/RegroupProject.tsx index 3bf6e03..07537ba 100644 --- a/pages/RegroupProject.tsx +++ b/pages/RegroupProject.tsx @@ -5,8 +5,8 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { GridPattern } from "../components/GridPattern"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; -import { navigateTo } from "../App"; import regroupImage from "../src/images/regroup.webp"; +import { useNavigate } from "react-router-dom"; const projectMetrics = [ { @@ -101,10 +101,12 @@ const processPhases = [ } ]; + export const RegroupProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -120,7 +122,7 @@ export const RegroupProject = () => { > @@ -393,7 +395,7 @@ export const RegroupProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/RequestProposal.tsx b/pages/RequestProposal.tsx index 6f6b2db..1ecf1c8 100644 --- a/pages/RequestProposal.tsx +++ b/pages/RequestProposal.tsx @@ -37,7 +37,7 @@ export const RequestProposal = () => { return (
- + {/* */}
@@ -208,7 +208,7 @@ export const RequestProposal = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/Resources.tsx b/pages/Resources.tsx index fdd143e..bfc6620 100644 --- a/pages/Resources.tsx +++ b/pages/Resources.tsx @@ -11,16 +11,17 @@ import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "../components/ui/accordion"; import { GridPattern } from "../components/GridPattern"; -import { navigateTo } from "../App"; import { BookOpen, FileText, Star, FileCheck, HelpCircle, ArrowRight, Download, Calendar, Users, TrendingUp, MessageSquare, Brain, Award, Target, Globe, Heart, Shield, Eye, CheckCircle, Lightbulb, Coffee, Monitor, Smartphone, Rocket } from "lucide-react"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -106,7 +107,7 @@ const HeroWithCTA = () => { transition={{ duration: 0.8, delay: 0.3 }} className="flex flex-col sm:flex-row gap-4" > - navigateTo('/resources/blog')}> + navigate('/resources/blog')}>
Explore Our Blog @@ -116,7 +117,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4 h-auto" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > View Case Studies @@ -388,6 +389,7 @@ const TabbedServiceDisplay = () => { } ]; + const navigate = useNavigate(); return (
@@ -424,7 +426,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(resource.link)} + onClick={() => navigate(resource.link)} >
@@ -453,6 +455,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -495,7 +498,7 @@ const InlineCTA = () => {
navigateTo('/resources/whitepapers-insights')} + onClick={() => navigate('/resources/whitepapers-insights')} >
@@ -556,6 +559,8 @@ const FeaturedContentSection = () => { } ]; + const navigate = useNavigate(); + return (
@@ -621,7 +626,7 @@ const FeaturedContentSection = () => {
navigateTo(item.link)} + onClick={() => navigate(item.link)} >
@@ -667,7 +672,7 @@ const resourcesFAQs = [ export function Resources() { return (
- + {/* */} @@ -680,7 +685,7 @@ export function Resources() { subtitle="Get answers to common questions about our resource library and content." faqs={resourcesFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/SaaSProductEngineering.tsx b/pages/SaaSProductEngineering.tsx index c6c8597..ab78a1c 100644 --- a/pages/SaaSProductEngineering.tsx +++ b/pages/SaaSProductEngineering.tsx @@ -38,12 +38,13 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import awsLogo from "../src/images/aws-logo.png"; import { Helmet } from "react-helmet-async"; // SaaS Product Engineering Hero Section const SaaSHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -134,7 +135,7 @@ const SaaSHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1238,6 +1239,7 @@ const SaaSCaseStudies = () => { // Mid-Page CTA const SaaSInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1275,7 +1277,7 @@ const SaaSInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1340,6 +1342,7 @@ const HireSaaSDevelopers = () => { ], }, ]; + const navigate = useNavigate(); return (
@@ -1422,7 +1425,7 @@ const HireSaaSDevelopers = () => { >
navigateTo("/hire-talent/saas-product-developers")} + onClick={() => navigate("/hire-talent/saas-product-developers")} >
@@ -1520,6 +1523,7 @@ const SaaSFAQs = () => { // Final CTA Section const SaaSFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1572,7 +1576,7 @@ const SaaSFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1601,7 +1605,7 @@ const SaaSFinalCTA = () => { export const SaaSProductEngineering = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1613,6 +1617,11 @@ export const SaaSProductEngineering = () => {
+ {/* Case Studies */} +
+ +
+ {/* Development Process */}
@@ -1628,15 +1637,10 @@ export const SaaSProductEngineering = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Developers */}
@@ -1644,9 +1648,9 @@ export const SaaSProductEngineering = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1654,8 +1658,8 @@ export const SaaSProductEngineering = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/ScheduleDiscoveryCall.tsx b/pages/ScheduleDiscoveryCall.tsx index 7301a99..0a97b31 100644 --- a/pages/ScheduleDiscoveryCall.tsx +++ b/pages/ScheduleDiscoveryCall.tsx @@ -8,7 +8,7 @@ import { Input } from "../components/ui/input"; import { Textarea } from "../components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../components/ui/select"; import { Calendar, Clock, Video, Phone, MessageSquare, ArrowRight, CheckCircle, User, Mail, Building2, Target, Users, Lightbulb, TrendingUp } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; export const ScheduleDiscoveryCall = () => { const [selectedDate, setSelectedDate] = useState(""); @@ -120,9 +120,11 @@ export const ScheduleDiscoveryCall = () => { const selectedExpertData = selectedExpert && selectedExpert !== "any" ? experts.find(expert => expert.id === selectedExpert) : null; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -476,7 +478,7 @@ export const ScheduleDiscoveryCall = () => {

-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/SeezunProject.tsx b/pages/SeezunProject.tsx index faf7401..f171273 100644 --- a/pages/SeezunProject.tsx +++ b/pages/SeezunProject.tsx @@ -5,8 +5,8 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { GridPattern } from "../components/GridPattern"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; -import { navigateTo } from "../App"; import seezunImage from "../src/images/seezun.webp"; +import { useNavigate } from "react-router-dom"; const projectMetrics = [ { @@ -101,10 +101,12 @@ const processPhases = [ } ]; + export const SeezunProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -120,7 +122,7 @@ export const SeezunProject = () => { > @@ -389,7 +391,7 @@ export const SeezunProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/SendYourCV.tsx b/pages/SendYourCV.tsx index 08ffade..e79357b 100644 --- a/pages/SendYourCV.tsx +++ b/pages/SendYourCV.tsx @@ -9,7 +9,7 @@ import { Textarea } from "../components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../components/ui/select"; import { Checkbox } from "../components/ui/checkbox"; import { UserPlus, Upload, Send, ArrowRight, Users, Briefcase, Target, Award, CheckCircle, FileText } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; export const SendYourCV = () => { const [formData, setFormData] = useState({ @@ -23,6 +23,8 @@ export const SendYourCV = () => { consent: false }); + const navigate = useNavigate(); + const [uploadedFile, setUploadedFile] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); @@ -121,7 +123,7 @@ export const SendYourCV = () => { return (
- + {/* */} {/* Hero Section */}
@@ -427,11 +429,11 @@ export const SendYourCV = () => { Want to see our current openings or learn more about our company culture? Check out our careers section.

- -
@@ -439,7 +441,7 @@ export const SendYourCV = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/Services.tsx b/pages/Services.tsx index b58916e..7b1accc 100644 --- a/pages/Services.tsx +++ b/pages/Services.tsx @@ -16,7 +16,6 @@ import { TrendingUp, Users } from "lucide-react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -25,9 +24,11 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -115,8 +116,8 @@ const HeroWithCTA = () => { className="flex flex-col sm:flex-row gap-4" > navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -127,7 +128,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4 h-auto" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > View Our Work @@ -406,6 +407,8 @@ const TabbedServiceDisplay = () => { } ]; + const navigate = useNavigate(); + return (
@@ -442,7 +445,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(service.link)} + onClick={() => navigate(service.link)} >
@@ -476,6 +479,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -518,7 +522,7 @@ const InlineCTA = () => {
navigateTo('/contact/schedule-a-discovery-call')} + onClick={() => navigate('/contact/schedule-a-discovery-call')} >
@@ -565,7 +569,7 @@ const servicesFAQs = [ export function Services() { return (
- + {/* */} @@ -577,7 +581,7 @@ export function Services() { subtitle="Get answers to common questions about our comprehensive service offerings." faqs={servicesFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/SimpliTendProject.tsx b/pages/SimpliTendProject.tsx index 29dc5dc..b5c12c3 100644 --- a/pages/SimpliTendProject.tsx +++ b/pages/SimpliTendProject.tsx @@ -5,15 +5,16 @@ import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { ArrowRight, Calendar, Users, Smartphone, Shield, Check, Star, TrendingUp, Heart, Bell, MapPin, User, Clock, Target, Zap, Database, Globe, Lock, Activity, AlertCircle } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; // import simplitendImage from "figma:asset/b921f42de70695ee319496c3c3eee9a961c5297b.png"; const simplitendImage = "https://via.placeholder.com/600x600.png?text=SimpliTend+App+Image"; export const SimpliTendProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -90,7 +91,7 @@ export const SimpliTendProject = () => { @@ -608,7 +609,7 @@ export const SimpliTendProject = () => { @@ -626,7 +627,7 @@ export const SimpliTendProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/SocialPlatformsNetworks.tsx b/pages/SocialPlatformsNetworks.tsx index d4f2f9c..24630b0 100644 --- a/pages/SocialPlatformsNetworks.tsx +++ b/pages/SocialPlatformsNetworks.tsx @@ -402,7 +402,7 @@ const socialPlatformFAQs = [ export const SocialPlatformsNetworks = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/SoftwareEngineering.tsx b/pages/SoftwareEngineering.tsx index adfb3b6..852ca79 100644 --- a/pages/SoftwareEngineering.tsx +++ b/pages/SoftwareEngineering.tsx @@ -15,7 +15,6 @@ import { UserPlus, Zap, } from "lucide-react"; -import { navigateTo } from "../App"; import { FAQSection } from "../components/FAQSection"; import { Footer } from "../components/Footer"; import { Navigation } from "../components/Navigation"; @@ -25,9 +24,11 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -119,8 +120,8 @@ const HeroWithCTA = () => { > navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -131,7 +132,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4 h-auto" - onClick={() => navigateTo("/case-studies")} + onClick={() => navigate("/case-studies")} > View Case Studies @@ -444,6 +445,8 @@ const TabbedServiceDisplay = () => { }, ]; + const navigate = useNavigate(); + return (
@@ -481,7 +484,7 @@ const TabbedServiceDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(service.link)} + onClick={() => navigate(service.link)} >
@@ -510,6 +513,7 @@ const TabbedServiceDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -557,8 +561,8 @@ const InlineCTA = () => {
navigateTo('/contact/schedule-a-discovery-call')} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate('/contact/schedule-a-discovery-call')} + onClick={() => navigate("/start-a-project")} >
@@ -616,6 +620,8 @@ const HireDevelopersSection = () => { }, ]; + const navigate = useNavigate(); + return (
@@ -698,7 +704,7 @@ const HireDevelopersSection = () => {
navigateTo(specialist.link)} + onClick={() => navigate(specialist.link)} >
@@ -749,7 +755,7 @@ const softwareEngineeringFAQs = [ export function SoftwareEngineering() { return (
- + {/* */} @@ -762,7 +768,7 @@ export function SoftwareEngineering() { subtitle="Get answers to common questions about our software engineering services." faqs={softwareEngineeringFAQs} /> -
+ {/*
*/}
); } diff --git a/pages/Solutions.tsx b/pages/Solutions.tsx index f291ca9..009f3e7 100644 --- a/pages/Solutions.tsx +++ b/pages/Solutions.tsx @@ -1,31 +1,31 @@ -import React from "react"; import { motion } from "framer-motion"; -import { Navigation } from "../components/Navigation"; -import { Footer } from "../components/Footer"; -import { ProcessSection } from "../components/ProcessSection"; -import { FAQSection } from "../components/FAQSection"; -import { AnimatedGradientText } from "../components/AnimatedGradientText"; -import { Button } from "../components/ui/button"; -import { ShimmerButton } from "../components/ui/shimmer-button"; -import { Badge } from "../components/ui/badge"; -import { Card, CardContent } from "../components/ui/card"; -import { GridPattern } from "../components/GridPattern"; -import { navigateTo } from "../App"; -import { - Rocket, Target, Building, Zap, Shield, Users, Star, - ArrowRight, ChevronRight, Clock, TrendingUp, Layers, - Layout, Monitor, Lock, RefreshCcw, ShieldCheck, - MessageSquare, Heart, CheckCircle, Lightbulb, Coffee, - Download, Calendar, Camera, Music, Gamepad2, - CreditCard, Bell, Mail, Search, Home, MapPin, - Github, Slack, Figma, Chrome, ZapIcon, Video, MessageCircle, - Cog, Settings, Sparkles, Handshake, Eye, Award, UserPlus, - Bot, Server, Database, Briefcase, Factory, Cpu, - PieChart, BarChart3, Workflow, Wrench, Gauge +import { + Building, + Calendar, + CheckCircle, + ChevronRight, + Eye, + Handshake, + Lightbulb, + RefreshCcw, + Rocket, + Shield, + Target, + TrendingUp, + Workflow } from "lucide-react"; +import { FAQSection } from "../components/FAQSection"; +import { Footer } from "../components/Footer"; +import { Navigation } from "../components/Navigation"; +import { ProcessSection } from "../components/ProcessSection"; +import { Button } from "../components/ui/button"; +import { Card, CardContent } from "../components/ui/card"; +import { ShimmerButton } from "../components/ui/shimmer-button"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -65,7 +65,7 @@ const HeroWithCTA = () => { transition={{ duration: 0.8, delay: 0.3 }} className="flex flex-col sm:flex-row gap-4" > - navigateTo('/contact/schedule-a-discovery-call')}> + navigate('/contact/schedule-a-discovery-call')}>
Schedule Strategy Call @@ -75,7 +75,7 @@ const HeroWithCTA = () => { variant="secondary" size="lg" className="text-lg px-8 py-4" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > Success Stories @@ -360,6 +360,8 @@ const TabbedSolutionDisplay = () => { } ]; + const navigate = useNavigate(); + return (
@@ -396,7 +398,7 @@ const TabbedSolutionDisplay = () => { viewport={{ once: true }} whileHover={{ y: -5 }} className="group cursor-pointer" - onClick={() => navigateTo(solution.link)} + onClick={() => navigate(solution.link)} >
@@ -440,6 +442,7 @@ const TabbedSolutionDisplay = () => { // Updated CTA Section with new design const InlineCTA = () => { + const navigate = useNavigate(); return (
@@ -482,7 +485,7 @@ const InlineCTA = () => {
navigateTo('/contact/schedule-a-discovery-call')} + onClick={() => navigate('/contact/schedule-a-discovery-call')} >
@@ -529,7 +532,7 @@ const solutionsFAQs = [ export function Solutions() { return (
- + {/* */} @@ -541,7 +544,7 @@ export function Solutions() { subtitle="Get answers to common questions about our strategic business solutions." faqs={solutionsFAQs} /> -
+ {/*
*/}
); } \ No newline at end of file diff --git a/pages/SportsFanEngagement.tsx b/pages/SportsFanEngagement.tsx index 46a55f3..a698b15 100644 --- a/pages/SportsFanEngagement.tsx +++ b/pages/SportsFanEngagement.tsx @@ -402,7 +402,7 @@ const sportsFanEngagementFAQs = [ export const SportsFanEngagement = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/StartAProject.tsx b/pages/StartAProject.tsx index d60735c..5ade7b3 100644 --- a/pages/StartAProject.tsx +++ b/pages/StartAProject.tsx @@ -22,7 +22,6 @@ import { GridPattern } from "../components/GridPattern"; import CustomReCaptcha, { ReCaptchaRef } from "../components/CustomReCaptcha"; import { useStoreContactUsMutation } from "@/src/services/storeContactUs"; import { useNavigate } from "react-router-dom"; -import { navigateTo } from "@/App"; import * as Yup from "yup"; import { Rocket, @@ -152,6 +151,7 @@ const ProjectFormSection = () => { const [recaptchaToken, setRecaptchaToken] = useState(""); const recaptchaRef = useRef(null); const [submitContactForm, { isLoading }] = useStoreContactUsMutation(); + const navigate = useNavigate(); const handleBlur = (field: string) => { setTouched({ ...touched, [field]: true }); @@ -280,7 +280,7 @@ const ProjectFormSection = () => { setIsRecaptchaVerified(false); setRecaptchaToken(""); - navigateTo("/thank-you"); + navigate("/thank-you"); } catch (error) { console.error("Form submission error:", error); alert("Failed to submit the form. Please try again."); @@ -826,7 +826,7 @@ const VisionSection = () => {
); }; \ No newline at end of file diff --git a/pages/SystemArchitectureDevOps.tsx b/pages/SystemArchitectureDevOps.tsx index 54650ac..dae197f 100644 --- a/pages/SystemArchitectureDevOps.tsx +++ b/pages/SystemArchitectureDevOps.tsx @@ -45,11 +45,12 @@ import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; import awsLogo from "../src/images/aws-logo.png"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // System Architecture & DevOps Hero Section const DevOpsHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -140,7 +141,7 @@ const DevOpsHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1397,6 +1398,7 @@ const DevOpsCaseStudies = () => { // Mid-Page CTA const DevOpsInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1435,7 +1437,7 @@ const DevOpsInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1520,6 +1522,8 @@ const HireDevOpsTalent = () => { }, ]; + const navigate = useNavigate(); + return (
@@ -1601,7 +1605,7 @@ const HireDevOpsTalent = () => { >
navigateTo("/hire-talent/system-architecture-developers")} + onClick={() => navigate("/hire-talent/system-architecture-developers")} >
@@ -1699,6 +1703,7 @@ const DevOpsFAQs = () => { // Final CTA Section const DevOpsFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1751,7 +1756,7 @@ const DevOpsFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1780,7 +1785,7 @@ const DevOpsFinalCTA = () => { export const SystemArchitectureDevOps = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1792,6 +1797,11 @@ export const SystemArchitectureDevOps = () => {
+ {/* Case Studies */} +
+ +
+ {/* Development Process */}
@@ -1807,15 +1817,10 @@ export const SystemArchitectureDevOps = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Talent */}
@@ -1823,9 +1828,9 @@ export const SystemArchitectureDevOps = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1833,8 +1838,8 @@ export const SystemArchitectureDevOps = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/TanamiProject.tsx b/pages/TanamiProject.tsx index dd43f05..4dc249c 100644 --- a/pages/TanamiProject.tsx +++ b/pages/TanamiProject.tsx @@ -5,8 +5,8 @@ import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { GridPattern } from "../components/GridPattern"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; -import { navigateTo } from "../App"; import tanamiImage from "../src/images/tanami.webp"; +import { useNavigate } from "react-router-dom"; const projectMetrics = [ { @@ -101,10 +101,12 @@ const processPhases = [ } ]; + export const TanamiProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -120,7 +122,7 @@ export const TanamiProject = () => { > @@ -389,7 +391,7 @@ export const TanamiProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/TeamAugmentationServices.tsx b/pages/TeamAugmentationServices.tsx index 5b103f8..52dcaac 100644 --- a/pages/TeamAugmentationServices.tsx +++ b/pages/TeamAugmentationServices.tsx @@ -23,7 +23,7 @@ import { Settings, UserPlus, } from "lucide-react"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import { DeveloperSkillsVector } from "@/components/vectors"; import { HireTalentHeroBanner } from "@/components/HireTalentHeroBanner"; @@ -201,9 +201,11 @@ export const TeamAugmentationServices = () => { }, ]; + const navigate = useNavigate(); + return (
- + {/* */} {/* Page Title and Meta Description */} @@ -565,7 +567,7 @@ export const TeamAugmentationServices = () => {
-
+ {/*
*/}
); }; diff --git a/pages/ThankYou.tsx b/pages/ThankYou.tsx index 3835d58..fd773e7 100644 --- a/pages/ThankYou.tsx +++ b/pages/ThankYou.tsx @@ -4,7 +4,7 @@ import { Navigation } from "../components/Navigation"; import { Footer } from "../components/Footer"; import { Button } from "../components/ui/button"; import { CheckCircle, ArrowRight, FileText, Eye } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; // Smooth scroll to top function const scrollToTop = () => { @@ -28,9 +28,11 @@ export const ThankYou = () => { return () => clearTimeout(scrollTimeout); }, []); + const navigate = useNavigate(); + return (
- + {/* */} {/* Thank You Section */}
@@ -98,7 +100,7 @@ export const ThankYou = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/ThirdPartyIntegrations.tsx b/pages/ThirdPartyIntegrations.tsx index b82de5d..df5e16b 100644 --- a/pages/ThirdPartyIntegrations.tsx +++ b/pages/ThirdPartyIntegrations.tsx @@ -44,11 +44,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // Third-Party Integrations Hero Section const IntegrationsHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -139,7 +140,7 @@ const IntegrationsHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1268,6 +1269,7 @@ const IntegrationCaseStudies = () => { // Mid-Page CTA const IntegrationInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1306,7 +1308,7 @@ const IntegrationInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1391,6 +1393,7 @@ const HireIntegrationTalent = () => { }, ]; + const navigate = useNavigate(); return (
@@ -1472,7 +1475,7 @@ const HireIntegrationTalent = () => { >
navigateTo("/hire-talent/third-party-integration-developers")} + onClick={() => navigate("/hire-talent/third-party-integration-developers")} >
@@ -1570,6 +1573,7 @@ const IntegrationFAQs = () => { // Final CTA Section const IntegrationFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1622,7 +1626,7 @@ const IntegrationFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1651,7 +1655,7 @@ const IntegrationFinalCTA = () => { export const ThirdPartyIntegrations = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1663,6 +1667,11 @@ export const ThirdPartyIntegrations = () => {
+ {/* Case Studies */} +
+ +
+ {/* Integration Process */}
@@ -1678,15 +1687,10 @@ export const ThirdPartyIntegrations = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Talent */}
@@ -1694,9 +1698,9 @@ export const ThirdPartyIntegrations = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1704,8 +1708,8 @@ export const ThirdPartyIntegrations = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/TradersCircuitProject.tsx b/pages/TradersCircuitProject.tsx index 46cf508..9dafa56 100644 --- a/pages/TradersCircuitProject.tsx +++ b/pages/TradersCircuitProject.tsx @@ -2,13 +2,13 @@ import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import { motion } from "framer-motion"; import { Activity, ArrowLeft, ArrowRight, BarChart3, Brain, Building2, Calendar, CheckCircle, Clock, Cloud, Code, Database, ExternalLink, Globe, Layers, Monitor, RefreshCw, Server, Shield, Smartphone, Star, Target, TrendingUp, Users, Wrench, Zap } from "lucide-react"; -import { navigateTo } from "../App"; import { Footer } from "../components/Footer"; import { GridPattern } from "../components/GridPattern"; import { Navigation } from "../components/Navigation"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; import { Button } from "../components/ui/button"; import tradersCircuitLogo from "../src/images/traders-circuit-logo.webp"; +import { useNavigate } from "react-router-dom"; // Technology to icon mapping const getTechIcon = (tech: string) => { @@ -202,10 +202,12 @@ const futureRoadmap = [ } ]; + export const TradersCircuitProject = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Section 1: Hero with Heading, Subheading, and Image */}
@@ -221,7 +223,7 @@ export const TradersCircuitProject = () => { > @@ -1058,7 +1060,7 @@ export const TradersCircuitProject = () => { variant="outline" size="lg" className="border-border hover:bg-card/50 px-8 py-4 rounded-xl text-lg" - onClick={() => navigateTo('/case-studies')} + onClick={() => navigate('/case-studies')} > View More Case Studies @@ -1067,7 +1069,7 @@ export const TradersCircuitProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/TransportationApps.tsx b/pages/TransportationApps.tsx index 48d21fa..6b06640 100644 --- a/pages/TransportationApps.tsx +++ b/pages/TransportationApps.tsx @@ -402,7 +402,7 @@ const transportationAppFAQs = [ export const TransportationApps = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/TravelBookingSystems.tsx b/pages/TravelBookingSystems.tsx index 35ef3a8..2b7097f 100644 --- a/pages/TravelBookingSystems.tsx +++ b/pages/TravelBookingSystems.tsx @@ -466,7 +466,7 @@ const travelBookingFAQs = [ export const TravelBookingSystems = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; diff --git a/pages/UIUXDesign.tsx b/pages/UIUXDesign.tsx index e757998..fd5841f 100644 --- a/pages/UIUXDesign.tsx +++ b/pages/UIUXDesign.tsx @@ -39,11 +39,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // UI/UX Design Hero Section const UIUXHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -133,7 +134,7 @@ const UIUXHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -992,6 +993,7 @@ const DesignToolsMethodologies = () => { // Mid-Page CTA const UIUXInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1030,7 +1032,7 @@ const UIUXInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1105,6 +1107,8 @@ const HireUIUXDesigners = () => { }, ]; + const navigate = useNavigate(); + return (
@@ -1186,7 +1190,7 @@ const HireUIUXDesigners = () => { >
navigateTo("/hire-talent/ui-ux-designers")} + onClick={() => navigate("/hire-talent/ui-ux-designers")} >
@@ -1283,6 +1287,7 @@ const UIUXFAQs = () => { // Final CTA Section const UIUXFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1335,7 +1340,7 @@ const UIUXFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1364,7 +1369,7 @@ const UIUXFinalCTA = () => { export const UIUXDesign = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1376,6 +1381,11 @@ export const UIUXDesign = () => {
+ {/* Featured Case Studies - NEW SECTION */} +
+ +
+ {/* Design Process */}
@@ -1391,15 +1401,10 @@ export const UIUXDesign = () => {
- {/* Featured Case Studies - NEW SECTION */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Designers */}
@@ -1407,9 +1412,9 @@ export const UIUXDesign = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1417,8 +1422,8 @@ export const UIUXDesign = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/UXReviewPresentations.tsx b/pages/UXReviewPresentations.tsx index ef2396f..121230d 100644 --- a/pages/UXReviewPresentations.tsx +++ b/pages/UXReviewPresentations.tsx @@ -7,8 +7,8 @@ import { Card, CardContent } from "../components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"; import { Separator } from "../components/ui/separator"; import { Calendar, Clock, User, ArrowRight, Share2, Linkedin, Twitter, ExternalLink, Tag } from "lucide-react"; -import { navigateTo } from "../App"; import { ImageWithFallback } from "../components/figma/ImageWithFallback"; +import { useNavigate } from "react-router-dom"; const articleData = { id: "ux-review-presentations", @@ -125,9 +125,11 @@ export const UXReviewPresentations = () => { } }; + const navigate = useNavigate(); + return (
- + {/* */} {/* Hero Section */}
@@ -135,11 +137,11 @@ export const UXReviewPresentations = () => {
{/* Breadcrumb */}
- / - / @@ -306,7 +308,7 @@ export const UXReviewPresentations = () => {
navigateTo(`/insights/${article.id}`)} + onClick={() => navigate(`/insights/${article.id}`)} >
{ @@ -377,7 +379,7 @@ export const UXReviewPresentations = () => { @@ -396,7 +398,7 @@ export const UXReviewPresentations = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/UserResearchTesting.tsx b/pages/UserResearchTesting.tsx index 6e2fabf..ef3cf57 100644 --- a/pages/UserResearchTesting.tsx +++ b/pages/UserResearchTesting.tsx @@ -37,11 +37,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // User Research & Testing Hero Section const ResearchHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -127,7 +128,7 @@ const ResearchHeroWithCTA = () => { className="flex flex-col sm:flex-row gap-4" > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -887,6 +888,7 @@ const ResearchCaseStudies = () => { // Mid-Page CTA const ResearchInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -921,7 +923,7 @@ const ResearchInlineCTA = () => {

navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -976,6 +978,8 @@ const HireResearchers = () => { } ]; + const navigate = useNavigate(); + return (
@@ -1050,7 +1054,7 @@ const HireResearchers = () => { >
navigateTo("/hire-talent/user-research-testing-developers")} + onClick={() => navigate("/hire-talent/user-research-testing-developers")} >
@@ -1141,6 +1145,7 @@ const ResearchFAQs = () => { // Final CTA Section const ResearchFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1189,7 +1194,7 @@ const ResearchFinalCTA = () => { className="space-y-8" > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1218,7 +1223,7 @@ const ResearchFinalCTA = () => { export const UserResearchTesting = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1229,6 +1234,11 @@ export const UserResearchTesting = () => {
+ + {/* Case Studies */} +
+ +
{/* Research Process */}
@@ -1245,15 +1255,10 @@ export const UserResearchTesting = () => {
- {/* Case Studies */} -
- -
- {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* Hire Researchers */}
@@ -1261,9 +1266,9 @@ export const UserResearchTesting = () => {
{/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1271,8 +1276,8 @@ export const UserResearchTesting = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/VIB360Project.tsx b/pages/VIB360Project.tsx index 668fed2..7b7fbda 100644 --- a/pages/VIB360Project.tsx +++ b/pages/VIB360Project.tsx @@ -5,15 +5,16 @@ import { Button } from "../components/ui/button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { ArrowRight, Calendar, Users, Smartphone, Globe, Monitor, Check, Star, TrendingUp, Factory, Shield, Zap, Settings, Target, AlertCircle, Clock, Database, Wifi, BarChart3, Bell, Activity, Wrench, Brain } from "lucide-react"; -import { navigateTo } from "../App"; +import { useNavigate } from "react-router-dom"; // import vib360Image from "figma:asset/6e4d0e4c1e2f3a4b5c6d7e8f9g0h1i2j3k4l5m6n7o8p9q0r1s2t.png"; const vib360Image = "https://via.placeholder.com/600x600.png?text=VIB360+Platform+Image"; export const VIB360Project = () => { + const navigate = useNavigate(); return (
- + {/* */} {/* Hero Section */}
@@ -90,7 +91,7 @@ export const VIB360Project = () => { @@ -613,7 +614,7 @@ export const VIB360Project = () => { @@ -631,7 +632,7 @@ export const VIB360Project = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/VirtualClassroomsLMS.tsx b/pages/VirtualClassroomsLMS.tsx index d4b9526..bd2f0a0 100644 --- a/pages/VirtualClassroomsLMS.tsx +++ b/pages/VirtualClassroomsLMS.tsx @@ -402,7 +402,7 @@ const virtualClassroomFAQs = [ export const VirtualClassroomsLMS = () => { return (
- + {/* */} {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/WealthTechPlatforms.tsx b/pages/WealthTechPlatforms.tsx index a2fb2f9..f2acf71 100644 --- a/pages/WealthTechPlatforms.tsx +++ b/pages/WealthTechPlatforms.tsx @@ -39,11 +39,12 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; // WealthTech Platforms Hero Section const WealthTechPlatformsHero = () => { + const navigate = useNavigate(); return (
@@ -134,7 +135,7 @@ const WealthTechPlatformsHero = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1255,6 +1256,7 @@ const WealthTechPlatformsTestimonials = () => { // Mid-Page Lead Capture CTA const WealthTechPlatformsInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1293,7 +1295,7 @@ const WealthTechPlatformsInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1394,6 +1396,7 @@ const WealthTechPlatformsFAQs = () => { // Final CTA Section const WealthTechPlatformsFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1447,7 +1450,7 @@ const WealthTechPlatformsFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1476,7 +1479,7 @@ const WealthTechPlatformsFinalCTA = () => { export const WealthTechPlatforms = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1530,7 +1533,7 @@ export const WealthTechPlatforms = () => { {/* Footer */}
-
+ {/*
*/}
); diff --git a/pages/WearableDeviceDevelopment.tsx b/pages/WearableDeviceDevelopment.tsx index f98aaf4..70d0202 100644 --- a/pages/WearableDeviceDevelopment.tsx +++ b/pages/WearableDeviceDevelopment.tsx @@ -39,13 +39,14 @@ import { Badge } from "../components/ui/badge"; import { Button } from "../components/ui/button"; import { Card, CardContent } from "../components/ui/card"; import { ShimmerButton } from "../components/ui/shimmer-button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet-async"; import HireDeveloperSection from "@/components/HireDeveloperSection"; import iotImage from "../src/images/iot.png"; // Wearable & Device App Development Hero Section const WearableHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -136,7 +137,7 @@ const WearableHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1253,6 +1254,7 @@ const WearableCaseStudies = () => { // Mid-Page CTA const WearableInlineCTA = () => { + const navigate = useNavigate(); return (
@@ -1291,7 +1293,7 @@ const WearableInlineCTA = () => { navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1378,6 +1380,7 @@ const WearableFAQs = () => { // Final CTA Section const WearableFinalCTA = () => { + const navigate = useNavigate(); return (
@@ -1430,7 +1433,7 @@ const WearableFinalCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1459,7 +1462,7 @@ const WearableFinalCTA = () => { export const WearableDeviceDevelopment = () => { return (
- + {/* */} {/* Hero Section */}
@@ -1471,11 +1474,16 @@ export const WearableDeviceDevelopment = () => {
- {/* Capabilities */} + {/* Case Studies */}
- +
+ {/* Capabilities */} + {/*
+ +
*/} + {/* Development Process */}
@@ -1491,10 +1499,6 @@ export const WearableDeviceDevelopment = () => {
- {/* Case Studies */} - {/*
- -
*/} { {/* Mid-Page CTA */} -
+ {/*
-
+
*/} {/* FAQs */} -
+ {/*
-
+
*/} {/* Final CTA */}
@@ -1540,8 +1544,8 @@ export const WearableDeviceDevelopment = () => {
{/* Footer */} -
-
+
+ {/*
*/}
); diff --git a/pages/WebCloudServices.tsx b/pages/WebCloudServices.tsx index 692f842..1a6135f 100644 --- a/pages/WebCloudServices.tsx +++ b/pages/WebCloudServices.tsx @@ -10,7 +10,6 @@ import { ShimmerButton } from "../components/ui/shimmer-button"; import { Badge } from "../components/ui/badge"; import { Card, CardContent } from "../components/ui/card"; import { GridPattern } from "../components/GridPattern"; -import { navigateTo } from "../App"; import { Globe, Cloud, @@ -69,9 +68,11 @@ import { } from "lucide-react"; import heroMockupImage from "../src/images/webandcloud-hero.webp"; import { Helmet } from "react-helmet-async"; +import { useNavigate } from "react-router-dom"; // Enhanced Hero Section const HeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -163,8 +164,8 @@ const HeroWithCTA = () => { > navigateTo("/contact/schedule-a-discovery-call")} - onClick={() => navigateTo("/start-a-project")} + // onClick={() => navigate("/contact/schedule-a-discovery-call")} + onClick={() => navigate("/start-a-project")} >
@@ -174,7 +175,7 @@ const HeroWithCTA = () => { @@ -390,7 +391,7 @@ export const WokaProject = () => {
-
+ {/*
*/}
); }; \ No newline at end of file diff --git a/pages/iOSAppDevelopment.tsx b/pages/iOSAppDevelopment.tsx index d9410a5..3a77e0c 100644 --- a/pages/iOSAppDevelopment.tsx +++ b/pages/iOSAppDevelopment.tsx @@ -48,13 +48,14 @@ import { Zap, } from "lucide-react"; import { Button } from "@/components/ui/button"; -import { navigateTo } from "@/App"; +import { useNavigate } from "react-router-dom"; import Spline from "@splinetool/react-spline"; import { Helmet } from "react-helmet-async"; import HireDeveloperSection from "@/components/HireDeveloperSection"; // iOS Hero Section with iPhone/iPad mockups const IOSHeroWithCTA = () => { + const navigate = useNavigate(); return (
@@ -144,7 +145,7 @@ const IOSHeroWithCTA = () => { > navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
{ // iOS Case Studies - Matching Main Case Studies Design const IOSCaseStudies = () => { + const navigate = useNavigate(); const caseStudies = [ { id: 1, @@ -307,11 +309,11 @@ const IOSCaseStudies = () => { className="bg-card/20 backdrop-blur-md border-white/10 hover:border-accent/30 transition-all duration-500 shadow-lg hover:shadow-2xl rounded-2xl overflow-hidden h-full group-hover:scale-[1.02] transform flex flex-col cursor-pointer" onClick={() => { if (study.title === "RanOutOf") { - navigateTo("/projects/ranoutof"); + navigate("/projects/ranoutof"); } else if (study.title === "Seezun") { - navigateTo("/projects/seezun"); + navigate("/projects/seezun"); } else if (study.title === "WOKA") { - navigateTo("/projects/woka"); + navigate("/projects/woka"); } }} > @@ -418,11 +420,11 @@ const IOSCaseStudies = () => { onClick={(e) => { e.stopPropagation(); if (study.title === "RanOutOf") { - navigateTo("/projects/ranoutof"); + navigate("/projects/ranoutof"); } else if (study.title === "Seezun") { - navigateTo("/projects/seezun"); + navigate("/projects/seezun"); } else if (study.title === "WOKA") { - navigateTo("/projects/woka"); + navigate("/projects/woka"); } }} > @@ -451,7 +453,7 @@ const IOSCaseStudies = () => { variant="outline" size="lg" className="border-white/20 text-muted-foreground hover:bg-white/10 hover:text-foreground hover:border-accent/50 transition-all duration-300" - onClick={() => navigateTo("/case-studies")} + onClick={() => navigate("/case-studies")} > View All Case Studies @@ -1017,9 +1019,10 @@ const IOSTechnologies = () => { // Main iOS App Development Page export const IOSAppDevelopment = () => { + const navigate = useNavigate(); return (
- + {/* */}
@@ -1097,7 +1100,7 @@ export const IOSAppDevelopment = () => {
navigateTo("/start-a-project")} + onClick={() => navigate("/start-a-project")} >
@@ -1118,7 +1121,7 @@ export const IOSAppDevelopment = () => {
-
+ {/*
*/}
); diff --git a/src/Router.tsx b/src/Router.tsx new file mode 100644 index 0000000..92959de --- /dev/null +++ b/src/Router.tsx @@ -0,0 +1,388 @@ +import React from "react"; +// 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 { ClientSupport } from "../pages/ClientSupport"; +import { Contact } from "../pages/Contact"; +import { OfficeLocations } from "../pages/OfficeLocations"; +import { RequestProposal } from "../pages/RequestProposal"; +import { ScheduleDiscoveryCall } from "../pages/ScheduleDiscoveryCall"; +import { SendYourCV } from "../pages/SendYourCV"; +import { StartAProject } from "../pages/StartAProject"; +import { ThankYou } from "../pages/ThankYou"; + +// Project Pages +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 { VIB360Project } from "../pages/VIB360Project"; +import { AmbleProject } from "../pages/AmbleProject"; +import { AmozProject } from "../pages/AmozProject"; +import { SimpliTendProject } from "../pages/SimpliTendProject"; + +// Article Pages +import { FutureOfAIHealthcare } from "../pages/FutureOfAIHealthcare"; +import { ComplianceReadyFintech } from "../pages/ComplianceReadyFintech"; +import { LegacySystemScaling } from "../pages/LegacySystemScaling"; +import { AutomationReshapingBusiness } from "../pages/AutomationReshapingBusiness"; + +// Insight Pages +import { UXReviewPresentations } from "../pages/UXReviewPresentations"; +import { MigratingToLinear101 } from "../pages/MigratingToLinear101"; +import { BuildingYourAPIStack } from "../pages/BuildingYourAPIStack"; + +// Homepage +import { Homepage } from "../pages/Homepage"; + +// New hire pages +import { HireiOSAppDevelopers } from "../pages/HireiOSAppDevelopers"; +import { HireAndroidAppDevelopers } from "../pages/HireAndroidAppDevelopers"; +import { HireCrossPlatformDevelopers } from "../pages/HireCrossPlatformDevelopers"; +import { HireNativeAppDevelopers } from "../pages/HireNativeAppDevelopers"; +import { HirePWADevelopers } from "../pages/HirePWADevelopers"; +import { HireWearableAppDevelopers } from "../pages/HireWearableAppDevelopers"; +import { HireCustomWebAppDevelopers } from "../pages/HireCustomWebAppDevelopers"; +import { HireSaaSProductDevelopers } from "../pages/HireSaaSProductDevelopers"; +import { HireEcommercePlatformDevelopers } from "../pages/HireEcommercePlatformDevelopers"; +import { HireAdminPanelDevelopers } from "../pages/HireAdminPanelDevelopers"; +import { HireAPIBackendDevelopers } from "../pages/HireAPIBackendDevelopers"; +import { HireEnterpriseSoftwareDevelopers } from "../pages/HireEnterpriseSoftwareDevelopers"; +import { HireSystemArchitectureDevOpsDevelopers } from "../pages/HireSystemArchitectureDevOpsDevelopers"; +import { HireProductModernizationDevelopers } from "../pages/HireProductModernizationDevelopers"; +import { HireThirdPartyIntegrationsDevelopers } from "../pages/HireThirdPartyIntegrationsDevelopers"; +import { HireClickablePrototypesDevelopers } from "../pages/HireClickablePrototypesDevelopers"; +import { HireDesignThinkingWorkshopsDevelopers } from "../pages/HireDesignThinkingWorkshopsDevelopers"; +import { HireUserResearchTestingDevelopers } from "../pages/HireUserResearchTestingDevelopers"; + +// Placeholder +import { ArticleDetail } from "../pages/ArticleDetail"; +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; + +export const AppRouter = () => ( + + + {/* Homepage */} + } /> + } /> + + {/* Main Category Pages */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* SERVICES */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* SOLUTIONS */} + } /> + } /> + } /> + } /> + } /> + } /> + + {/* Simplified solution routes */} + } /> + } /> + } /> + } /> + } /> + } /> + + {/* INDUSTRIES - Financial Services */} + } /> + } /> + } /> + + {/* INDUSTRIES - Healthcare & Wellness */} + } /> + } /> + } /> + + {/* INDUSTRIES - Learning & Education */} + } /> + } /> + } /> + + {/* INDUSTRIES - Commerce & Consumer */} + } /> + } /> + } /> + } /> + + {/* INDUSTRIES - Media & Community */} + } /> + } /> + } /> + + {/* INDUSTRIES - Mobility & Logistics */} + } /> + } /> + } /> + + {/* INDUSTRIES - Industrial & Emerging Tech */} + } /> + } /> + } /> + + {/* COMPANY PAGES */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* CAREERS PAGES */} + } /> + } /> + } /> + + {/* HIRE TALENT PAGES */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* New hire pages */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* RESOURCES PAGES */} + } /> + } /> + } /> + } /> + } /> + + {/* CONTACT PAGES */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* LEGACY CONTACT ROUTE SUPPORT */} + } /> + + {/* PROJECT PAGES */} + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + {/* ARTICLE PAGES */} + } /> + } /> + } /> + } /> + + {/* INSIGHT PAGES */} + } /> + } /> + } /> + + {/* PLACEHOLDER */} + {/* } /> */} + +); + +export const dynamicRoutes = { + article: ArticleDetail, + insight: { + "ux-review-presentations": UXReviewPresentations, + "migrating-to-linear-101": MigratingToLinear101, + "building-your-api-stack": BuildingYourAPIStack, + } +}; \ No newline at end of file