diff --git a/egovframe-template-simple-react-contribution/public/assets/images/ico-landing12.png b/egovframe-template-simple-react-contribution/public/assets/images/ico-landing12.png new file mode 100644 index 0000000..1ca2ec2 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/ico-landing12.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/ico-landing13.png b/egovframe-template-simple-react-contribution/public/assets/images/ico-landing13.png new file mode 100644 index 0000000..d02eb64 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/ico-landing13.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x1.png b/egovframe-template-simple-react-contribution/public/assets/images/x1.png new file mode 100644 index 0000000..99c5471 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x1.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x10.png b/egovframe-template-simple-react-contribution/public/assets/images/x10.png new file mode 100644 index 0000000..879591a Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x10.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x11.png b/egovframe-template-simple-react-contribution/public/assets/images/x11.png new file mode 100644 index 0000000..f0548ea Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x11.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x12.png b/egovframe-template-simple-react-contribution/public/assets/images/x12.png new file mode 100644 index 0000000..268298a Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x12.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x13.png b/egovframe-template-simple-react-contribution/public/assets/images/x13.png new file mode 100644 index 0000000..23fab6b Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x13.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x14.png b/egovframe-template-simple-react-contribution/public/assets/images/x14.png new file mode 100644 index 0000000..f0170fd Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x14.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x15.png b/egovframe-template-simple-react-contribution/public/assets/images/x15.png new file mode 100644 index 0000000..a802d6c Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x15.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x16.png b/egovframe-template-simple-react-contribution/public/assets/images/x16.png new file mode 100644 index 0000000..2880a3d Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x16.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x17.png b/egovframe-template-simple-react-contribution/public/assets/images/x17.png new file mode 100644 index 0000000..d11e71f Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x17.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x18.png b/egovframe-template-simple-react-contribution/public/assets/images/x18.png new file mode 100644 index 0000000..aeb40b4 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x18.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x2.png b/egovframe-template-simple-react-contribution/public/assets/images/x2.png new file mode 100644 index 0000000..1dd61a3 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x2.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x3.png b/egovframe-template-simple-react-contribution/public/assets/images/x3.png new file mode 100644 index 0000000..4e7d656 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x3.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x4.png b/egovframe-template-simple-react-contribution/public/assets/images/x4.png new file mode 100644 index 0000000..1d3be9c Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x4.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x5.png b/egovframe-template-simple-react-contribution/public/assets/images/x5.png new file mode 100644 index 0000000..344b1e8 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x5.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x6.png b/egovframe-template-simple-react-contribution/public/assets/images/x6.png new file mode 100644 index 0000000..4a7c5f7 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x6.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x7.png b/egovframe-template-simple-react-contribution/public/assets/images/x7.png new file mode 100644 index 0000000..93a592a Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x7.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x8.png b/egovframe-template-simple-react-contribution/public/assets/images/x8.png new file mode 100644 index 0000000..5bc3ba6 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x8.png differ diff --git a/egovframe-template-simple-react-contribution/public/assets/images/x9.png b/egovframe-template-simple-react-contribution/public/assets/images/x9.png new file mode 100644 index 0000000..df56be3 Binary files /dev/null and b/egovframe-template-simple-react-contribution/public/assets/images/x9.png differ diff --git a/egovframe-template-simple-react-contribution/src/pages/main/EgovMain.jsx b/egovframe-template-simple-react-contribution/src/pages/main/EgovMain.jsx index a9e3c2a..10edfa0 100644 --- a/egovframe-template-simple-react-contribution/src/pages/main/EgovMain.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/main/EgovMain.jsx @@ -19,6 +19,8 @@ import {getLocalItem, setLocalItem} from "utils/storage"; import URL from 'constants/url'; import CODE from "constants/code"; +import CustomModal from './EgovModal'; +import { useCookies } from "react-cookie"; function a11yProps(index) { return { @@ -27,6 +29,27 @@ function a11yProps(index) { }; } + +function TabPanel(props) { + const { children, value, index, ...other } = props; + + return ( + + ); +} + function EgovMain(props) { console.group("EgovMain"); console.log("[Start] EgovMain ------------------------------"); @@ -39,6 +62,19 @@ function EgovMain(props) { const [user, setUser] = useState(parseJwt(getLocalItem('accessToken')) || null); console.log(user); + // 모달 상태 및 콘텐츠 관리 + const [show, setShow] = React.useState(false); + const [modalContent, setModalContent] = React.useState({}); + const [showModals, setShowModals] = useState([]); + const [cookies, setCookie] = useCookies([`MainModal_${modalContent.id}`]); + + const handleShow = (content) => { + setShowModals(prev => [...prev, content]); + }; + const handleClose = (id) => { + setShowModals(prev => prev.filter(modal => modal.id !== id)); + }; + const handlePlusClick = (currentTabValue) => { const urls = [ URL.SUPPORT_LIST_NOCODE+'/KCSC-NOT', @@ -182,6 +218,36 @@ function EgovMain(props) { // retrieveList(); // }, [retrieveList]); + useEffect(() => { + // 모달 콘텐츠 배열 + const modalContents = [ + { + id: 1, + title: `제목 제목 제목 제목 제목 제목 1`, + body: `내용 내용 내용 내용 내용 내용 내용 내용 내용 내용\\n내용 내용 내용 내용 내용 내용 내용 내용 내용 내용\\n내용 내용 내용 내용 내용 내용 내용 내용 내용 내용 1`, + files: [ + { name: '파일1.txt', imageSrc: '/assets/images/file.png' }, + { name: '파일2.txt', imageSrc: '/assets/images/file.png' } + ] + }, + { + id: 2, + title: `제목 2`, + body: `내용 2\n내용 2`, + files: [ + { name: '파일3.txt', imageSrc: '/assets/images/file.png' }, + { name: '파일4.txt', imageSrc: '/assets/images/file.png' } + ] + } + ]; + + // 쿠키가 없는 모달만 열기 + modalContents.forEach(content => { + if (!cookies[`MainModal_${content.id}`]) { + handleShow(content); + } + }); + }, [cookies]); const onChangeLogin = (user) => { setUser(user); @@ -798,30 +864,19 @@ function EgovMain(props) { + + {showModals.map(modalContent => ( + handleClose(modalContent.id)} + modalContent={modalContent} + /> + ))} ); } -function TabPanel(props) { - const { children, value, index, ...other } = props; - - return ( - - ); -} - export default EgovMain; diff --git a/egovframe-template-simple-react-contribution/src/pages/main/EgovModal.jsx b/egovframe-template-simple-react-contribution/src/pages/main/EgovModal.jsx new file mode 100644 index 0000000..c90f9ab --- /dev/null +++ b/egovframe-template-simple-react-contribution/src/pages/main/EgovModal.jsx @@ -0,0 +1,70 @@ +import React from 'react'; +import Modal from 'react-bootstrap/Modal'; +import { Row, Col, Button } from 'react-bootstrap'; +import { useCookies } from 'react-cookie'; + +const CustomModal = ({ show, handleClose, modalContent }) => { + const [dontShowAgain, setDontShowAgain] = React.useState(false); + const [cookies, setCookie] = useCookies([`MainModal_${modalContent.id}`]); + + const handleCheckboxChange = () => { + const newDontShowAgain = !dontShowAgain; + setDontShowAgain(newDontShowAgain); + if (newDontShowAgain) { + const expirationDate = new Date(); + expirationDate.setDate(expirationDate.getDate() + 1); + setCookie(`MainModal_${modalContent.id}`, "true", { expires: expirationDate }); + handleClose(); + } + }; + + React.useEffect(() => { + if (cookies[`MainModal_${modalContent.id}`]) { + handleClose(); + } + }, [cookies, modalContent.id, handleClose]); + + return ( + + + {modalContent.title} + + + + + {modalContent.body && modalContent.body.split("\n").map((line, index) => ( + + {line} +
+
+ ))} + +
+ {modalContent.files && modalContent.files.map((file, index) => ( + + 파일 + {file.name} + + ))} + {/**/} + {/* */} + {/* 파일명*/} + {/**/} + {/**/} + {/* */} + {/* 파일명*/} + {/**/} + {/**/} + {/* */} + {/* 파일명*/} + {/**/} +
+ + + + +
+ ); +}; + +export default CustomModal; \ No newline at end of file