import React, { useState, useEffect, useCallback, useRef } from 'react'; import { Link, useLocation } from 'react-router-dom'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; import EgovPaging from 'components/EgovPaging'; import { itemIdxByPage } from 'utils/calc'; import CODE from "../../../constants/code"; import AboutSiteModal from "../config/aboutSiteMgt/AboutSiteModal"; import AdminPostMgtEdit from "./AdminPostMgtEdit"; import Modal from "react-bootstrap/Modal"; import {format} from "date-fns"; import {Form} from "react-bootstrap"; const fileIconPath = require('../../../css/images/ico_file.png'); function AdminPostMgtList(props) { console.group("EgovAdminPostList"); console.log("[Start] EgovAdminPostList ------------------------------"); console.log("EgovAdminPostList [props] : ", props); const location = useLocation(); console.log("EgovAdminPostList [location] : ", location); // eslint-disable-next-line no-unused-vars const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { pageIndex: 1, searchCnd: '0', searchKeyword: '', bbsSeq:8 });// 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시 const [paginationInfo, setPaginationInfo] = useState({}); const cndRef = useRef(); const wrdRef = useRef(); const [listTag, setListTag] = useState([]); const [categoryList, setCategoryList] = useState([]); const [show, setShow] = useState(false); const [modalBody, setModalBody] = useState(); const handleClose = () => setShow(false); const handleShow = () => setShow(true); const retrieveList = useCallback((searchCondition) => { handleClose(); const params = EgovNet.convParams(searchCondition); console.groupCollapsed("EgovAdminPostList.retrieveList()"); const retrieveListURL = '/admin/boards/posts/post-list' + params; const requestOptions = { method: "GET", headers: { 'Content-type': 'application/json', } } EgovNet.requestFetch(retrieveListURL, requestOptions, (resp) => { setPaginationInfo(resp.result.paginationInfo); setCategoryList(resp.result.categoryList); console.log("@@@ resultCnt : " + resp.result.resultCnt); let mutListTag = []; setListTag([]); resp.result.fixedList.forEach(function (item) { const finalModifiedDate = item?.lastChgDt ? item?.lastChgDt : item?.frstCrtDt; const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm") : ""; mutListTag.push(
검색된 결과가 없습니다.
); // 게시판 목록 초기값 setListTag(mutListTag); }, function (resp) { console.log("err response : ", resp); } ); console.groupEnd("EgovAdminPostList.retrieveList()"); },[listTag]); useEffect(() => { retrieveList(searchCondition); // eslint-disable-next-line react-hooks/exhaustive-deps }, [searchCondition]); const handleSelectChange = (e) => { setSearchCondition({...searchCondition, bbsSeq: e.target.value}) } function editPost(item){ handleShow(); if(item != undefined) { item.mode = CODE.MODE_MODIFY; } else { item = {}; item.selectedBbsSeq = searchCondition.bbsSeq; } setModalBody(