File size: 2,266 Bytes
5ab3108 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import { BrowserRouter, Routes, Route } from "react-router-dom";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Toaster } from "react-hot-toast";
import { ApiKeyProvider } from "./context/ApiKeyContext";
import AppLayout from "./layouts/AppLayout";
// All Real Pages
import Dashboard from "./pages/Dashboard";
import Campaigns from "./pages/Campaigns";
import CampaignDetail from "./pages/CampaignDetail";
import Leads from "./pages/Leads";
import EmailAccounts from "./pages/EmailAccounts";
import Warmup from "./pages/Warmup";
import Inbox from "./pages/Inbox";
import Webhooks from "./pages/Webhooks";
import Analytics from "./pages/Analytics";
import Clients from "./pages/Clients";
import Settings from "./pages/Settings";
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
retry: 2,
refetchOnWindowFocus: true,
},
},
});
export default function App() {
return (
<QueryClientProvider client={queryClient}>
<ApiKeyProvider>
<BrowserRouter>
<Routes>
<Route path="/" element={<AppLayout />}>
<Route index element={<Dashboard />} />
<Route path="campaigns" element={<Campaigns />} />
<Route path="campaigns/:id" element={<CampaignDetail />} />
<Route path="leads" element={<Leads />} />
<Route path="email-accounts" element={<EmailAccounts />} />
<Route path="warmup" element={<Warmup />} />
<Route path="inbox" element={<Inbox />} />
<Route path="webhooks" element={<Webhooks />} />
<Route path="analytics" element={<Analytics />} />
<Route path="clients" element={<Clients />} />
<Route path="settings" element={<Settings />} />
</Route>
</Routes>
</BrowserRouter>
<Toaster
position="bottom-right"
toastOptions={{
style: {
background: '#18181b',
color: '#fff',
border: '1px solid #27272a'
}
}}
/>
</ApiKeyProvider>
</QueryClientProvider>
);
}
|