diff --git a/client/src/pages/Settings.jsx b/client/src/pages/Settings.jsx index 09d9081..43b3b93 100644 --- a/client/src/pages/Settings.jsx +++ b/client/src/pages/Settings.jsx @@ -50,11 +50,19 @@ const ALL_TABS = [ const Settings = () => { const { user } = useAuth(); - const [activeTab, setActiveTab] = useState('general'); const [tenantConfig, setTenantConfig] = useState(null); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); - const [availableTabs, setAvailableTabs] = useState([]); + + // Calculate available tabs + const availableTabs = user?.role + ? ALL_TABS.filter(tab => hasPermission(user.role, tab.permission)) + : []; + + // Set active tab - default to first available or general + const [activeTab, setActiveTab] = useState(() => { + return availableTabs.length > 0 ? availableTabs[0].id : 'general'; + }); // Check if user can access settings based on RBAC permissions const canAccess = canAccessSettings(user?.role); @@ -98,21 +106,6 @@ const Settings = () => { ); } - // Calculate available tabs when user role changes - useEffect(() => { - const tabs = user?.role - ? ALL_TABS.filter(tab => hasPermission(user.role, tab.permission)) - : []; - setAvailableTabs(tabs); - }, [user?.role]); - - // Set initial tab to first available tab - useEffect(() => { - if (availableTabs.length > 0 && !availableTabs.find(tab => tab.id === activeTab)) { - setActiveTab(availableTabs[0].id); - } - }, [availableTabs, activeTab]); - return (