diff --git a/egovframe-template-simple-react-contribution/package-lock.json b/egovframe-template-simple-react-contribution/package-lock.json index 8d0b8fd..803d454 100644 --- a/egovframe-template-simple-react-contribution/package-lock.json +++ b/egovframe-template-simple-react-contribution/package-lock.json @@ -3146,6 +3146,12 @@ "@types/node": "*" } }, + "@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, "@types/d3-array": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", @@ -3260,6 +3266,16 @@ "@types/unist": "^2" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -5551,6 +5567,11 @@ "domelementtype": "^2.2.0" } }, + "dompurify": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", + "integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==" + }, "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", @@ -11107,6 +11128,17 @@ "warning": "^4.0.3" } }, + "react-cookie": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/react-cookie/-/react-cookie-7.1.4.tgz", + "integrity": "sha512-wDxxa/HYaSXSMlyWJvJ5uZTzIVtQTPf1gMksFgwAz/2/W3lCtY8r4OChCXMPE7wax0PAdMY97UkNJedGv7KnDw==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "^3.3.5", + "hoist-non-react-statics": "^3.3.2", + "universal-cookie": "^7.0.0" + } + }, "react-copy-to-clipboard": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", @@ -12985,6 +13017,24 @@ "crypto-random-string": "^2.0.0" } }, + "universal-cookie": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-7.1.4.tgz", + "integrity": "sha512-Q+DVJsdykStWRMtXr2Pdj3EF98qZHUH/fXv/gwFz/unyToy1Ek1w5GsWt53Pf38tT8Gbcy5QNsj61Xe9TggP4g==", + "dev": true, + "requires": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0" + }, + "dependencies": { + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true + } + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", diff --git a/egovframe-template-simple-react-contribution/package.json b/egovframe-template-simple-react-contribution/package.json index 455de13..45cd28e 100644 --- a/egovframe-template-simple-react-contribution/package.json +++ b/egovframe-template-simple-react-contribution/package.json @@ -17,6 +17,7 @@ "apexcharts": "^3.45.2", "bootstrap": "^5.3.2", "date-fns": "^3.2.0", + "dompurify": "^3.1.5", "prop-types": "^15.8.1", "qs": "^6.11.0", "react": "^18.2.0", @@ -44,7 +45,8 @@ "devDependencies": { "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", - "@testing-library/user-event": "^13.5.0" + "@testing-library/user-event": "^13.5.0", + "react-cookie": "^7.1.4" }, "scripts": { "start": "react-scripts start", diff --git a/egovframe-template-simple-react-contribution/src/constants/url.js b/egovframe-template-simple-react-contribution/src/constants/url.js index 7343984..430e3a0 100644 --- a/egovframe-template-simple-react-contribution/src/constants/url.js +++ b/egovframe-template-simple-react-contribution/src/constants/url.js @@ -35,7 +35,7 @@ const URL = { SUPPORT : "/support", // 고객지원 SUPPORT_QNA : "/support/qna", // 게시판/QNA 소개 SUPPORT_LIST : "/support/list/:BbsCode", // 게시판/리스트 - SUPPORT_DETAIL : "/support/detail/:BbsCode", // 게시판/상세보기 + SUPPORT_DETAIL : "/support/detail/:bbsContSeq", // 게시판/상세보기 SUPPORT_CREATE : "/support/create/:BbsCode", // 게시판/글쓰기 SUPPORT_LIST_NOCODE : "/support/list", SUPPORT_DETAIL_NOCODE : "/support/detail", // 게시판/상세보기 diff --git a/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx b/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx index a4a67b7..ceb30db 100644 --- a/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/support/Detail.jsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import {Link, useNavigate} from 'react-router-dom'; +import {Link, useLocation, useNavigate, useParams} from 'react-router-dom'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; @@ -7,10 +7,20 @@ import URL from 'constants/url'; import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import Button from 'react-bootstrap/Button'; +import {format} from "date-fns"; +import DOMPurify from 'dompurify'; + function Detail(){ const navigate = useNavigate(); + const {bbsContSeq} = useParams(); + console.log("@@@ bbsContSeq : " + bbsContSeq); + + const location = useLocation(); + const item = location.state?.item; + console.log("@@@ item : " + JSON.stringify(item)); + const goToList = () => { navigate('/support/list/KCSC-QA'); }; @@ -45,38 +55,34 @@ function Detail(){