From a428b2e6797fb4dc0c130a0da817215bceffb39b Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 27 Apr 2026 12:25:29 +0900 Subject: [PATCH] =?UTF-8?q?feat(study):=20/study/sources=20=ED=95=99?= =?UTF-8?q?=EC=8A=B5=20hub=20=EC=8B=A0=EC=84=A4=20=E2=80=94=20=EC=9E=90?= =?UTF-8?q?=EB=A3=8C=20=ED=95=99=EC=8A=B5=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 기존 /library 의 회독 UI 를 학습 hub 로 분리. 학습 의도 인터페이스를 공부(/study) 트랙에 모아 자료실(library) 의 일반 자료 관리와 분리. 신규: - /study (hub): "자료 학습" / "손글씨 필사 세션" 두 카드 메뉴. Phase 2~ 예정 항목 (모바일 카드 / 퀴즈 / SRS) 안내. 기존 /study → /study/write 자동 redirect 제거. - /study/sources (자료 학습): · 좌측 트리: /api/library/tree 활용. 노드별 회독 안 본 카운트 (예: "3 / 12") 표시. 활성 경로 자동 펼치기. · 우측 본문: /api/documents/library 활용 (path/sort/unread/page). DocumentCard 재사용 — 회독 배지 (안 봄/N회독) 그대로 노출. · 안 본 자료만 토글 + 정렬 선택 + 페이지네이션. · 자료실 관리 기능 (CRUD/업로드/facet/승인 대기) 제외 — 순수 학습 UI. backend 변경 없음. PR-A 의 /api/documents/{id}/read* 와 library API 응답 read_count/unread_count 그대로 활용. 기존 /library 페이지의 회독 UI (배지/토글/ReadCounter) 는 일관성 위해 유지. 자료를 어디서 들어가든 회독 가능 (자료실 자료 detail 의 ReadCounter 도 그대로). --- frontend/src/routes/study/+page.svelte | 54 +++- .../src/routes/study/sources/+page.svelte | 294 ++++++++++++++++++ 2 files changed, 338 insertions(+), 10 deletions(-) create mode 100644 frontend/src/routes/study/sources/+page.svelte diff --git a/frontend/src/routes/study/+page.svelte b/frontend/src/routes/study/+page.svelte index 48de509..c61394a 100644 --- a/frontend/src/routes/study/+page.svelte +++ b/frontend/src/routes/study/+page.svelte @@ -1,13 +1,47 @@ -
학습 페이지로 이동 중...
+
+
+

+ 공부 +

+

학습 자료 회독 / 손글씨 필사 세션 / (예정) 퀴즈·복습.

+
+ + + +
+
예정 (Phase 2~)
+
    +
  • 모바일 암기노트 / 카드 복습
  • +
  • AI 자료 기반 퀴즈 출제 + 정답률 분야별 통계
  • +
  • SRS (1·3·7·14일 복습 일정)
  • +
+
+
diff --git a/frontend/src/routes/study/sources/+page.svelte b/frontend/src/routes/study/sources/+page.svelte new file mode 100644 index 0000000..99afa3c --- /dev/null +++ b/frontend/src/routes/study/sources/+page.svelte @@ -0,0 +1,294 @@ + + +자료 학습 — 공부 + +
+ +
+
+ + 공부 + + / + + 자료 학습 + +
+
+ 총 {totalCount}건 · 안 본 {totalUnread}건 +
+
+ +
+ + + + +
+ +
+ {#if activePath} + + 현재: {activePath} + + {/if} + + + + + + {total}건 +
+ + + {#if docsLoading} +
+ {#each Array(5) as _}{/each} +
+ {:else if docs.length === 0} + + {:else} +
+ {#each docs as doc (doc.id)} + + {/each} +
+ + + {#if total > 20} +
+ + {activePage} / {Math.ceil(total / 20)} + +
+ {/if} + {/if} +
+
+