import React, { memo, useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useBreadcrumb } from '../../../layout/LayoutBreadcrumb'; import { Typography, Select, DatePicker, Button, Row, Col, Card } from 'antd'; import { ResponsiveLine } from '@nivo/line'; import { FileTextOutlined } from '@ant-design/icons'; import { decryptData } from '../../../components/Global/Formatter'; import dayjs from 'dayjs'; import './trending.css'; const { Text } = Typography; const IndexTrending = memo(function IndexTrending() { const navigate = useNavigate(); const { setBreadcrumbItems } = useBreadcrumb(); const [plantSubSection, setPlantSubSection] = useState('Semua Plant'); const [startDate, setStartDate] = useState(dayjs('2025-09-30')); const [endDate, setEndDate] = useState(dayjs('2025-10-09')); const [periode, setPeriode] = useState('10 Menit'); const [userRole, setUserRole] = useState(null); const [roleLevel, setRoleLevel] = useState(null); useEffect(() => { const token = localStorage.getItem('token'); if (token) { // Get user data and role let userData = null; const sessionData = localStorage.getItem('session'); if (sessionData) { userData = decryptData(sessionData); } else { const userRaw = localStorage.getItem('user'); if (userRaw) { try { userData = { user: JSON.parse(userRaw) }; } catch (e) { console.error('Error parsing user data:', e); } } } if (userData?.user) { setUserRole(userData.user.role_name); setRoleLevel(userData.user.role_level); } setBreadcrumbItems([ { title: ( • History ), }, { title: ( Trending ), }, ]); } else { navigate('/signin'); } }, []); const tagTrendingData = [ { id: 'TEMP_SENSOR_1', color: '#FF6B4A', data: [ { y: '08:00', x: 75 }, { y: '08:05', x: 76 }, { y: '08:10', x: 75 }, { y: '08:15', x: 77 }, { y: '08:20', x: 76 }, { y: '08:25', x: 78 }, { y: '08:30', x: 79 }, ], }, { id: 'GAS_LEAK_SENSOR_1', color: '#4ECDC4', data: [ { y: '08:00', x: 10 }, { y: '08:05', x: 150 }, { y: '08:10', x: 40 }, { y: '08:15', x: 20 }, { y: '08:20', x: 15 }, { y: '08:25', x: 18 }, { y: '08:30', x: 25 }, ], }, { id: 'PRESSURE_SENSOR_1', color: '#FFE66D', data: [ { y: '08:00', x: 1.2 }, { y: '08:05', x: 1.3 }, { y: '08:10', x: 1.2 }, { y: '08:15', x: 1.4 }, { y: '08:20', x: 1.5 }, { y: '08:25', x: 1.3 }, { y: '08:30', x: 1.2 }, ], }, ]; const handleReset = () => { setPlantSubSection('Semua Plant'); setStartDate(dayjs('2025-09-30')); setEndDate(dayjs('2025-10-09')); setPeriode('10 Menit'); }; // Check if user has permission to view data (all except guest) const canViewData = userRole && userRole !== 'guest'; // Check if user can export/filter (administrator, engineer) const canExportData = userRole && (userRole === 'administrator' || userRole === 'engineer'); return ( {/* Filter Section */}
☰ Filter Data
Plant Sub Section
{/* Charts Section */} {/* {!canViewData ? ( Anda tidak memiliki akses untuk melihat data trending.
Silakan hubungi administrator untuk mendapatkan akses.
) : ( */} <> {/* Line Chart */}
☰ Tag Value Trending
{/* )} */}
); }); export default IndexTrending;