{}}>
}
title="Cameleer SaaS"
onClick={() => navigate(isVendor ? '/vendor/tenants' : '/tenant')}
/>
{/* Vendor console — only visible to platform:admin */}
{isVendor && (
}
label="Vendor"
open={onVendorRoute}
active={isActive(location, '/vendor')}
onToggle={() => navigate('/vendor/tenants')}
>
navigate('/vendor/tenants')}
>
Tenants
{vendorTenants?.filter(t => t.status !== 'DELETED').map(t => (
navigate(`/vendor/tenants/${t.id}`)}
title={t.name}
>
{t.name}
))}
navigate('/vendor/audit')}
>
Audit Log
navigate('/vendor/certificates')}
>
Certificates
navigate('/vendor/metrics')}
>
Metrics
navigate('/vendor/infrastructure')}
>
Infrastructure
navigate('/vendor/email')}
>
Email Connector
navigate('/vendor/license-tools')}
>
License Tools
navigate('/vendor/auth-policy')}
>
Auth Policy
navigate('/vendor/admins')}
>
Administrators
window.open(`${window.location.protocol}//${window.location.hostname}:3002`, '_blank', 'noopener')}
>
Logto Console
)}
{/* Tenant portal — visible to tenant admins; hidden for vendor on vendor routes */}
{showTenantPortal && (
<>
}
label="Dashboard"
open={false}
active={location.pathname === '/tenant'}
onToggle={() => navigate('/tenant')}
>
{null}
}
label="License"
open={false}
active={isActive(location, '/tenant/license')}
onToggle={() => navigate('/tenant/license')}
>
{null}
}
label="Security"
open={false}
active={isActive(location, '/tenant/sso')}
onToggle={() => navigate('/tenant/sso')}
>
{null}
}
label="Team"
open={false}
active={isActive(location, '/tenant/team')}
onToggle={() => navigate('/tenant/team')}
>
{null}
}
label="Audit Log"
open={false}
active={isActive(location, '/tenant/audit')}
onToggle={() => navigate('/tenant/audit')}
>
{null}
}
label="Settings"
open={false}
active={isActive(location, '/tenant/settings')}
onToggle={() => navigate('/tenant/settings')}
>
{null}
>
)}
);
return (