Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/#053 블럭내 복사 붙여넣기 구현 #192

Merged
merged 48 commits into from
Nov 26, 2024

Conversation

Ludovico7
Copy link
Collaborator

📝 변경 사항

🔍 변경 사항 설명

복사, 붙여넣기, 한번에 삭제 모두 브라우저 기본 이벤트를 막습니다.

  • 텍스트 복사: 드래그 해서 선택된 텍스트의 노드를 찾습니다. 선택된 노드들의 스타일 정보가 있으면 스타일 정보를 포함한 메타데이터를 클립보드에 저장합니다(text/plain이 아닌 객체 형식)
  • 텍스트 붙여넣기
    • 일반 텍스트일 경우: text/plain에 저장되어 있는 텍스트 정보를 한글자씩 삽입 연산을 서버로 전송합니다.
    • 스타일 텍스트일 경우: 클립보드에 저장한 객체를 가지고 와서 각 노드별로 value와 스타일을 적용한 텍스트 삽입 연산을 서버에 전송합니다.
  • 텍스트 한번에 삭제: 드래그 해서 선택된 텍스트의 노드를 찾습니다. 선택된 노드들을 하나씩 삭제 연산처리해서 서버로 전송합니다.

🙏 질문 사항

  • 현재 색상 관련된 데이터가 클라이언트간에 통신이 안되고 있는 것 같습니다. 이 부분은 확인해보고 수정하겠습니다.
  • 붙여넣기 할때, 특정 조건에서 캐럿이 이전 위치에 계속 있는 문제가 있는 것 같은데 어떤 조건에서 일어나는 문제인지는 아직 확인하지 못했습니다.

혹시 문제되는 부분 발견하시면 피드백 부탁드립니다!

📷 스크린샷 (선택)

2024-11-26.3.04.36.mov

✅ 작성자 체크리스트

  • Self-review: 코드가 스스로 검토됨
  • Unit tests 추가 또는 수정
  • 로컬에서 모든 기능이 정상 작동함
  • 린터 및 포맷터로 코드 정리됨
  • 의존성 업데이트 확인
  • 문서 업데이트 또는 주석 추가 (필요 시)

- 기존에는 read를 통해 일반 텍스트로 모두 변경
- 스타일 태그 적용을 위해 배열을 순회하며 스타일 속성이 있는 글자는 스타일 태그로 묶어서 innerhtml로 생성
- getTextOffset 함수를 통해 드래그한 텍스트가 스타일이 적용되어있어도 감지
- setInnerhtml을 텍스트가 변경될때마다 실행해서 실제 텍스트 렌더링
- 스타일 적용된 텍스트 분할하거나 합병해도 텍스트 스타일 유지
- 리치 텍스트 구조에 맞게 화살표 핸들러 수정
- 텍스트 스타일: 기존 레이아웃과 동일
- 텍스트 색상: 버튼에 hover하면 서브 모달 생성. 서브 모달에서 색상 클릭하면 색상 적용
- 배경 색상: 버튼에 hover하면 서브 모달 생성. 서브 모달에서 색상 클릭하면 배경 색상 적욕
- 일반 텍스트 복사
- 스타일 있는 텍스트 복사시 클립보드에 커스텀 데이터 구조로 저장
- 붙여넣기 시 커스텀 데이터 없으면 일반 글자 처리
- 커스텀 데이터 있으면 해당 스타일 모두 적용해서 붙여넣기
@Ludovico7 Ludovico7 added FE 프론트엔드 작업 Feat 새로운 기능 추가나 기존 기능 확장 작업 P1 긴급/즉시 반영 labels Nov 25, 2024
@Ludovico7 Ludovico7 self-assigned this Nov 25, 2024
Copy link
Collaborator

@minjungw00 minjungw00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고많으셨습니다!

Copy link
Member

@pipisebastian pipisebastian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!!!!!!! 복사붙혀넣기 너무 신기하네요!!!

@github-actions github-actions bot merged commit 1169885 into dev Nov 26, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FE 프론트엔드 작업 Feat 새로운 기능 추가나 기존 기능 확장 작업 P1 긴급/즉시 반영
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants