Skip to content

[feat/MAT-558] 홈 화면 오늘+내일 집중학습 카드 + home 모드 cleanup#330

Merged
sterdsterd merged 7 commits into
developfrom
feat/mat-558-home-focus-card
May 12, 2026
Merged

[feat/MAT-558] 홈 화면 오늘+내일 집중학습 카드 + home 모드 cleanup#330
sterdsterd merged 7 commits into
developfrom
feat/mat-558-home-focus-card

Conversation

@sterdsterd
Copy link
Copy Markdown
Collaborator

@sterdsterd sterdsterd commented May 12, 2026

Summary

mat-554에서 도입한 홈 카드 모드(WebView 기반)에 mat-558 "오늘+내일 집중학습 join"을 얹고, 1차 코드 리뷰 후 도출된 cleanup 항목을 함께 적용했습니다. 추가로 home/chat collapsible 애니메이션을 outer/inner + height-measurement + iOS-style easing 패턴으로 통일했습니다. queryOptions 패턴은 향후 API 레이어 마이그레이션의 PoC로 home 관련 두 hook에만 우선 도입.

Linear

Changes

  • feat(native): 오늘+내일 집중학습 카드 join — useHomeFocusCards composing hook 신설 (useQueries 병렬 fetch)
  • refactor(content-renderer): home init 메시지에서 name 필드 제거, 카드별 title/subtitle을 native에서 미리 조립 (${name}님을 위한 ...)
  • refactor(content-renderer): HomeCommentCard.timeRemainingInHoursexpiryAt: number | null. 렌더 시점 + 1분 간격 자동 갱신
  • refactor(content-renderer): 빈 title/description 시 element 자체 생략, CSS 클래스명을 스키마 변수명에 정렬 (home-study-item-title / home-study-item-description)
  • refactor(native): parseTipTapDoc@utils/tiptap shared util로 이동
  • refactor(native): dailyComment / focusCard hook을 queryOptions factory 패턴으로 재작성 ({ domain }Queries.byDate(...), 계층적 queryKey). 시그니처 유지.
  • feat(native): useFocusEffect로 홈 화면 진입 시 home 카드 데이터 invalidate (PTR 대체)
  • refactor(content-renderer): 집중학습 collapsible 구조 재정비 — outer/inner 분리 + height-measurement 패턴 + height: auto 해제로 동적 컨텐츠 대응
  • style(content-renderer): motion easing/duration을 --motion-ease: cubic-bezier(0.32, 0.72, 0, 1) + --motion-duration: 350ms CSS 변수로 추출. home + chat 모드에 일관 적용
  • fix(content-renderer): mock-data의 \begin{cases} LaTeX 백슬래시(\\) 복원

Testing

  • pnpm typecheck (native, content-renderer) clean
  • pnpm lint 모든 수정 파일 clean
  • pnpm jest 학생 transform 테스트 중 parseTipTapDoc 관련 pass
  • 디바이스 수동 확인 필요: 홈 진입 시 코멘트 + 오늘/다가오는 학습 그룹 렌더, 집중학습 collapsible 펼침/접힘 애니메이션 자연스러움, 코멘트 시간 뱃지 동작, 다른 탭 갔다 돌아왔을 때 데이터 fresh 갱신
  • pre-existing 테스트 실패 2건 (buildAllPointingsRightSections > parentProblemDisplayNo) — 이번 작업 무관, 그대로 둠

Risk / Impact

  • 영향 범위: 학생 앱 홈 화면 좌측 WebView 카드 렌더링, 공유 @repo/pointer-content-renderer home/chat 모드 (chat 모드도 동일 모노레포 내 학생 앱에서 사용 중)
  • 확인이 필요한 부분:
    • chat expand 애니메이션 easing이 미세 변경됨 (cubic-bezier(0.4, 0, 0.2, 1)(0.32, 0.72, 0, 1), duration 350ms는 동일)
    • daily-comment 응답에 expiryAt이 누락된 경우 시간 뱃지 자체가 표시되지 않음 (의도된 동작)
  • 배포 시 유의사항: 백엔드 응답 schema 변경 없음 → OTA 배포 가능

Screenshots / Video

image

Updated HomeStudyItem to use separate title and description fields
instead of headerText. Adjusted rendering logic and mock data to
support the new structure.
…t and focus-card hooks

계층적 queryKey (`['student', 'daily-comment', { commentDate }]`) 구조로 도메인 단위
invalidation 가능. useGetDailyComments / useGetFocusCards 시그니처 유지.
problem transforms 내부에 있던 util을 @utils/tiptap 으로 이동.
home transform 등 다른 feature에서도 import 가능하게 됨.
…title/expiryAt to cards

HomeCommentCard.timeRemainingInHours → expiryAt(epoch ms | null) 로 교체 —
렌더러가 직접 시간을 계산·갱신. name 필드 제거 → native에서 카드 생성 시 title/subtitle 미리 조립.
mock-data LaTeX 백슬래시 복원 및 mock 구조를 새 스키마에 맞게 정비.
…Cards hook

useQueries 병렬 fetch로 오늘+내일 집중학습 발급분을 합산.
useFocusEffect + queryClient.invalidateQueries 로 화면 진입 시 데이터 최신화.
buildHomeInit에 todayStr 파라미터 추가해 todayStr single source-of-truth 유지.
…s with iOS-style easing

--motion-ease / --motion-duration CSS 변수 추출 → home + chat 모드에 일관 적용.
study-item collapsible 을 outer(height transition) + inner(padding 고정) 구조로 재정비,
transitionend 후 height: auto 해제로 동적 콘텐츠 높이 자동 대응.
빈 title/description doc 시 element 자체 생략, CSS 클래스를 스키마 변수명에 정렬.
시간 뱃지를 1분 간격 자동 갱신(setupTimeBadgeTick)으로 전환.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pointer-admin Ready Ready Preview, Comment May 12, 2026 4:20pm

@linear
Copy link
Copy Markdown

linear Bot commented May 12, 2026

MAT-558

@sterdsterd sterdsterd self-assigned this May 12, 2026
@sterdsterd sterdsterd added the ✨ Feature 기능 개발 label May 12, 2026
@sterdsterd sterdsterd merged commit 2494192 into develop May 12, 2026
4 checks passed
@sterdsterd sterdsterd deleted the feat/mat-558-home-focus-card branch May 12, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant