Skip to content

[feat/MAT-364] 캔버스 통합#306

Open
b0nsu wants to merge 1 commit intorefactor/mat-363-zoom-panfrom
refactor/mat-364-canvas
Open

[feat/MAT-364] 캔버스 통합#306
b0nsu wants to merge 1 commit intorefactor/mat-363-zoom-panfrom
refactor/mat-364-canvas

Conversation

@b0nsu
Copy link
Copy Markdown
Collaborator

@b0nsu b0nsu commented Apr 30, 2026

Summary

분리된 모듈들을 DrawingCanvas.tsx로 최종 통합합니다.
activeTool enum, enableZoomPan, children prop, erase undo path 캐싱 연동을 포함합니다.

Stacked PR 9/10 — base: refactor/mat-363-zoom-pan

Linear

Changes

  • DrawingCanvas.tsx — Props → DrawingCanvasProps 전환, activeTool enum 적용
  • 뷰포트/제스처 통합 (useCanvasGestureComposer, useCanvasViewportController)
  • erase undo path 캐싱 연동 (~100ms → ~1ms)
  • drawingTypes.ts — ActiveTool, 확장된 DrawingCanvasRef/Props

Testing

  • pnpm typecheck 통과
  • pnpm lint 통과

Risk / Impact

  • 영향 범위: DrawingCanvas 전체 API 변경
  • 확인이 필요한 부분: 모든 기능 통합 동작, consumer API 호환성
  • 배포 시 유의사항: 없음

- DrawingCanvasProps: activeTool enum, enableZoomPan, backgroundColor,
  minCanvasHeight, pencilOnly, children, onUndoStateChange,
  onScrollOffsetChange, onCanvasHeightChange 추가
- DrawingCanvasRef: scrollTo 추가
- viewport controller 통합: ad-hoc canvasHeight/maxY/scrollViewRef
  → useCanvasViewportController
- gesture composer 통합: inline tap/pan → useCanvasGestureComposer + hover
- onHistoryChange → onUndoStateChange({ canUndo, canRedo })
- v2 개선 유지: strokeBoundsRef, IncrementalPathBuilder, bounds eraseAtPoint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@linear
Copy link
Copy Markdown

linear Bot commented Apr 30, 2026

MAT-364 캔버스 통합

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 30, 2026

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

Project Deployment Actions Updated (UTC)
pointer-admin Ready Ready Preview, Comment Apr 30, 2026 11:54am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant