Skip to content

/games 카드 링크 복사·복제 인터랙션 구현 #224

@whdgur5717

Description

@whdgur5717

목적

#207(게임 링크복사/복제 기능 추가)의 UI/동작을 /games 페이지에서 실제로 동작하도록 연결합니다. 카드 옵션에서 링크 복사/게임 복제 액션을 제공하고, 공유 URL 복사 및 복제 흐름을 세션 상태와 연계해 /create 페이지까지 이어지도록 합니다.

작업 범위

  • GameLibraryGrid가 카드 옵션 콜백을 다시 받을 수 있도록 props/렌더링을 정리하고, page.tsx에서 복사·복제 핸들러를 내려줍니다.
  • 링크 복사 핸들러: 게임 공유 URL을 생성해 navigator.clipboard.writeText로 복사하고, sonner 토스트로 성공/실패 피드백을 제공합니다. 비로그인 사용 흐름이 필요하면 가드 처리도 함께 검토합니다.
  • 게임 복제 확인 다이얼로그: overlay-kit과 디자인 시스템 Dialog를 사용해 “게임을 복제하시겠습니까?” UI를 만들고, 사용자의 네/아니오 응답에 따라 API 호출 여부를 결정합니다.
  • cloneGame API 연동: 확인 시 복제 요청을 보내고, 성공하면 /create?gameId=로 라우팅해 세션 스토어가 기존 게임 데이터를 불러오게 합니다. 성공/에러 토스트를 추가합니다.
  • 복제 이후 목록 갱신 전략 검토: 새 게임이 리스트에 반영돼야 하는 경우 무한 스크롤 캐시를 무효화하거나 재요청하는 흐름을 정의합니다.
  • 접근성 및 이벤트 제어: 옵션 클릭 시 이벤트 전파를 제어하고, 토스트/다이얼로그가 중복 발생하지 않도록 확인합니다.

옵션별 기대 동작

  • 링크 복사: 공유 가능한 /games?query= 기반 URL을 생성해 클립보드에 복사하고, 성공/실패 토스트를 노출한다.
  • 게임 복제: 복제 확인 다이얼로그 노출 → 승인 시 cloneGame 호출 → 성공하면 /create?gameId=복제본ID로 리다이렉트하면서 토스트로 안내한다.

참고

Metadata

Metadata

Assignees

No one assigned

    Labels

    ✨feature구현, 개선 사항 관련 부분

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions