Tenant Nav Audit (QB-prefixed)
activeSidebar: unknown
tenantShell: unknown
Expected: activeSidebar="SidebarQB", tenantShell="TenantShell"
Raw getTenantNavRaw()
[
{
"key": "home",
"label": "Workbench",
"route": "/Workbench",
"icon": {
"displayName": "LayoutDashboard"
}
},
{
"key": "dashboard",
"label": "Dashboard",
"route": "/Dashboard",
"icon": {
"displayName": "SlidersHorizontal"
}
},
{
"key": "sales",
"label": "Sales",
"route": "/sales",
"icon": {
"displayName": "ShoppingCart"
},
"children": [
{
"label": "Sales Overview",
"route": "/salesoverview"
},
{
"label": "Customers",
"route": "/salescustomers"
},
{
"label": "Products & Services",
"route": "/productsandservices"
},
{
"label": "Estimates",
"route": "/salesestimates"
},
{
"label": "Invoices",
"route": "/salesinvoices"
},
{
"label": "Recurring Invoices",
"route": "/recurringinvoices"
},
{
"label": "Sales Orders",
"route": "/salesorders"
},
{
"label": "Sales Receipts",
"route": "/salesreceipts"
},
{
"label": "Receive Payments",
"route": "/receivepayment"
},
{
"label": "Deposits",
"route": "/salesdeposits"
},
{
"label": "Credit Notes",
"route": "/creditnotes"
},
{
"label": "Customer Statements",
"route": "/customerstatements"
},
{
"label": "AR Dunning",
"route": "/ardunningsettings"
},
{
"label": "AR Email Templates",
"route": "/aremailtemplates"
},
{
"label": "Aged Receivables",
"route": "/agedreceivables"
}
]
},
{
"key": "expenses",
"label": "Purchases",
"route": "/purchases",
"icon": {
"displayName": "Receipt"
},
"children": [
{
"label": "Purchases Overview",
"route": "/purchasesoverview"
},
{
"label": "Suppliers",
"route": "/expensessuppliers"
},
{
"label": "Expenses",
"route": "/expensesexpenses"
},
{
"label": "Bills",
"route": "/expensesbills"
},
{
"label": "Recurring Bills",
"route": "/recurringbills"
},
{
"label": "Purchase Orders",
"route": "/purchaseorders"
},
{
"label": "Write Cheque",
"route": "/writecheque"
},
{
"label": "Supplier Credit Notes",
"route": "/suppliercreditnotes"
},
{
"label": "Supplier Payments",
"route": "/supplierpayments"
},
{
"label": "Aged Payables",
"route": "/agedpayables"
},
{
"label": "AP Terms",
"route": "/apterms"
}
]
},
{
"key": "banking",
"label": "Banking",
"route": "/banking",
"icon": {
"displayName": "Landmark"
},
"children": [
{
"label": "Banking Overview",
"route": "/bankingoverview"
},
{
"label": "Accounts",
"route": "/bankingaccounts"
},
{
"label": "Bank Transactions",
"route": "/bankingtransactions"
},
{
"label": "Bank Feeds",
"route": "/bankfeeds"
},
{
"label": "Reconcile",
"route": "/bankreconcile"
},
{
"label": "Match Rules",
"route": "/bankmatchrules"
},
{
"label": "Import from Excel",
"route": "/bankingimportpaste"
},
{
"label": "Import History",
"route": "/bankimporthistory"
},
{
"label": "Preferences",
"route": "/bankingpreferences"
}
]
},
{
"key": "transactions",
"label": "Transactions",
"route": "/transactions",
"icon": {
"displayName": "ArrowLeftRight"
},
"children": [
{
"label": "Transactions Overview",
"route": "/transactionsoverview"
},
{
"label": "Chart of Accounts",
"route": "/chartofaccounts"
},
{
"label": "Journals",
"route": "/journals"
},
{
"label": "Recurring Transactions",
"route": "/recurringtransactions"
}
]
},
{
"key": "inventory",
"label": "Inventory",
"route": "/inventory",
"icon": {
"displayName": "Package"
},
"children": [
{
"label": "Inventory Overview",
"route": "/inventoryoverview"
},
{
"label": "Products",
"route": "/inventoryproducts"
},
{
"label": "Movements",
"route": "/inventorymovements"
},
{
"label": "Adjustments",
"route": "/inventoryadjustments"
},
{
"label": "Reorder",
"route": "/inventoryreorder"
},
{
"label": "Valuation",
"route": "/inventoryvaluation"
},
{
"label": "Assemblies",
"route": "/inventoryassemblies"
},
{
"label": "Landed Cost",
"route": "/inventorylandedcost"
},
{
"label": "GL Reconciliation",
"route": "/inventoryglreconciliation"
},
{
"label": "Stocktakes",
"route": "/stocktakes"
},
{
"label": "Stock Transfers",
"route": "/stocktransfers"
},
{
"label": "Inventory Settings",
"route": "/inventorysettings"
}
]
},
{
"key": "store",
"label": "PB Store",
"route": "/storehome",
"icon": {
"displayName": "Store"
},
"children": [
{
"label": "Store Dashboard",
"route": "/storehome"
},
{
"label": "Products",
"route": "/storeproducts"
},
{
"label": "Listings",
"route": "/storelistings"
},
{
"label": "Orders",
"route": "/storeorders"
},
{
"label": "Fulfillment",
"route": "/storefulfillment"
},
{
"label": "Inventory",
"route": "/storeinventory"
},
{
"label": "Payouts",
"route": "/storepayouts"
},
{
"label": "Media",
"route": "/storemedia"
},
{
"label": "Analytics",
"route": "/storeanalytics"
},
{
"label": "Ledger",
"route": "/storeledger"
},
{
"label": "Settings",
"route": "/storesettings"
},
{
"label": "Public View",
"route": "/storepublic"
}
]
},
{
"key": "portal",
"label": "PB Pay",
"route": "/portaldashboard",
"icon": {
"displayName": "Key"
},
"children": [
{
"label": "Portal Admin",
"route": "/portaldashboard"
},
{
"label": "Invoices",
"route": "/portaladmindashboard"
},
{
"label": "Payment Links",
"route": "/portalpaymentlinks"
},
{
"label": "Import Maps",
"route": "/portaladminimportmap"
},
{
"label": "Event Logs",
"route": "/portaladminlogs"
},
{
"label": "Settings",
"route": "/portaladminsettings"
}
]
},
{
"key": "schools",
"label": "Schools",
"route": "/schoolfees",
"icon": {
"displayName": "GraduationCap"
},
"featureFlag": "enableSchool",
"children": [
{
"label": "School Fees",
"route": "/schoolfees"
},
{
"label": "Students",
"route": "/students"
},
{
"label": "Parents",
"route": "/parents"
},
{
"label": "Term Setup",
"route": "/schooltermsetup"
}
]
},
{
"key": "projects",
"label": "Projects",
"route": "/projects",
"icon": {
"displayName": "FolderKanban"
}
},
{
"key": "budgets",
"label": "Budgets",
"route": "/budgets",
"icon": {
"displayName": "ChartPie"
}
},
{
"key": "employees",
"label": "Employees",
"route": "/payroll",
"icon": {
"displayName": "Users"
},
"children": [
{
"label": "Employees",
"route": "/employees"
},
{
"label": "Payroll",
"route": "/payroll"
},
{
"label": "Pay Groups",
"route": "/paygroups"
},
{
"label": "Timesheets",
"route": "/timesheets"
},
{
"label": "Stat Returns",
"route": "/statreturns"
}
]
},
{
"key": "accounting",
"label": "Accounting",
"route": "/accounting",
"icon": {
"displayName": "Calculator"
},
"children": [
{
"label": "Chart of Accounts",
"route": "/chartofaccounts"
},
{
"label": "COA Audit",
"route": "/coaaudit"
},
{
"label": "COA Merge",
"route": "/coamerge"
},
{
"label": "Tax Codes",
"route": "/taxcodes"
},
{
"label": "Journals",
"route": "/journals"
},
{
"label": "Trial Balance",
"route": "/trialbalance"
},
{
"label": "Profit & Loss",
"route": "/profitandloss"
},
{
"label": "Balance Sheet",
"route": "/balancesheet"
},
{
"label": "Cash Flow",
"route": "/cashflowindirect"
},
{
"label": "Currency Settings",
"route": "/currencysettings"
},
{
"label": "FX Rates",
"route": "/fxrates"
},
{
"label": "Revaluation AR/AP",
"route": "/revaluationarap"
},
{
"label": "Revaluation Bank",
"route": "/revaluationbank"
},
{
"label": "FX Gains & Losses",
"route": "/fxgainslossesreport"
},
{
"label": "Period Locks",
"route": "/periodlocks"
},
{
"label": "Post Close Settings",
"route": "/postclosesettings"
},
{
"label": "Year End Close",
"route": "/yearendclosewizard"
}
]
},
{
"key": "payments",
"label": "Payments",
"route": "/payments",
"icon": {
"displayName": "DollarSign"
}
},
{
"key": "reports",
"label": "Reports",
"route": "/reports",
"icon": {
"displayName": "FileText"
},
"children": [
{
"label": "Reports Home",
"route": "/reports"
},
{
"label": "Trial Balance",
"route": "/trialbalance"
},
{
"label": "Profit and Loss",
"route": "/profitandloss"
},
{
"label": "Balance Sheet",
"route": "/balancesheet"
},
{
"label": "Cash Flow Indirect",
"route": "/cashflowindirect"
},
{
"label": "Aged Receivables",
"route": "/agedreceivables"
},
{
"label": "Aged Payables",
"route": "/agedpayables"
},
{
"label": "FX Gains & Losses",
"route": "/fxgainslossesreport"
},
{
"label": "Saved Report Views",
"route": "/savedreportviews"
}
]
},
{
"key": "data",
"label": "Data",
"route": "/dataoverview",
"icon": {
"displayName": "Database"
},
"children": [
{
"label": "Data Overview",
"route": "/dataoverview"
},
{
"label": "Import Centre",
"route": "/importcentre"
},
{
"label": "Export Centre",
"route": "/exportcentre"
},
{
"label": "Data Portability",
"route": "/dataportability"
},
{
"label": "Local Data",
"route": "/localdata"
}
]
},
{
"key": "fx-rates",
"label": "FX Rates",
"route": "/fx-rates",
"icon": {
"displayName": "TrendingUp"
}
},
{
"key": "admin",
"label": "Admin",
"route": "/admin",
"icon": {
"displayName": "Shield"
},
"children": [
{
"label": "Users and Roles",
"route": "/adminmembers"
},
{
"label": "Organisation",
"route": "/settingsbrand"
},
{
"label": "Country Pack",
"route": "/countrypacksettings"
},
{
"label": "Tax Codes",
"route": "/taxcodes"
},
{
"label": "Communications",
"route": "/commssettings"
},
{
"label": "Plan and Usage",
"route": "/planandusage"
},
{
"label": "Policy Management",
"route": "/policymanagement"
},
{
"label": "Portal Config",
"route": "/adminportalconfig"
},
{
"label": "Subscriptions",
"route": "/adminsubscriptions"
}
]
},
{
"key": "settings",
"label": "Settings",
"route": "/settingsoverview",
"icon": {
"displayName": "Settings"
},
"children": [
{
"label": "Settings Home",
"route": "/settingsoverview"
},
{
"label": "Appearance",
"route": "/settingsappearance"
}
]
},
{
"key": "help",
"label": "Help",
"route": "/helpcentre",
"icon": {
"displayName": "CircleHelp"
}
}
]Items: 21 | Has children: YES ⚠️
Flat getTenantNavFlat()
[
{
"key": "home",
"label": "Workbench",
"route": "/Workbench",
"icon": {
"displayName": "LayoutDashboard"
}
},
{
"key": "dashboard",
"label": "Dashboard",
"route": "/Dashboard",
"icon": {
"displayName": "SlidersHorizontal"
}
},
{
"key": "sales",
"label": "Sales",
"route": "/sales",
"icon": {
"displayName": "ShoppingCart"
}
},
{
"key": "expenses",
"label": "Purchases",
"route": "/purchases",
"icon": {
"displayName": "Receipt"
}
},
{
"key": "banking",
"label": "Banking",
"route": "/banking",
"icon": {
"displayName": "Landmark"
}
},
{
"key": "transactions",
"label": "Transactions",
"route": "/transactions",
"icon": {
"displayName": "ArrowLeftRight"
}
},
{
"key": "inventory",
"label": "Inventory",
"route": "/inventory",
"icon": {
"displayName": "Package"
}
},
{
"key": "store",
"label": "PB Store",
"route": "/storehome",
"icon": {
"displayName": "Store"
}
},
{
"key": "portal",
"label": "PB Pay",
"route": "/portaldashboard",
"icon": {
"displayName": "Key"
}
},
{
"key": "schools",
"label": "Schools",
"route": "/schoolfees",
"icon": {
"displayName": "GraduationCap"
},
"featureFlag": "enableSchool"
},
{
"key": "projects",
"label": "Projects",
"route": "/projects",
"icon": {
"displayName": "FolderKanban"
}
},
{
"key": "budgets",
"label": "Budgets",
"route": "/budgets",
"icon": {
"displayName": "ChartPie"
}
},
{
"key": "employees",
"label": "Employees",
"route": "/payroll",
"icon": {
"displayName": "Users"
}
},
{
"key": "accounting",
"label": "Accounting",
"route": "/accounting",
"icon": {
"displayName": "Calculator"
}
},
{
"key": "payments",
"label": "Payments",
"route": "/payments",
"icon": {
"displayName": "DollarSign"
}
},
{
"key": "reports",
"label": "Reports",
"route": "/reports",
"icon": {
"displayName": "FileText"
}
},
{
"key": "data",
"label": "Data",
"route": "/dataoverview",
"icon": {
"displayName": "Database"
}
},
{
"key": "fx-rates",
"label": "FX Rates",
"route": "/fx-rates",
"icon": {
"displayName": "TrendingUp"
}
},
{
"key": "admin",
"label": "Admin",
"route": "/admin",
"icon": {
"displayName": "Shield"
}
},
{
"key": "settings",
"label": "Settings",
"route": "/settingsoverview",
"icon": {
"displayName": "Settings"
}
},
{
"key": "help",
"label": "Help",
"route": "/helpcentre",
"icon": {
"displayName": "CircleHelp"
}
}
]Items: 21 | Has children: NO ✓
💡 Instructions:
- Open DevTools Console to see which components mounted
- Check for "SidebarQB rendering (flat)" log
- Check for "TenantShell mounted" log
- Verify no nested children in either array above
- All routes should be QB-prefixed (e.g., /qbhome, /qbsalesoverview)