Files
sam-react-prod/src/hooks/useUserRole.ts

35 lines
1.1 KiB
TypeScript
Raw Normal View History

import { useState, useEffect } from 'react';
/**
*
* localStorage
*/
export function useUserRole() {
const [userRole, setUserRole] = useState<string>(() => {
const userDataStr = localStorage.getItem("user");
const userData = userDataStr ? JSON.parse(userDataStr) : null;
return userData?.role || "CEO";
});
useEffect(() => {
const handleStorageChange = () => {
const userDataStr = localStorage.getItem("user");
const userData = userDataStr ? JSON.parse(userDataStr) : null;
const newRole = userData?.role || "CEO";
setUserRole(newRole);
};
// Listen to custom storage event
window.addEventListener('storage', handleStorageChange);
// Listen to custom role change event
window.addEventListener('roleChanged', handleStorageChange);
return () => {
window.removeEventListener('storage', handleStorageChange);
window.removeEventListener('roleChanged', handleStorageChange);
};
}, []);
return userRole;
}