From 9ece139fb92977448d1d4718854f842f179eb1c8 Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 16:06:10 +0900 Subject: [PATCH 01/19] =?UTF-8?q?#29=20[FEAT]=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=8F=99?= =?UTF-8?q?=EC=A0=81=20=EB=9D=BC=EC=9A=B0=ED=8C=85=20=EB=B0=8F=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=EB=B0=94=20=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?=EC=9C=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/instructor/layout.tsx | 2 +- .../instructor/revision/[commissionId]/page.tsx | 12 ++++++++++++ .../instructor/home/ui/ModifyingCommissionsRow.tsx | 11 +++++++++-- src/shared/ui/SidebarMenu.tsx | 7 +++++-- src/widgets/instructor/revision/index.ts | 1 + .../revision/ui/RevisionRequestSection.tsx | 14 ++++++++++++++ 6 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 src/app/instructor/revision/[commissionId]/page.tsx create mode 100644 src/widgets/instructor/revision/index.ts create mode 100644 src/widgets/instructor/revision/ui/RevisionRequestSection.tsx diff --git a/src/app/instructor/layout.tsx b/src/app/instructor/layout.tsx index 9b6cafe..18d287f 100644 --- a/src/app/instructor/layout.tsx +++ b/src/app/instructor/layout.tsx @@ -11,7 +11,7 @@ const InstructorLayout = ({ children }: { children: ReactNode }) => {
}> - +
{children}
diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx new file mode 100644 index 0000000..ad6b59b --- /dev/null +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -0,0 +1,12 @@ +import { RevisionRequestSection } from "@/widgets/instructor/revision"; + +const page = () => { + return ( +
+

YBM 영어 교재

+ +
+ ); +}; + +export default page; diff --git a/src/features/instructor/home/ui/ModifyingCommissionsRow.tsx b/src/features/instructor/home/ui/ModifyingCommissionsRow.tsx index af58fb7..9573f50 100644 --- a/src/features/instructor/home/ui/ModifyingCommissionsRow.tsx +++ b/src/features/instructor/home/ui/ModifyingCommissionsRow.tsx @@ -1,3 +1,5 @@ +import { useRouter } from "next/navigation"; + import { getDDay } from "@/features/instructor/home/lib/getDDay"; import { ModifyingItem } from "@/features/instructor/home/model/home"; import { cn } from "@/shared/lib/utils/cn"; @@ -5,7 +7,8 @@ import Button from "@/shared/ui/Button"; import Tag from "@/shared/ui/Tag"; const ModifyingCommissionsRow = ({ item }: { item: ModifyingItem }) => { - const { title, finalDeadline, isSubmitted, hasUpdate } = item; + const router = useRouter(); + const { commissionId, title, finalDeadline, isSubmitted, hasUpdate } = item; return (
@@ -20,7 +23,11 @@ const ModifyingCommissionsRow = ({ item }: { item: ModifyingItem }) => { {isSubmitted ? ( ) : ( - )} diff --git a/src/shared/ui/SidebarMenu.tsx b/src/shared/ui/SidebarMenu.tsx index aa02a84..2405179 100644 --- a/src/shared/ui/SidebarMenu.tsx +++ b/src/shared/ui/SidebarMenu.tsx @@ -9,13 +9,16 @@ import { SIDEBAR_ICON_MAP } from "@/shared/config/sidebarMenu"; interface SidebarMenuProps { label: string; href?: string; + matchPrefix?: string; } -const SidebarMenu = ({ label, href }: SidebarMenuProps) => { +const SidebarMenu = ({ label, href, matchPrefix }: SidebarMenuProps) => { const pathname = usePathname(); const [isHovered, setIsHovered] = useState(false); - const isSelected = href ? pathname === href : false; + const isSelected = href + ? pathname === href || (!!matchPrefix && pathname.startsWith(matchPrefix)) + : false; const isActive = isSelected || isHovered; const icons = SIDEBAR_ICON_MAP[label]; diff --git a/src/widgets/instructor/revision/index.ts b/src/widgets/instructor/revision/index.ts new file mode 100644 index 0000000..bc1291f --- /dev/null +++ b/src/widgets/instructor/revision/index.ts @@ -0,0 +1 @@ +export { default as RevisionRequestSection } from "@/widgets/instructor/revision/ui/RevisionRequestSection"; diff --git a/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx new file mode 100644 index 0000000..2626803 --- /dev/null +++ b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx @@ -0,0 +1,14 @@ +const RevisionRequestSection = () => { + return ( +
+

+ 수정 요청하기 ( + 3 + /3) +

+

시안 수정은 총 3회 수정이 가능합니다.

+
+ ); +}; + +export default RevisionRequestSection; From 23b16014097a93baf658b4aff6b6df023e2b2945 Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 16:28:55 +0900 Subject: [PATCH 02/19] =?UTF-8?q?#29=20[FEAT]=20=EC=8D=B8=EB=84=A4?= =?UTF-8?q?=EC=9D=BC=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/thumbnail_mock.jpg | Bin 0 -> 123562 bytes src/app/globals.css | 10 +++++++ src/shared/ui/Thumbnail.tsx | 26 ++++++++++++++++++ .../revision/ui/RevisionRequestSection.tsx | 19 +++++++++---- 4 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 public/images/thumbnail_mock.jpg create mode 100644 src/shared/ui/Thumbnail.tsx diff --git a/public/images/thumbnail_mock.jpg b/public/images/thumbnail_mock.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d498c629a330548d6b32448b8e0986cae66cbdef GIT binary patch literal 123562 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℘!e9x zx6vl2)+4VM?QFByo5ucy0Q`2En%%F<19IW{&#!x2h>wP^QkdVcHVj&+q1iEv*ApAQ?gsx!1#zf6;tz}mN6Jai441Pl%w3| zcQ^czR0MsG=%Of$sQN~qxpa)ENH8^c4s%@?B|y)ph0&JJ{6=!pdFxBP=3;IV;vY|d z6s!>#P4K_ruio$&bP#C^IkPifh^3NnOS?lQmBxwjM2>#)b8 z>!OC=J4Hl(YFhgG{6atOpkO@f?B>g+nA45k$y1D{H(Za Lc8=m6?+5-Lk~6r+ literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css index 1a297dc..7efad50 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -57,6 +57,10 @@ --color-blue-bright: #e0eeff; --color-blue-main: #0248c2; + /* Overlay */ + --color-overlay-hover: rgba(86, 75, 96, 0.58); + --color-overlay-button: rgba(255, 255, 255, 0.18); + /* ========================= Typography ========================= */ @@ -175,6 +179,12 @@ ========================= */ --shadow-dropdown: 0 0 20px 4px rgba(0, 0, 0, 0.05); + /* ========================= + Blur Tokens + ========================= */ + --blur-hover: 1.7px; + --blur-button: 2px; + /* ========================= Radius Tokens ========================= */ diff --git a/src/shared/ui/Thumbnail.tsx b/src/shared/ui/Thumbnail.tsx new file mode 100644 index 0000000..54d6282 --- /dev/null +++ b/src/shared/ui/Thumbnail.tsx @@ -0,0 +1,26 @@ +import Image from "next/image"; + +import { SearchIcon } from "@/shared/assets/icons"; + +interface ThumbnailProps { + src?: string; + alt?: string; +} + +const Thumbnail = ({ src = "/images/thumbnail_mock.jpg", alt = "썸네일" }: ThumbnailProps) => { + return ( +
+ {alt} +
+ +
+ ); +}; + +export default Thumbnail; diff --git a/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx index 2626803..8cfffc2 100644 --- a/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx +++ b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx @@ -1,12 +1,19 @@ +import Thumbnail from "@/shared/ui/Thumbnail"; + const RevisionRequestSection = () => { return (
-

- 수정 요청하기 ( - 3 - /3) -

-

시안 수정은 총 3회 수정이 가능합니다.

+
+
+

+ 수정 요청하기 ( + 3 + /3) +

+

시안 수정은 총 3회 수정이 가능합니다.

+
+ +
); }; From ef82bf5a2439fa1cdee12902e2009a05101d8dcd Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 16:51:55 +0900 Subject: [PATCH 03/19] =?UTF-8?q?#29=20[FEAT]=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=EC=B4=88=EA=B8=B0=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=ED=8D=BC=EB=B8=94=EB=A6=AC=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../revision/[commissionId]/page.tsx | 45 +++++++++++++++++-- .../instructor/revision/config/revision.ts | 9 ++++ .../revision/ui/RevisionRequestSection.tsx | 43 +++++++++++++++++- 3 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 src/widgets/instructor/revision/config/revision.ts diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx index ad6b59b..0e871bb 100644 --- a/src/app/instructor/revision/[commissionId]/page.tsx +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -1,12 +1,51 @@ +"use client"; + +import { useState } from "react"; + +import Button from "@/shared/ui/Button"; import { RevisionRequestSection } from "@/widgets/instructor/revision"; +import { MAX_SELECTABLE_COUNT } from "@/widgets/instructor/revision/config/revision"; + +const Page = () => { + const [selectedCategories, setSelectedCategories] = useState([]); + + const handleToggleCategory = (category: string) => { + setSelectedCategories(prev => { + if (prev.includes(category)) { + return prev.filter(selected => selected !== category); + } + if (prev.length >= MAX_SELECTABLE_COUNT) { + return prev; + } + return [...prev, category]; + }); + }; -const page = () => { return (

YBM 영어 교재

- +
+ +
+ + +
+
); }; -export default page; +export default Page; diff --git a/src/widgets/instructor/revision/config/revision.ts b/src/widgets/instructor/revision/config/revision.ts new file mode 100644 index 0000000..2d5f640 --- /dev/null +++ b/src/widgets/instructor/revision/config/revision.ts @@ -0,0 +1,9 @@ +export const REVISION_CATEGORIES = [ + "레이아웃 수정", + "타이포 수정", + "디자인 수정", + "색상 수정", + "기타", +]; + +export const MAX_SELECTABLE_COUNT = 2; diff --git a/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx index 8cfffc2..cee364a 100644 --- a/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx +++ b/src/widgets/instructor/revision/ui/RevisionRequestSection.tsx @@ -1,6 +1,18 @@ +"use client"; + +import { CheckboxFillIcon, CheckboxWhiteIcon } from "@/shared/assets/icons"; import Thumbnail from "@/shared/ui/Thumbnail"; +import { REVISION_CATEGORIES } from "@/widgets/instructor/revision/config/revision"; + +interface RevisionRequestSectionProps { + selectedCategories: string[]; + onToggleCategory: (category: string) => void; +} -const RevisionRequestSection = () => { +const RevisionRequestSection = ({ + selectedCategories, + onToggleCategory, +}: RevisionRequestSectionProps) => { return (
@@ -12,7 +24,34 @@ const RevisionRequestSection = () => {

시안 수정은 총 3회 수정이 가능합니다.

- +
+ +
+
+

+ 수정하고 싶은 카테고리를 골라주세요 +

+

1회 수정에 최대 2개까지 가능합니다.

+
+
+
+ {REVISION_CATEGORIES.map(category => { + const isSelected = selectedCategories.includes(category); + const CheckboxIcon = isSelected ? CheckboxFillIcon : CheckboxWhiteIcon; + return ( +
onToggleCategory(category)} + > + +

{category}

+
+ ); + })} +
+
+
); From d0f23b9150ca09b90875322e9fe645dec28c771b Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 16:55:07 +0900 Subject: [PATCH 04/19] =?UTF-8?q?#29=20[FEAT]=20=EC=B5=9C=EC=A2=85=20?= =?UTF-8?q?=EC=8B=9C=EC=95=88=20=EC=84=A0=ED=83=9D=20=EB=AA=A8=EB=8B=AC=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../revision/[commissionId]/page.tsx | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx index 0e871bb..b3b218b 100644 --- a/src/app/instructor/revision/[commissionId]/page.tsx +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -1,13 +1,19 @@ "use client"; +import { useRouter } from "next/navigation"; import { useState } from "react"; import Button from "@/shared/ui/Button"; +import Modal from "@/shared/ui/Modal"; import { RevisionRequestSection } from "@/widgets/instructor/revision"; import { MAX_SELECTABLE_COUNT } from "@/widgets/instructor/revision/config/revision"; const Page = () => { + const router = useRouter(); const [selectedCategories, setSelectedCategories] = useState([]); + const [isFinalizeModalOpen, setIsFinalizeModalOpen] = useState(false); + + const isFinalizeActive = selectedCategories.length === 0; const handleToggleCategory = (category: string) => { setSelectedCategories(prev => { @@ -21,6 +27,15 @@ const Page = () => { }); }; + const handleCloseFinalizeModal = () => { + setIsFinalizeModalOpen(false); + }; + + const handleConfirmFinalize = () => { + setIsFinalizeModalOpen(false); + router.push("/instructor"); + }; + return (

YBM 영어 교재

@@ -32,7 +47,8 @@ const Page = () => {
@@ -44,6 +60,17 @@ const Page = () => {
+
); }; From 920649167d7b615d2f454c9344bea2bd453eda3b Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 17:20:45 +0900 Subject: [PATCH 05/19] =?UTF-8?q?#29=20[FEAT]=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=ED=95=9C=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EB=8A=94=20=EC=9D=B8=ED=92=8B=20=EC=84=B9=EC=85=98=20?= =?UTF-8?q?=EC=83=9D=EA=B8=B0=EB=8F=84=EB=A1=9D=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../revision/[commissionId]/page.tsx | 24 +++++++++---- src/shared/ui/Thumbnail.tsx | 2 +- src/widgets/instructor/revision/index.ts | 3 +- ...ection.tsx => RevisionCategorySection.tsx} | 8 ++--- .../revision/ui/RevisionCommentSection.tsx | 34 +++++++++++++++++++ 5 files changed, 58 insertions(+), 13 deletions(-) rename src/widgets/instructor/revision/ui/{RevisionRequestSection.tsx => RevisionCategorySection.tsx} (93%) create mode 100644 src/widgets/instructor/revision/ui/RevisionCommentSection.tsx diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx index b3b218b..16f3c2c 100644 --- a/src/app/instructor/revision/[commissionId]/page.tsx +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -5,15 +5,19 @@ import { useState } from "react"; import Button from "@/shared/ui/Button"; import Modal from "@/shared/ui/Modal"; -import { RevisionRequestSection } from "@/widgets/instructor/revision"; +import { RevisionCategorySection, RevisionCommentSection } from "@/widgets/instructor/revision"; import { MAX_SELECTABLE_COUNT } from "@/widgets/instructor/revision/config/revision"; const Page = () => { const router = useRouter(); const [selectedCategories, setSelectedCategories] = useState([]); + const [comments, setComments] = useState>({}); const [isFinalizeModalOpen, setIsFinalizeModalOpen] = useState(false); const isFinalizeActive = selectedCategories.length === 0; + const isSubmitActive = + selectedCategories.length > 0 && + selectedCategories.every(category => (comments[category] ?? "").trim().length > 0); const handleToggleCategory = (category: string) => { setSelectedCategories(prev => { @@ -27,6 +31,10 @@ const Page = () => { }); }; + const handleChangeComment = (category: string, value: string) => { + setComments(prev => ({ ...prev, [category]: value })); + }; + const handleCloseFinalizeModal = () => { setIsFinalizeModalOpen(false); }; @@ -37,13 +45,18 @@ const Page = () => { }; return ( -
+

YBM 영어 교재

- +
-
diff --git a/src/shared/ui/Thumbnail.tsx b/src/shared/ui/Thumbnail.tsx index 54d6282..c0c3a3d 100644 --- a/src/shared/ui/Thumbnail.tsx +++ b/src/shared/ui/Thumbnail.tsx @@ -10,7 +10,7 @@ interface ThumbnailProps { const Thumbnail = ({ src = "/images/thumbnail_mock.jpg", alt = "썸네일" }: ThumbnailProps) => { return (
- {alt} + {alt}
- +

From 6d720f60788f4fa447e63dceb5f34a5c168dedd6 Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 18:04:20 +0900 Subject: [PATCH 08/19] =?UTF-8?q?#29=20[REFACTOR]=20=EC=8D=B8=EB=84=A4?= =?UTF-8?q?=EC=9D=BC=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20className?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=81=AC=EA=B8=B0=20=EC=A0=9C=EC=96=B4?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/ui/Thumbnail.tsx | 23 +++++++------------ .../revision/ui/RevisionCategorySection.tsx | 2 +- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/shared/ui/Thumbnail.tsx b/src/shared/ui/Thumbnail.tsx index 09c027f..1d72fab 100644 --- a/src/shared/ui/Thumbnail.tsx +++ b/src/shared/ui/Thumbnail.tsx @@ -1,34 +1,27 @@ import Image from "next/image"; -import type { CSSProperties } from "react"; import { SearchIcon } from "@/shared/assets/icons"; +import { cn } from "@/shared/lib/utils/cn"; interface ThumbnailProps { src?: string; alt?: string; - width?: number; - height?: number; + className?: string; } const Thumbnail = ({ src = "/images/thumbnail_mock.jpg", alt = "썸네일", - width = 250, - height = 255, + className, }: ThumbnailProps) => { return (

- {alt} + {alt}
- +

From 6074b18d48c88b14ebfdb22ecc01ebde804a38ef Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 18:34:23 +0900 Subject: [PATCH 09/19] =?UTF-8?q?#29=20[FEAT]=20mockData=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=20=EA=B5=AC=EC=A1=B0=20=EC=88=98=EC=A0=95=20=EB=B0=8F?= =?UTF-8?q?=20=EC=9E=94=EC=97=AC=20=ED=9A=9F=EC=88=98=200=ED=9A=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=20=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../revision/[commissionId]/page.tsx | 18 +++++- src/features/instructor/home/model/home.ts | 2 +- .../instructor/revision/model/revision.ts | 62 +++++++++++++++++++ .../revision/ui/RevisionCategorySection.tsx | 36 ++++++++--- 4 files changed, 107 insertions(+), 11 deletions(-) create mode 100644 src/widgets/instructor/revision/model/revision.ts diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx index 16f3c2c..ff52bd6 100644 --- a/src/app/instructor/revision/[commissionId]/page.tsx +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -1,15 +1,20 @@ "use client"; -import { useRouter } from "next/navigation"; +import { useParams, useRouter } from "next/navigation"; import { useState } from "react"; import Button from "@/shared/ui/Button"; import Modal from "@/shared/ui/Modal"; import { RevisionCategorySection, RevisionCommentSection } from "@/widgets/instructor/revision"; import { MAX_SELECTABLE_COUNT } from "@/widgets/instructor/revision/config/revision"; +import { draftRevisionDetailData } from "@/widgets/instructor/revision/model/revision"; const Page = () => { const router = useRouter(); + const { commissionId } = useParams<{ commissionId: string }>(); + const draftRevisionDetail = draftRevisionDetailData.find( + detail => detail.commissionId === Number(commissionId), + ); const [selectedCategories, setSelectedCategories] = useState([]); const [comments, setComments] = useState>({}); const [isFinalizeModalOpen, setIsFinalizeModalOpen] = useState(false); @@ -44,11 +49,20 @@ const Page = () => { router.push("/instructor"); }; + if (draftRevisionDetail == null) { + return null; + } + return (

-

YBM 영어 교재

+

+ {draftRevisionDetail.title} +

diff --git a/src/features/instructor/home/model/home.ts b/src/features/instructor/home/model/home.ts index ee02c72..f2e5116 100644 --- a/src/features/instructor/home/model/home.ts +++ b/src/features/instructor/home/model/home.ts @@ -130,7 +130,7 @@ export const modifyingStatusData: ModifyingItem[] = [ { commissionId: 45, title: "한국사 능력검정 — 중급 핵심 요약", - isSubmitted: true, + isSubmitted: false, hasUpdate: true, finalDeadline: "2026-07-10", }, diff --git a/src/widgets/instructor/revision/model/revision.ts b/src/widgets/instructor/revision/model/revision.ts new file mode 100644 index 0000000..9dc9937 --- /dev/null +++ b/src/widgets/instructor/revision/model/revision.ts @@ -0,0 +1,62 @@ +// [강사] 작업 중 시안 조회 (수정 요청 페이지) +export type DraftRevisionDetail = { + commissionId: number; + title: string; + currentDraft: { + draftId: number; + thumbnailUrl: string; + designerComment: string; + }; + remainingRevisionCount: number; + maxRevisionCount: number; +}; + +export const draftRevisionDetailData: DraftRevisionDetail[] = [ + { + commissionId: 42, + title: "중등 수학 — 방정식과 함수 개념서", + currentDraft: { + draftId: 88, + thumbnailUrl: "", + designerComment: + "지난번 수정사항 중 이러이러한 거 이렇게 바꿨는데 진심 너무 구려서 안하고 이렇게 하는것을 제안합니다...", + }, + remainingRevisionCount: 1, + maxRevisionCount: 3, + }, + { + commissionId: 44, + title: "초등 국어 — 받아쓰기 및 독해 기초", + currentDraft: { + draftId: 90, + thumbnailUrl: "", + designerComment: + "요청하신 색상 톤으로 전체적인 분위기를 따뜻하게 조정해봤습니다. 확인 부탁드립니다.", + }, + remainingRevisionCount: 2, + maxRevisionCount: 3, + }, + { + commissionId: 45, + title: "한국사 능력검정 — 중급 핵심 요약", + currentDraft: { + draftId: 95, + thumbnailUrl: "", + designerComment: + "요청하신 색상 톤을 기준으로 전체적인 배색과 명도 균형을 다시 잡아보았습니다. 기존 시안에서는 색감이 다소 차갑게 느껴질 수 있다는 의견을 반영해, 주조색의 채도를 살짝 낮추고 보조색과의 대비를 조정하여 전체적으로 한층 따뜻하고 차분한 분위기가 느껴지도록 손봤습니다. 또한 텍스트와 배경 간의 명도 차이를 다시 점검하여 가독성도 함께 보완했습니다. 혹시 색감의 톤이나 특정 영역의 배색에서 더 조정이 필요하다고 느끼시는 부분이 있다면 편하게 말씀해 주시면 바로 반영하도록 하겠습니다. 확인 부탁드립니다.", + }, + remainingRevisionCount: 3, + maxRevisionCount: 3, + }, + { + commissionId: 46, + title: "고등 화학 I — 원소와 화학 반응", + currentDraft: { + draftId: 92, + thumbnailUrl: "", + designerComment: "타이포 크기와 자간을 조정하여 가독성을 높였습니다. 의견 부탁드려요.", + }, + remainingRevisionCount: 0, + maxRevisionCount: 3, + }, +]; diff --git a/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx b/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx index f1e64ea..abb71dd 100644 --- a/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx +++ b/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx @@ -1,16 +1,23 @@ "use client"; import { CheckboxFillIcon, CheckboxWhiteIcon } from "@/shared/assets/icons"; +import { cn } from "@/shared/lib/utils/cn"; import CommentCard from "@/shared/ui/CommentCard"; import Thumbnail from "@/shared/ui/Thumbnail"; import { REVISION_CATEGORIES } from "@/widgets/instructor/revision/config/revision"; interface RevisionCategorySectionProps { + designerComment: string; + remainingRevisionCount: number; + maxRevisionCount: number; selectedCategories: string[]; onToggleCategory: (category: string) => void; } const RevisionCategorySection = ({ + designerComment, + remainingRevisionCount, + maxRevisionCount, selectedCategories, onToggleCategory, }: RevisionCategorySectionProps) => { @@ -18,11 +25,18 @@ const RevisionCategorySection = ({
-

- 수정 요청하기 ( - 3 - /3) -

+
+

+ 수정 요청하기 ( + {remainingRevisionCount} + /{maxRevisionCount}) +

+ {remainingRevisionCount === 0 && ( + + )} +

시안 수정은 총 3회 수정이 가능합니다.

@@ -42,10 +56,16 @@ const RevisionCategorySection = ({ return (
onToggleCategory(category)} + className={cn( + "flex flex-row gap-2", + remainingRevisionCount === 0 ? "cursor-not-allowed" : "cursor-pointer", + )} + onClick={() => { + if (remainingRevisionCount === 0) return; + onToggleCategory(category); + }} > - +

{category}

); From a026c3ccdd32ee3a9ab15fe44666c1025cd688ee Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 18:49:26 +0900 Subject: [PATCH 10/19] =?UTF-8?q?#29=20[FEAT]=20=EB=94=94=EC=9E=90?= =?UTF-8?q?=EC=9D=B4=EB=84=88=20=EC=BD=94=EB=A9=98=ED=8A=B8=20=EC=9C=A0?= =?UTF-8?q?=EB=AC=B4=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EB=B6=84=EA=B8=B0=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructor/revision/model/revision.ts | 4 +- .../revision/ui/RevisionCategorySection.tsx | 110 ++++++++++++------ 2 files changed, 74 insertions(+), 40 deletions(-) diff --git a/src/widgets/instructor/revision/model/revision.ts b/src/widgets/instructor/revision/model/revision.ts index 9dc9937..868a70e 100644 --- a/src/widgets/instructor/revision/model/revision.ts +++ b/src/widgets/instructor/revision/model/revision.ts @@ -19,7 +19,7 @@ export const draftRevisionDetailData: DraftRevisionDetail[] = [ draftId: 88, thumbnailUrl: "", designerComment: - "지난번 수정사항 중 이러이러한 거 이렇게 바꿨는데 진심 너무 구려서 안하고 이렇게 하는것을 제안합니다...", + "지난번 요청해 주신 수정사항을 반영해 보았는데, 막상 적용해 보니 전체적인 톤과 잘 어울리지 않는 것 같아 원래 방향을 살리는 쪽으로 다시 제안드립니다. 검토 후 의견 부탁드립니다.", }, remainingRevisionCount: 1, maxRevisionCount: 3, @@ -54,7 +54,7 @@ export const draftRevisionDetailData: DraftRevisionDetail[] = [ currentDraft: { draftId: 92, thumbnailUrl: "", - designerComment: "타이포 크기와 자간을 조정하여 가독성을 높였습니다. 의견 부탁드려요.", + designerComment: "", }, remainingRevisionCount: 0, maxRevisionCount: 3, diff --git a/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx b/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx index abb71dd..f1366fc 100644 --- a/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx +++ b/src/widgets/instructor/revision/ui/RevisionCategorySection.tsx @@ -7,7 +7,7 @@ import Thumbnail from "@/shared/ui/Thumbnail"; import { REVISION_CATEGORIES } from "@/widgets/instructor/revision/config/revision"; interface RevisionCategorySectionProps { - designerComment: string; + designerComment?: string; remainingRevisionCount: number; maxRevisionCount: number; selectedCategories: string[]; @@ -21,24 +21,79 @@ const RevisionCategorySection = ({ selectedCategories, onToggleCategory, }: RevisionCategorySectionProps) => { - return ( -
-
-
-
-

- 수정 요청하기 ( - {remainingRevisionCount} - /{maxRevisionCount}) -

- {remainingRevisionCount === 0 && ( - + const titleSection = ( +
+
+

+ 수정 요청하기 ( + {remainingRevisionCount} + /{maxRevisionCount}) +

+ {remainingRevisionCount === 0 && ( + + )} +
+

시안 수정은 총 3회 수정이 가능합니다.

+
+ ); + + const categoryCheckboxes = ( +
+ {REVISION_CATEGORIES.map(category => { + const isSelected = selectedCategories.includes(category); + const CheckboxIcon = isSelected ? CheckboxFillIcon : CheckboxWhiteIcon; + return ( +
{ + if (remainingRevisionCount === 0) return; + onToggleCategory(category); + }} + > + +

{category}

+
+ ); + })} +
+ ); + + if (designerComment) { + return ( +
+
+
+ +
+ {titleSection} + +
+
+
+
+

+ 수정하고 싶은 카테고리를 골라주세요 +

+

1회 수정에 최대 2개까지 가능합니다.

+
+
+ {categoryCheckboxes}
-

시안 수정은 총 3회 수정이 가능합니다.

+
+ ); + } + + return ( +
+
+ {titleSection}
@@ -49,28 +104,7 @@ const RevisionCategorySection = ({

1회 수정에 최대 2개까지 가능합니다.


-
- {REVISION_CATEGORIES.map(category => { - const isSelected = selectedCategories.includes(category); - const CheckboxIcon = isSelected ? CheckboxFillIcon : CheckboxWhiteIcon; - return ( -
{ - if (remainingRevisionCount === 0) return; - onToggleCategory(category); - }} - > - -

{category}

-
- ); - })} -
+ {categoryCheckboxes}
From 725e6d0e0637afebc26999946b7445dcdd96d24c Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 18:52:34 +0900 Subject: [PATCH 11/19] =?UTF-8?q?#29=20[MOVE]=20Modal=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20modal=20=ED=8F=B4=EB=8D=94=20=EC=95=84?= =?UTF-8?q?=EB=9E=98=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/instructor/revision/[commissionId]/page.tsx | 2 +- src/app/instructor/write/page.tsx | 2 +- src/shared/ui/{ => modal}/Modal.tsx | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename src/shared/ui/{ => modal}/Modal.tsx (100%) diff --git a/src/app/instructor/revision/[commissionId]/page.tsx b/src/app/instructor/revision/[commissionId]/page.tsx index ff52bd6..d715a82 100644 --- a/src/app/instructor/revision/[commissionId]/page.tsx +++ b/src/app/instructor/revision/[commissionId]/page.tsx @@ -4,7 +4,7 @@ import { useParams, useRouter } from "next/navigation"; import { useState } from "react"; import Button from "@/shared/ui/Button"; -import Modal from "@/shared/ui/Modal"; +import Modal from "@/shared/ui/modal/Modal"; import { RevisionCategorySection, RevisionCommentSection } from "@/widgets/instructor/revision"; import { MAX_SELECTABLE_COUNT } from "@/widgets/instructor/revision/config/revision"; import { draftRevisionDetailData } from "@/widgets/instructor/revision/model/revision"; diff --git a/src/app/instructor/write/page.tsx b/src/app/instructor/write/page.tsx index 1db6de1..073b2ea 100644 --- a/src/app/instructor/write/page.tsx +++ b/src/app/instructor/write/page.tsx @@ -4,7 +4,7 @@ import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { useWriteFormStore } from "@/features/instructor/write"; -import Modal from "@/shared/ui/Modal"; +import Modal from "@/shared/ui/modal/Modal"; import { Step1Content, Step2Content, Step3Content } from "@/widgets/instructor/write"; const WritePageContent = () => { diff --git a/src/shared/ui/Modal.tsx b/src/shared/ui/modal/Modal.tsx similarity index 100% rename from src/shared/ui/Modal.tsx rename to src/shared/ui/modal/Modal.tsx From 447f1aa493c5eae254cf8e197631dfb670281bd2 Mon Sep 17 00:00:00 2001 From: YuminPark Date: Mon, 8 Jun 2026 20:01:35 +0900 Subject: [PATCH 12/19] =?UTF-8?q?#29=20[FEAT]=20=EC=8B=9C=EC=95=88=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=20=EB=AA=A8=EB=8B=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/globals.css | 1 + src/shared/lib/hooks/useDragScrollbar.ts | 75 ++++++++++++++++++ src/shared/ui/DragScrollbar.tsx | 34 +++++++++ src/shared/ui/Thumbnail.tsx | 3 + src/shared/ui/modal/DraftModal.tsx | 55 ++++++++++++++ .../revision/ui/RevisionCategorySection.tsx | 76 +++++++++++-------- 6 files changed, 213 insertions(+), 31 deletions(-) create mode 100644 src/shared/lib/hooks/useDragScrollbar.ts create mode 100644 src/shared/ui/DragScrollbar.tsx create mode 100644 src/shared/ui/modal/DraftModal.tsx diff --git a/src/app/globals.css b/src/app/globals.css index 7efad50..a80d519 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -195,6 +195,7 @@ --radius-12: 12px; --radius-14: 14px; --radius-20: 20px; + --radius-24: 24px; --radius-32: 32px; --radius-48: 48px; --radius-100: 100px; diff --git a/src/shared/lib/hooks/useDragScrollbar.ts b/src/shared/lib/hooks/useDragScrollbar.ts new file mode 100644 index 0000000..bacdde3 --- /dev/null +++ b/src/shared/lib/hooks/useDragScrollbar.ts @@ -0,0 +1,75 @@ +import { type RefObject, useCallback, useEffect, useRef, useState } from "react"; + +interface UseDragScrollbarProps { + scrollRef: RefObject; +} + +export const useDragScrollbar = ({ scrollRef }: UseDragScrollbarProps) => { + const trackRef = useRef(null); + const [progress, setProgress] = useState(0); + const [isDragging, setIsDragging] = useState(false); + + useEffect(() => { + const scrollEl = scrollRef.current; + if (!scrollEl || isDragging) return; + + const syncProgress = () => { + const max = scrollEl.scrollWidth - scrollEl.clientWidth; + setProgress(max > 0 ? scrollEl.scrollLeft / max : 0); + }; + + syncProgress(); + scrollEl.addEventListener("scroll", syncProgress); + return () => scrollEl.removeEventListener("scroll", syncProgress); + }, [scrollRef, isDragging]); + + useEffect(() => { + const scrollEl = scrollRef.current; + if (!scrollEl) return; + + const handleWheel = (e: WheelEvent) => { + e.preventDefault(); + scrollEl.scrollLeft += e.deltaY; + }; + + scrollEl.addEventListener("wheel", handleWheel, { passive: false }); + return () => scrollEl.removeEventListener("wheel", handleWheel); + }, [scrollRef]); + + const moveToClientX = useCallback( + (clientX: number) => { + const track = trackRef.current; + const scrollEl = scrollRef.current; + if (!track || !scrollEl) return; + + const { left, width } = track.getBoundingClientRect(); + const ratio = Math.min(Math.max((clientX - left) / width, 0), 1); + const max = scrollEl.scrollWidth - scrollEl.clientWidth; + + setProgress(ratio); + scrollEl.scrollLeft = ratio * max; + }, + [scrollRef], + ); + + useEffect(() => { + if (!isDragging) return; + + const handleMouseMove = (e: MouseEvent) => moveToClientX(e.clientX); + const handleMouseUp = () => setIsDragging(false); + + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + return () => { + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + }; + }, [isDragging, moveToClientX]); + + const handleTrackMouseDown = (clientX: number) => { + setIsDragging(true); + moveToClientX(clientX); + }; + + return { trackRef, progress, handleTrackMouseDown }; +}; diff --git a/src/shared/ui/DragScrollbar.tsx b/src/shared/ui/DragScrollbar.tsx new file mode 100644 index 0000000..b29f010 --- /dev/null +++ b/src/shared/ui/DragScrollbar.tsx @@ -0,0 +1,34 @@ +"use client"; + +import type { RefObject } from "react"; + +import { useDragScrollbar } from "@/shared/lib/hooks/useDragScrollbar"; +import { cn } from "@/shared/lib/utils/cn"; + +interface DragScrollbarProps { + scrollRef: RefObject; + className?: string; +} + +const DragScrollbar = ({ scrollRef, className }: DragScrollbarProps) => { + const { trackRef, progress, handleTrackMouseDown } = useDragScrollbar({ scrollRef }); + const percent = `${progress * 100}%`; + + return ( +
+
handleTrackMouseDown(e.clientX)} + > +
+
+
+
+ ); +}; + +export default DragScrollbar; diff --git a/src/shared/ui/Thumbnail.tsx b/src/shared/ui/Thumbnail.tsx index 1d72fab..aedd4b2 100644 --- a/src/shared/ui/Thumbnail.tsx +++ b/src/shared/ui/Thumbnail.tsx @@ -7,12 +7,14 @@ interface ThumbnailProps { src?: string; alt?: string; className?: string; + onDetailClick?: () => void; } const Thumbnail = ({ src = "/images/thumbnail_mock.jpg", alt = "썸네일", className, + onDetailClick, }: ThumbnailProps) => { return (