Skip to content

Feat/53 tree share#57

Merged
E0min merged 5 commits intodevelopfrom
feat/53-tree-share
Nov 25, 2025
Merged

Feat/53 tree share#57
E0min merged 5 commits intodevelopfrom
feat/53-tree-share

Conversation

@SangHyun01
Copy link
Contributor

Feat: 그래프 노드 공유 기능 구현 (이메일 기반 서브트리 복제)

PR 요약

사용자가 자신이 정리한 특정 질문 노드와 하위 줄기(Subtree)를 다른 사용자에게 공유(복제)할 수 있는 기능을 구현했습니다.
공유받을 상대방의 이메일을 입력하면, 해당 사용자의 워크스페이스에 내가 선택한 노드 줄기가 그대로 복사되어 새로운 토픽(또는 지정된 위치)으로 생성됩니다. 이를 통해 사용자 간 지식 공유와 협업이 가능해집니다.

주요 변경 사항

  1. 공유 API 연동 (shareQuestions)
  • src/api/questions.ts에 shareQuestions 함수를 추가하여 POST /api/questions/share 엔드포인트와 연동했습니다.
  • 선택된 노드들의 ID 목록(sourceQuestionIds)과 대상 사용자 이메일(targetUserId)을 전송합니다.
  1. '공유 모드' 상태 관리 및 로직 구현 (useQuestionTree)
  • useQuestionTree 훅에 공유 프로세스를 위한 상태와 함수를 추가했습니다.
  • 상태(State): modifyMode에 SELECT_NODE_TO_SHARE 케이스를 추가하여, 공유할 노드를 선택하는 UI 상태를 관리합니다.

로직(Logic):

  • startShareMode: 공유 모드를 시작하고 안내 메시지를 띄웁니다.
  • handleGraphNodeClick: 공유할 노드(루트 노드 제외)를 선택하면 이메일 입력 모달을 띄웁니다.
  • confirmShare: 이메일 입력 후 최종 확인 시, getAllIdsFromNode로 하위 줄기 ID를 수집하여 API를 호출합니다.

UX: sonner를 사용하여 '공유 중' 로딩 상태와 성공/실패 여부를 토스트 메시지로 제공합니다.

@E0min E0min merged commit 0a369be into develop Nov 25, 2025
1 check passed
@E0min E0min deleted the feat/53-tree-share branch November 25, 2025 07:01
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.

2 participants