import { Routes, Route } from 'react-router'
import { Toaster } from 'sonner'
import { CartProvider } from '@/context/CartContext'
import Home from './pages/Home'
import Shop from './pages/Shop'
import ProductDetail from './pages/ProductDetail'
import Categories from './pages/Categories'
import About from './pages/About'
import Contact from './pages/Contact'
import Faq from './pages/Faq'
import Blog from './pages/Blog'
import BlogPost from './pages/BlogPost'
import Deals from './pages/Deals'
import Cart from './pages/Cart'
import Checkout from './pages/Checkout'
import Dashboard from './pages/Dashboard'
import Login from './pages/Login'
import Wishlist from './pages/Wishlist'
import TrackOrder from './pages/TrackOrder'
import NotFound from './pages/NotFound'
import PrivacyPolicy from './pages/legal/PrivacyPolicy'
import TermsConditions from './pages/legal/TermsConditions'
import RefundPolicy from './pages/legal/RefundPolicy'
import Disclaimer from './pages/legal/Disclaimer'
import CookiePolicy from './pages/legal/CookiePolicy'
import SupportPolicy from './pages/legal/SupportPolicy'
import PaymentPolicy from './pages/legal/PaymentPolicy'
import { Navigation } from './components/Navigation'
import { Footer } from './components/Footer'
import { FloatingWhatsApp } from './components/FloatingWhatsApp'
import { StickyBar } from './components/StickyBar'
import { LiveSalesNotifications } from './components/LiveSalesNotifications'
import { ExitIntentPopup } from './components/ExitIntentPopup'
import { AIChatbot } from './components/AIChatbot'
import { ScrollToTop } from './components/ScrollToTop'
import { ErrorBoundary } from './components/ErrorBoundary'

export default function App() {
  return (
    <CartProvider>
      <div className="min-h-screen bg-[#030712] text-white">
        {/* Skip Navigation Link - Accessibility */}
        <a
          href="#main-content"
          className="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[100] focus:bg-[#f97316] focus:text-white focus:px-4 focus:py-2 focus:rounded-lg focus:font-bold focus:text-sm focus:shadow-lg"
        >
          Skip to main content
        </a>
        <ScrollToTop />
        <StickyBar />
        <Navigation />
        <ErrorBoundary>
        <main id="main-content">
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/shop" element={<Shop />} />
          <Route path="/product/:slug" element={<ProductDetail />} />
          <Route path="/categories" element={<Categories />} />
          <Route path="/about" element={<About />} />
          <Route path="/contact" element={<Contact />} />
          <Route path="/faq" element={<Faq />} />
          <Route path="/blog" element={<Blog />} />
          <Route path="/blog/:slug" element={<BlogPost />} />
          <Route path="/deals" element={<Deals />} />
          <Route path="/cart" element={<Cart />} />
          <Route path="/checkout" element={<Checkout />} />
          <Route path="/dashboard" element={<Dashboard />} />
          <Route path="/login" element={<Login />} />
          <Route path="/wishlist" element={<Wishlist />} />
          <Route path="/track-order" element={<TrackOrder />} />
          <Route path="/privacy-policy" element={<PrivacyPolicy />} />
          <Route path="/terms-conditions" element={<TermsConditions />} />
          <Route path="/refund-policy" element={<RefundPolicy />} />
          <Route path="/disclaimer" element={<Disclaimer />} />
          <Route path="/cookie-policy" element={<CookiePolicy />} />
          <Route path="/support-policy" element={<SupportPolicy />} />
          <Route path="/payment-policy" element={<PaymentPolicy />} />
          <Route path="*" element={<NotFound />} />
        </Routes>
        </main>
        </ErrorBoundary>
        <Footer />
        <FloatingWhatsApp />
        <LiveSalesNotifications />
        <ExitIntentPopup />
        <AIChatbot />
        <Toaster
          position="top-right"
          toastOptions={{
            style: {
              background: '#0f172a',
              color: '#fff',
              border: '1px solid rgba(255,255,255,0.1)',
            },
          }}
        />
      </div>
    </CartProvider>
  )
}
