lavoce #2

Merged
yogiedigital merged 118 commits from lavoce into main 2025-10-20 04:06:02 +00:00
2 changed files with 75 additions and 85 deletions
Showing only changes of commit 3ce9b3772d - Show all commits

View File

@@ -25,7 +25,7 @@ import {
TeamOutlined,
ClockCircleOutlined,
CalendarOutlined,
UsergroupAddOutlined
UsergroupAddOutlined,
} from '@ant-design/icons';
const { Text } = Typography;
@@ -34,7 +34,11 @@ const allItems = [
{
key: 'home',
icon: <HomeOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/dashboard/home" className='fontMenus'>Home</Link>,
label: (
<Link to="/dashboard/home" className="fontMenus">
Home
</Link>
),
},
{
key: 'master',
@@ -61,11 +65,6 @@ const allItems = [
icon: <AntDesignOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/master/brand-device">Brand Device</Link>,
},
{
key: 'master-error-code',
icon: <WarningOutlined style={{fontSize:'19px'}} />,
label: <Link to="/master/error-code">Error Code</Link>,
},
{
key: 'master-status',
icon: <SafetyOutlined style={{ fontSize: '19px' }} />,
@@ -93,22 +92,38 @@ const allItems = [
{
key: 'notification',
icon: <BellOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/notification" className='fontMenus'>Notifikasi</Link>,
label: (
<Link to="/notification" className="fontMenus">
Notifikasi
</Link>
),
},
{
key: 'event-alarm',
icon: <AlertOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/event-alarm" className='fontMenus'>Event Alarm</Link>,
label: (
<Link to="/event-alarm" className="fontMenus">
Event Alarm
</Link>
),
},
{
key: 'role',
icon: <SafetyOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/role" className='fontMenus'>Role</Link>,
label: (
<Link to="/role" className="fontMenus">
Role
</Link>
),
},
{
key: 'user',
icon: <UserOutlined style={{ fontSize: '19px' }} />,
label: <Link to="/user" className='fontMenus'>User</Link>,
label: (
<Link to="/user" className="fontMenus">
User
</Link>
),
},
{
key: 'shift-management',
@@ -132,10 +147,10 @@ const allItems = [
const LayoutMenu = () => {
const [stateOpenKeys, setStateOpenKeys] = useState(['home']);
const getLevelKeys = items1 => {
const getLevelKeys = (items1) => {
const key = {};
const func = (items2, level = 1) => {
items2.forEach(item => {
items2.forEach((item) => {
if (item.key) {
key[item.key] = level;
}
@@ -150,12 +165,16 @@ const LayoutMenu = () => {
const levelKeys = getLevelKeys(allItems);
const onOpenChange = openKeys => {
const currentOpenKey = openKeys.find(key => stateOpenKeys.indexOf(key) === -1);
const onOpenChange = (openKeys) => {
const currentOpenKey = openKeys.find((key) => stateOpenKeys.indexOf(key) === -1);
if (currentOpenKey !== undefined) {
const repeatIndex = openKeys.filter(key => key !== currentOpenKey).findIndex(key => levelKeys[key] === levelKeys[currentOpenKey]);
const repeatIndex = openKeys
.filter((key) => key !== currentOpenKey)
.findIndex((key) => levelKeys[key] === levelKeys[currentOpenKey]);
setStateOpenKeys(
openKeys.filter((_, index) => index !== repeatIndex).filter(key => levelKeys[key] <= levelKeys[currentOpenKey]),
openKeys
.filter((_, index) => index !== repeatIndex)
.filter((key) => levelKeys[key] <= levelKeys[currentOpenKey])
);
} else {
setStateOpenKeys(openKeys);
@@ -166,12 +185,14 @@ const LayoutMenu = () => {
const isAdmin = session?.user?.user_id;
const karyawan = () => {
return allItems.filter(
item => item.key !== 'setting'
return allItems
.filter(
(item) => item.key !== 'setting'
// tambahkan menu jika terdapat menu yang di sembunyikan dari user karyawan
// && item.key !== 'master'
// && item.key !== 'master'
).map(item=>{
)
.map((item) => {
if (item.key === 'master') {
return {
...item,
@@ -181,7 +202,7 @@ const LayoutMenu = () => {
// tambahkan menu jika terdapat menu yang di sembunyikan dari user karyawan
// && child.key !== 'master-service'
// )
}
};
}
return item;
});

View File

@@ -1,31 +0,0 @@
import React, { memo, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { useBreadcrumb } from '../../../layout/LayoutBreadcrumb';
import { Typography } from 'antd';
const { Text } = Typography;
const IndexErrorCode = memo(function IndexErrorCode() {
const navigate = useNavigate();
const { setBreadcrumbItems } = useBreadcrumb();
useEffect(() => {
const token = localStorage.getItem('token');
if (token) {
setBreadcrumbItems([
{ title: <Text strong style={{ fontSize: '14px' }}> Master</Text> },
{ title: <Text strong style={{ fontSize: '14px' }}>Error Code</Text> }
]);
} else {
navigate('/signin');
}
}, []);
return (
<div>
<h1>Error Code Page</h1>
</div>
);
});
export default IndexErrorCode;