Skip to content

♻️ [Refactor] NoticeEditor RichTextEditor 구조 리팩터링 및 AttachmentToolbar · Sheets 이관 (#929)#931

Open
LeeYeJi546 wants to merge 6 commits into
developfrom
refactor/929
Open

♻️ [Refactor] NoticeEditor RichTextEditor 구조 리팩터링 및 AttachmentToolbar · Sheets 이관 (#929)#931
LeeYeJi546 wants to merge 6 commits into
developfrom
refactor/929

Conversation

@LeeYeJi546

@LeeYeJi546 LeeYeJi546 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

✨ PR 유형

리팩터링 (♻️ Refactor) — NoticeEditor RichTextEditor 구조 개편 및 AttachmentToolbar · Sheets AppProduct → UMCApp 이관

📷 스크린샷 or 영상(UI 변경 시)

🛠️ 작업내용

  • ♻️ Markdown Serializer 모듈 분리 및 재구성
    • 기존 Views/MarkdownSerializer.swift 단일 파일을 Serializer/ 디렉토리로 분리
    • 역할별 파일 분리: MarkdownBlockParser, MarkdownInlineParser, MarkdownBlockSerializer, MarkdownInlineSerializer, MarkdownAttributeBuilder, MarkdownAutoformat, MarkdownEscaping, MarkdownHTMLDetector, MarkdownRegex, MarkdownSerializerTypes
  • ♻️ UITextView 기반 RichTextView 및 Coordinator 구현
    • RichTextViewRepresentable: SwiftUI UIViewRepresentable 래퍼
    • RichTextCoordinator: 에디터 핵심 Coordinator (델리게이트/이벤트 관리)
    • 기능별 Coordinator 확장 분리: +Blockquote, +List, +MarkdownAutoformat, +Placeholder, +Scroll
    • BlockquoteTextView 인용구 렌더링 수정, UITextView+MinimumHeight 익스텐션 추가
  • ♻️ RichText 에디터 Toolbar 컴포넌트 추가
    • DefaultToolbarView, TextSelectedToolbarView, TableCellToolbarView
  • ♻️ FormatPanelView 추가 (굵기/기울임/목록/인용구 등 서식 패널)
  • ♻️ NoticeEditor AttachmentToolbar · Sheets — AppProduct → UMCApp 이관
    • AttachmentToolbar: AttachmentMenuButton, HighlightMenuButton, ListMenuButton, NoticeEditorAttachmentToolbar, ToolbarButtonStyles
    • Sheets: TargetSheetView, VotingFormSheetView
  • 🐛 파일 헤더 모듈명 오기 정정 (46개 파일, NoticeDataNoticePresentation 등)
  • 변경된 파일: 57개 (신규 30개, 수정 26개, 삭제 1개)

📋 추후 진행 상황

  • NoticeEditor 핵심 뷰 계층 이관

📌 리뷰 포인트

  • NoticeEditor/RichTextEditor/Serializer/ — Markdown 파싱·직렬화 로직 정확도 확인
  • NoticeEditor/RichTextEditor/NoticeRichText/ — UITextView Coordinator 이벤트 흐름 및 메모리 관리 확인
  • NoticeEditor/RichTextEditor/Toolbar/ · FormatPanel/ — 툴바·서식 패널 UI 및 액션 연결 확인
  • NoticeEditor/AttachmentToolbar/ — 이관된 첨부 툴바 UI 및 PhotosPicker·투표 연동 확인
  • NoticeEditor/Sheets/ — TargetSheetView·VotingFormSheetView 시트 데이터 바인딩 확인

✅ Checklist

PR이 다음 요구 사항을 충족하는지 확인해주세요!!!

- 구 위치(Views/MarkdownSerializer.swift)에서 Serializer/ 디렉토리로 분리
- 파서/직렬화기 역할별 파일 분리:
  MarkdownBlockParser, MarkdownInlineParser,
  MarkdownBlockSerializer, MarkdownInlineSerializer,
  MarkdownAttributeBuilder, MarkdownAutoformat,
  MarkdownEscaping, MarkdownHTMLDetector,
  MarkdownRegex, MarkdownSerializerTypes
- RichTextViewRepresentable: SwiftUI UIViewRepresentable 래퍼
- RichTextCoordinator: 에디터 핵심 Coordinator (델리게이트/이벤트 관리)
- 기능별 Coordinator 확장 분리:
  +Blockquote, +List, +MarkdownAutoformat,
  +Placeholder, +Scroll
- BlockquoteTextView: 인용구 렌더링 커스텀 서브클래스 수정
- UITextView+MinimumHeight: 최소 높이 보장 익스텐션
- DefaultToolbarView: 기본 텍스트 편집 툴바
- TextSelectedToolbarView: 텍스트 선택 시 컨텍스트 툴바
- TableCellToolbarView: 표 셀 편집 전용 툴바
- 서식 적용 패널 UI 구현 (굵기/기울임/목록/인용구 등 포맷 옵션 제공)
- NoticePresentation 파일 헤더의 모듈명이 NoticeData 등으로 잘못 기재된 것 수정
- CoreUIComponents 파일 헤더 UMCFoundation 오기 정정
@LeeYeJi546 LeeYeJi546 linked an issue Jul 3, 2026 that may be closed by this pull request
3 tasks
@LeeYeJi546 LeeYeJi546 requested a review from JEONG-J July 3, 2026 09:56
@LeeYeJi546 LeeYeJi546 self-assigned this Jul 3, 2026
@LeeYeJi546 LeeYeJi546 added the 🔨 Refactor 코드 리팩토링 label Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨 Refactor 코드 리팩토링

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

♻️ Refactor: NoticeEditor/AttachmentToolbar, NoticeEditor/Sheets 이식

1 participant