import { useState, Fragment, useEffect } from 'react'; import Modal from '../../components/common/modal/Modal'; import Button from '../../components/common/button/Button'; import styled from 'styled-components'; import { Title, FormWrapper, TableStyle, TableWrapper, BtnWrapper, ButtonClose, ModalText } from '../../styles/Components'; import { useNavigate } from 'react-router-dom'; import { ItemsSearchBar } from '../../components/ServiceManage'; import { ItemListView } from '../../apis'; import { authList } from '../../store/authList'; import { useRecoilValue } from 'recoil'; import AuthModal from '../../components/common/modal/AuthModal'; import { authType } from '../../assets/data'; const Items = () => { const token = sessionStorage.getItem('token'); const userInfo = useRecoilValue(authList); const navigate = useNavigate(); // 데이터 조회 관련 const [dataList, setDataList] = useState([]); const [selectedData, setSelectedData] = useState([]); const [requestValue, setRequestValue] = useState([]); // 모달 관련 변수 const [confirmDelModal, setConfirmDelModal] = useState('hidden'); const [completeDelModal, setCompleteDelModal] = useState('hidden'); const [confirmRestoreModal, setConfirmRestoreModal] = useState('hidden'); const [completeRestoreModal, setCompleteRestoreModal] = useState('hidden'); // 검색 관련 변수 const [searchData, setSearchData] = useState({ searchType: 'GUID', searchKey: '', status: 'ALL', sanctions: 'ALL', period: 'ALL', }); const status = [ { value: 'ALL', name: '상태' }, { value: 'ACTIVE', name: '활성' }, { value: 'DEACTIVE', name: '비활성' }, ]; const restore = [ { value: 'ALL', name: '복구' }, { value: 'POSSIBLE', name: '가능' }, { value: 'IMPOSSIBLE', name: '불가능' }, ]; const fetchData = async (searchType, data, status, restore) => { setDataList(await ItemListView(token, searchType, data, status, restore)); }; // 검색 기능 const handleSearch = (searchType, data, status, restore) => { fetchData(searchType, data, status, restore); }; // 삭제 여부 모달 const handleConfirmeDelModalClose = () => { if (confirmDelModal === 'hidden') { setConfirmDelModal('view'); } else { setConfirmDelModal('hidden'); setRequestValue([]); } }; // 복구 여부 모달 const handleConfirmeRestoreModalClose = () => { if (confirmRestoreModal === 'hidden') { setConfirmRestoreModal('view'); } else { setConfirmRestoreModal('hidden'); setRequestValue([]); } }; // 삭제 모달창 const handleConfirmDeleteModal = data => { handleConfirmeDelModalClose(); }; // 복구 모달창 const handleConfirmRestoreModal = data => { handleConfirmeRestoreModalClose(); }; // 삭제 완료 확인 모달 const handleCompleteDelModal = () => { if (completeDelModal === 'hidden') { setCompleteDelModal('view'); } else { setCompleteDelModal('hidden'); setRequestValue([]); handleConfirmeDelModalClose(); window.location.reload(); } }; // 복구 완료 확인 모달 const handleCompleteRestoreModal = () => { if (completeRestoreModal === 'hidden') { setCompleteRestoreModal('view'); } else { setCompleteRestoreModal('hidden'); setRequestValue([]); handleConfirmeRestoreModalClose(); window.location.reload(); } }; // 삭제 기능 구현 const handleDelete = () => { let list = []; list.push({ id: selectedData }); // BlackListDelete(token, list); handleCompleteDelModal(); }; // 복구 기능 const handleRestore = () => { let list = []; list.push({ id: selectedData}); //api 호출 handleCompleteRestoreModal(); } return ( <> {userInfo.auth_list && !userInfo.auth_list.some(auth => auth.id === authType.itemRead) ? ( ) : ( <> 아이템 복구 및 삭제 번호 아이템명 아이템 ID 상태 생성 날짜 복구 가능 여부 {userInfo.auth_list && userInfo.auth_list.some(auth => auth.id === 30) && 액션} {dataList.list && dataList.list.map(data => ( {data.row_num} {data.item_nm} {data.item_id} {status.map(item => item.value === data.status && item.name)} {new Date(data.create_by).toLocaleString()} {restore.map(item => item.value === data.restore && item.name)} {userInfo.auth_list && userInfo.auth_list.some(auth => auth.id === 30) && (