diff --git a/client/src/pages/Settings.jsx b/client/src/pages/Settings.jsx index bfc69c5..bdd92b9 100644 --- a/client/src/pages/Settings.jsx +++ b/client/src/pages/Settings.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useMemo } from 'react'; +import React, { useState, useEffect, useMemo, useCallback } from 'react'; import { useAuth } from '../contexts/AuthContext'; import api from '../services/api'; import toast from 'react-hot-toast'; @@ -63,8 +63,8 @@ const Settings = () => { ); } - // Filter tabs based on user permissions - const availableTabs = useMemo(() => [ + // Define all tabs + const allTabs = useMemo(() => [ { id: 'general', name: 'General', @@ -95,7 +95,13 @@ const Settings = () => { icon: UserGroupIcon, permission: 'users.view' }, - ].filter(tab => hasPermission(user?.role, tab.permission)), [user?.role]); + ], []); + + // Filter tabs based on user permissions + const availableTabs = useMemo(() => { + if (!user?.role) return []; + return allTabs.filter(tab => hasPermission(user.role, tab.permission)); + }, [allTabs, user?.role]); // Set initial tab to first available tab useEffect(() => {