From ecf6a8a865b62a2453aaead5621237b4a045dcbd Mon Sep 17 00:00:00 2001 From: moony1204 Date: Tue, 27 Aug 2024 21:29:03 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FEAT]=20=EC=82=B0=ED=95=99=ED=98=91?= =?UTF-8?q?=EB=A0=A5=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EB=AC=B8?= =?UTF-8?q?=EC=9D=98=20=ED=8E=98=EC=9D=B4=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 47 ++++++++-- src/app/(user)/infodesk/inquiries/page.tsx | 74 ++++++++++++++- .../infodesk/inquiries/projectQA.module.css | 44 +++++++++ .../(user)/infodesk/inquiries/write/page.tsx | 93 ++++++++++++++++++- .../inquiries/write/writeQA.module.css | 88 ++++++++++++++++++ 5 files changed, 335 insertions(+), 11 deletions(-) create mode 100644 src/app/(user)/infodesk/inquiries/projectQA.module.css create mode 100644 src/app/(user)/infodesk/inquiries/write/writeQA.module.css diff --git a/package-lock.json b/package-lock.json index 020f40a6..a9e1f70c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23827,6 +23827,11 @@ } } }, + "@types/js-cookie": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", + "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==" + }, "@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", @@ -24777,8 +24782,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "available-typed-arrays": { "version": "1.0.7", @@ -24795,6 +24799,16 @@ "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", "dev": true }, + "axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "axobject-query": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", @@ -25745,7 +25759,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -26216,8 +26229,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "depd": { "version": "2.0.0", @@ -27631,6 +27643,11 @@ "integrity": "sha512-topOrETNxJ6T2gAnQiWqAlzGPj8uI2wtmNOlDIMNB+qyvGJZ6R++STbUOTAYmvPhOMz2gXnXPH0hOvURYmrBow==", "dev": true }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -27698,7 +27715,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -29629,6 +29645,11 @@ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true }, + "js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -29764,6 +29785,11 @@ "object.values": "^1.1.6" } }, + "jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==" + }, "keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -30250,14 +30276,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -31284,6 +31308,11 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", diff --git a/src/app/(user)/infodesk/inquiries/page.tsx b/src/app/(user)/infodesk/inquiries/page.tsx index bf44f64d..8ef4ca35 100644 --- a/src/app/(user)/infodesk/inquiries/page.tsx +++ b/src/app/(user)/infodesk/inquiries/page.tsx @@ -1,3 +1,75 @@ +"use client"; + +import React from "react"; +//import { useRouter } from "next/navigation"; // Import the Next.js router + +import { SubHeadNavbar } from "@/components/common/SubHeadNavbar/SubHeadNavbar"; +import { Banner } from "@/components/common/Banner/Banner"; +import { Noticeboard, IBoardItem } from "@/components/common/Noticeboard/Noticeboard"; +import { PrimaryButton } from "@/components/common/Buttons/PrimaryButton/PrimaryButton"; // Import PrimaryButton + +import classes from "./projectQA.module.css"; + export default function InquiriesPage() { - return
Hello, world!
; + // const router = useRouter(); // Initialize the router + + const heading = "프로젝트 문의"; + const classifier = { + labels: ["전체", "제목", "내용", "제목+내용", "작성자"], + defaultLabel: 0, + searchPlaceholder: "검색어를 입력하세요", + }; + + const items: IBoardItem[] = [ + { + title: "프로젝트 문의입니다", + number: 1, + author: "관리자", + date: new Date("2024-08-01"), + view: 150, + pinned: true, + href: "/inquiries/1", + }, + { + title: "프로젝트 문의입니다", + number: 2, + author: "관리자", + date: new Date("2024-08-05"), + view: 100, + pinned: false, + href: "/inquiries/2", + }, + // More items can be added here + ]; + + //const handleButtonClick = () => { + //router.push("/inquiries/write"); + //}; + + return ( + <> +
+ +
+ +
+ +
+ +
+ + + +
+ + ); } diff --git a/src/app/(user)/infodesk/inquiries/projectQA.module.css b/src/app/(user)/infodesk/inquiries/projectQA.module.css new file mode 100644 index 00000000..85f333fa --- /dev/null +++ b/src/app/(user)/infodesk/inquiries/projectQA.module.css @@ -0,0 +1,44 @@ +/* Full-width navbar */ +.subHeadNavbar { + width: 100%; + padding: 0; + box-sizing: border-box; +} + +/* Banner section */ +.banner { + width: 100%; + padding: 0; + box-sizing: border-box; + margin-bottom: 20px; +} + +/* Main content section */ +.mainContent { + width: 80%; + max-width: 1440px; + margin: 0 auto; + padding: 20px; + box-sizing: border-box; + padding-bottom: 200px; + padding-top: 80px; + position: relative; +} + +/** 데스크탑 */ + +@media screen and (max-width: 480px) { + /** 모바일 세로 */ +} + +@media screen and (max-width: 768px) { + /** 모바일 가로, 태블릿 세로 */ +} + +@media screen and (max-width: 1024px) { + /** 태블릿 가로 */ +} + +@media screen and (max-width: 1280px) { + /** 태블릿 가로, 노트북 */ +} diff --git a/src/app/(user)/infodesk/inquiries/write/page.tsx b/src/app/(user)/infodesk/inquiries/write/page.tsx index 711ef9bf..8e31ef16 100644 --- a/src/app/(user)/infodesk/inquiries/write/page.tsx +++ b/src/app/(user)/infodesk/inquiries/write/page.tsx @@ -1,3 +1,94 @@ +"use client"; + +import React from "react"; +import { SubHeadNavbar } from "@/components/common/SubHeadNavbar/SubHeadNavbar"; +import { Banner } from "@/components/common/Banner/Banner"; +import { TextInput } from "@/components/common/TextInput"; +import { CheckBox } from "@/components/common/CheckBox/CheckBox"; +import { PrimaryButton } from "@/components/common/Buttons/PrimaryButton/PrimaryButton"; + +import classes from "./writeQA.module.css"; + export default function InquiryWritePage() { - return
Hello, world!
; + return ( + <> +
+ +
+ +
+ +
+ +
+

산학협력 과제 제안

+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + +
+
+ + ); } diff --git a/src/app/(user)/infodesk/inquiries/write/writeQA.module.css b/src/app/(user)/infodesk/inquiries/write/writeQA.module.css new file mode 100644 index 00000000..9c26ca9b --- /dev/null +++ b/src/app/(user)/infodesk/inquiries/write/writeQA.module.css @@ -0,0 +1,88 @@ +/* Full-width navbar */ +.subHeadNavbar { + width: 100%; + padding: 0; + box-sizing: border-box; +} + +/* Banner section */ +.banner { + width: 100%; + padding: 0; + box-sizing: border-box; + margin-bottom: 20px; +} + +/* Main content section */ +.mainContent { + width: 80%; + max-width: 1440px; + margin: 0 auto; + padding: 20px; + box-sizing: border-box; + padding-bottom: 100px; +} + +.heading { + margin-bottom: 40px; +} + +.formRow { + width: 100%; + margin-bottom: 20px; +} + +.formFile { + width: 100%; + display: flex; + margin-bottom: 20px; +} + +.formFile label { + margin-bottom: 15px; +} + +.formFile .InputWrapper { + margin-right: 30px; + /* TextInput과 버튼 사이에 간격 추가 */ +} + +.formFile .buttonWrapper { + margin-top: 30px; + /* 버튼 위에만 마진을 줌 */ +} + +.checkboxGroup { + margin-top: 15px; + display: flex; + gap: 20px; +} + +.formRow label { + font-weight: bold; + margin-bottom: 15px; +} + +.formActions { + display: flex; + justify-content: flex-end; + margin-top: 20px; +} + +/** 데스크탑 */ + +@media screen and (max-width: 480px) { + /** 모바일 세로 */ +} + +@media screen and (max-width: 768px) { + /** 모바일 가로, 태블릿 세로 */ +} + +@media screen and (max-width: 1024px) { + /** 태블릿 가로 */ +} + +@media screen and (max-width: 1280px) { + /** 태블릿 가로, 노트북 */ +} From 768b4e2e34ee58bc3eeb481711917bf5a1c7a767 Mon Sep 17 00:00:00 2001 From: moony1204 Date: Thu, 19 Sep 2024 11:39:35 +0900 Subject: [PATCH 2/2] conflict resolve + other errors solved --- src/app/(user)/infodesk/inquiries/page.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/(user)/infodesk/inquiries/page.tsx b/src/app/(user)/infodesk/inquiries/page.tsx index 8257e258..76e06dcf 100644 --- a/src/app/(user)/infodesk/inquiries/page.tsx +++ b/src/app/(user)/infodesk/inquiries/page.tsx @@ -17,10 +17,10 @@ export default function InquiriesPage() { const classifier = { data: [ { value: "0", label: "전체" }, - { value: "0", label: "제목" }, - { value: "0", label: "내용" }, - { value: "0", label: "작성자" }, - { value: "0", label: "제목+내용" }, + { value: "1", label: "제목" }, + { value: "2", label: "내용" }, + { value: "3", label: "작성자" }, + { value: "4", label: "제목+내용" }, ], defaultLabel: 0, searchPlaceholder: "검색어를 입력하세요", @@ -73,10 +73,10 @@ export default function InquiriesPage() {
{}} - handleKeyDown={() => {}} - handleSelect={() => {}} - handleSubmit={() => {}} + handleInput={() => { }} + handleKeyDown={() => { }} + handleSelect={() => { }} + handleSubmit={() => { }} heading={heading} classifier={classifier} items={items}