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) ? (