TenantShell

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)