lavoce #2
@@ -4,7 +4,7 @@ import { UserOutlined } from '@ant-design/icons';
|
|||||||
import handleLogOut from '../Utils/Auth/Logout';
|
import handleLogOut from '../Utils/Auth/Logout';
|
||||||
import { useBreadcrumb } from './LayoutBreadcrumb';
|
import { useBreadcrumb } from './LayoutBreadcrumb';
|
||||||
import { decryptData } from '../components/Global/Formatter';
|
import { decryptData } from '../components/Global/Formatter';
|
||||||
import { replace, useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
const { Link, Text } = Typography;
|
const { Link, Text } = Typography;
|
||||||
const { Header } = Layout;
|
const { Header } = Layout;
|
||||||
@@ -13,18 +13,51 @@ const LayoutHeader = () => {
|
|||||||
const { breadcrumbItems } = useBreadcrumb();
|
const { breadcrumbItems } = useBreadcrumb();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
// Ambil token warna dari theme Ant Design, dengan fallback default
|
// Ambil token warna dari theme Ant Design
|
||||||
const { token } = theme.useToken() || {};
|
const { token } = theme.useToken() || {};
|
||||||
const colorBgContainer = token?.colorBgContainer || '#fff';
|
const colorBgContainer = token?.colorBgContainer || '#fff';
|
||||||
const colorBorder = token?.colorBorder || '#d9d9d9';
|
const colorBorder = token?.colorBorder || '#d9d9d9';
|
||||||
const colorText = token?.colorText || '#000';
|
const colorText = token?.colorText || '#000';
|
||||||
|
|
||||||
// Ambil data user dari localStorage dan dekripsi
|
// Ambil data user dari localStorage
|
||||||
const sessionData = localStorage.getItem('session');
|
let userData = null;
|
||||||
const userData = sessionData ? decryptData(sessionData) : null;
|
|
||||||
|
|
||||||
const roleName = userData?.user?.approval || userData?.user?.partner_name || 'Guest';
|
const sessionData = localStorage.getItem('session');
|
||||||
const userName = userData?.user?.name || userData?.user?.username || 'User';
|
if (sessionData) {
|
||||||
|
userData = decryptData(sessionData);
|
||||||
|
} else {
|
||||||
|
const userRaw = localStorage.getItem('user');
|
||||||
|
if (userRaw) {
|
||||||
|
try {
|
||||||
|
// bungkus biar konsisten { user: {...} }
|
||||||
|
userData = { user: JSON.parse(userRaw) };
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Gagal parse user dari localStorage:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log('User data di header:', userData?.user);
|
||||||
|
|
||||||
|
// Role handling
|
||||||
|
const roleNameDefault =
|
||||||
|
userData?.user?.approval ||
|
||||||
|
userData?.user?.partner_name ||
|
||||||
|
userData?.user?.role_name ||
|
||||||
|
'Guest';
|
||||||
|
|
||||||
|
let roleName = roleNameDefault;
|
||||||
|
const userName =
|
||||||
|
userData?.user?.name || userData?.user?.username || userData?.user?.user_name || 'User';
|
||||||
|
|
||||||
|
// Override jika Super Admin
|
||||||
|
if (
|
||||||
|
userData?.user?.is_sa === true ||
|
||||||
|
userData?.user?.is_sa === 'true' ||
|
||||||
|
userData?.user?.is_sa === 1
|
||||||
|
) {
|
||||||
|
roleName = 'Super Admin';
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -117,4 +150,3 @@ const LayoutHeader = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default LayoutHeader;
|
export default LayoutHeader;
|
||||||
|
|
||||||
Reference in New Issue
Block a user