import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { Toaster } from 'react-hot-toast'; import { GuestOnly, RequireAuth, RequireSuperAdmin, RequireOwner } from './utils/guards'; import AdminLayout from './layouts/AdminLayout'; import POSLayout from './layouts/POSLayout'; import Login from './pages/Login'; import Register from './pages/Register'; import LandingPage from './pages/LandingPage'; import Dashboard from './pages/Dashboard'; import POS from './pages/POS'; import Products from './pages/Products'; import Categories from './pages/Categories'; import UsersPage from './pages/Users'; import Orders from './pages/Orders'; import KasirReport from './pages/KasirReport'; import Companies from './pages/Companies'; import Branches from './pages/Branches'; import FeeReport from './pages/FeeReport'; import Members from './pages/Members'; import Wallet from './pages/Wallet'; import Vouchers from './pages/dashboard/Vouchers'; import TopupApprovals from './pages/TopupApprovals'; import AdminTenantSettings from './pages/AdminTenantSettings'; import PrivacyPolicy from './pages/PrivacyPolicy'; import TermsOfService from './pages/TermsOfService'; import ContactSupport from './pages/ContactSupport'; import useAuthStore from './store/useAuthStore'; import { getCompanySlug } from './utils/slug'; function AuthLandingRedirect() { const user = useAuthStore((s) => s.user); if (!user) return ; if (user.role === 'super_admin') return ; const slug = getCompanySlug(user.company_name); if (user.role === 'owner') return ; return ; } export default function App() { return ( {/* Public */} } /> } /> } /> } /> } /> } /> {/* POS - accessible by all authenticated */} }> } /> {/* Shared Admin - accessible by all authenticated */} }> } /> } /> }> } /> } /> } /> } /> } /> } /> {/* Owner */} }> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Auth redirect fallbacks for legacy/naked paths */} } /> } /> {/* Default redirect */} } /> ); }