Skip to content

[Release] v1.0.0 - K-Statra 프론트엔드 1차 배포#22

Merged
BaeSeong-min merged 170 commits into
mainfrom
develop
May 12, 2026
Merged

[Release] v1.0.0 - K-Statra 프론트엔드 1차 배포#22
BaeSeong-min merged 170 commits into
mainfrom
develop

Conversation

@BaeSeong-min

Copy link
Copy Markdown
Contributor

🔍 PR 요약

🧾 관련 이슈

🛠️ 주요 변경 사항

🚀 사용자 기능

인증 / 랜딩 (#9)

  • 랜딩 페이지 (Figma 디자인 반영, hero 마운트 애니메이션)
  • 로그인 / 회원가입 (buyer / seller 타입 토글, 클라이언트 유효성 검사, 토스트 알림)
  • 한국어 / 영어 i18n
  • 401 인터셉터로 세션 만료 시 자동 로그아웃

파트너 매칭 (#11)

  • AI 자연어 검색 인풋과 /partners/search 연동 (벡터 → 텍스트 폴백 → 웹검색)
  • 검색 결과 테이블 (행 stagger 등장, 다중 선택, 페이지네이션)
  • 파트너 저장 기능 (저장 후 검색 결과에서 숨김 처리)

My Business (#15)

  • 내 정보 탭 (프로필 / XRP 지갑 주소 조회)
  • 내 파트너 목록 탭 (다중 선택 + 삭제)
  • 공통 PageHero 컴포넌트 도입 및 매칭/결제 페이지 적용

에스크로 결제 생성 플로우 (#14)

  • 3단계 플로우: 파트너 선택 → 정보 확인 → 결제 요청 폼
  • EscrowInfoCard / WalletConfirmModal / StepProgressBar
  • 지갑 주소 기반 파트너 조회 + 결제 생성 API 연동 (POST /escrow-payments)

에스크로 결제 상세 / 목록 (#20)

  • PaymentDetail: 결제 개시 모달, 항목별 이벤트 확정 모달, 잠금 처리, 토스트 알림
  • PaymentsPage: 결제 목록 + 진행률 바(EscrowProgressBar), 진행중/종료(group=ongoing/done) 탭
  • 백엔드 명세 변화 추종 (counterpartyWalletAddress 단일화, group enum)
  • ConfirmModal 범용화 → 결제 개시 + 이벤트 확정 양쪽에서 재사용

1:1 밋업 (#18)

  • 1:1 밋업 준비 중 placeholder 페이지 + 헤더 네비게이션

🎨 디자인 / 인터랙션

디자인 토큰 (#5)

  • 폰트 Pretendard 전환
  • Figma 디자인 토큰(primary / secondary / neutral) 반영, 하드코딩 accent 색상 변수화

마이크로 애니메이션 (#11, #14, #20)

  • 파트너 검색 결과 stagger 등장, 체크박스 클릭 인터랙션
  • 결제 Step 전환 슬라이드, 파트너 목록 shimmer 스켈레톤
  • 랜딩 hero 텍스트 stagger + 강조 박스 clipPath wipe
  • EscrowProgressBar 단계별 fill, PaymentDetail 총 금액 count-up
  • 결제 목록 row stagger + 우측 detail 패널 slide-in / cross-fade

🏗️ 아키텍처 / 인프라

프로젝트 셋업 (#1)

  • frontend/ → 루트 이동, 백엔드 폴더 제거
  • pnpm 전환
  • husky pre-commit (lint-staged) + pre-push (lint + build) 훅 설정
  • 프론트엔드 전용 CI 워크플로우

스택 전환 (#3)

  • Tailwind v4 (@theme 설정) / Zustand / TanStack Query / React Hook Form 도입
  • 폴더 구조 재편 (pages/, components/, hooks/, apis/, stores/)
  • 라우터 설정 분리 (router.jsx)
  • authStore 도입 및 localStorage 직접 접근 제거
  • ESLint 경고 일괄 해결

API 레이어 (#7)

  • axios 기반 http 인스턴스 + 응답 인터셉터
  • 도메인별 API 모듈 (auth, payments, escrowPayments, partners, buyers, companies, matches, consultations, myBusiness)
  • endpoints.ts 상수, vite-env.d.ts 타입 보강

🧠 의도 및 배경

  • 누적된 develop의 변경을 운영 환경으로 내보내기 위한 1차 배포(v1.0.0)입니다.
  • 인증부터 에스크로 결제 종료까지의 핵심 시나리오가 사용자가 실제로 수행 가능한 수준에 도달하여, 베타 사용자 대상으로 노출 가능한 시점이라고 판단했습니다.
  • 백엔드 API 명세 변화(group=ongoing/done, counterpartyWalletAddress)에 프론트 정합성을 맞춰 빌드/실서버 정상 동작을 확보했습니다.

BaeSeong-min and others added 30 commits April 25, 2026 14:29
[CHORE] 초기 환경 세팅
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BaeSeong-min and others added 26 commits May 11, 2026 02:30
[Feat] XRP 결제 생성 3-step 플로우 구현 및 API 연동
[Feat] MyBusiness 페이지 구현 (개인정보 조회 및 파트너 목록 관리)
[Feat] 1:1 밋업 준비 중 페이지 구현 및 헤더 네비게이션 연결
- escrowPayments: getList, approveEvent 추가 및 approve action 파라미터 지원
- endpoints에 approveEvent 경로 추가
- useBuyer, useCompany, useEscrowPaymentList/useEscrowPayment 등 단건/목록 조회 hooks 추가
- 에스크로 결제 단건 상세, 항목별 승인 UI, 결제 개시 동작
- 양측 지갑 주소는 에스크로 결제 응답 필드와 내 프로필에서 직접 추출
- PaymentsPage 위치를 src/pages/payment/ 하위로 정리
- 인라인 히어로 마크업을 공용 PageHero 컴포넌트로 교체
- 헤더 XRP Payment 네비게이션을 /payments/create → /payments로 변경
payments_hero_title 한글 locale이 영문과 동일하게 노출되던 문제 수정
buyerId/sellerWalletAddress 두 필드로 나뉘어 있던 구조를 백엔드 API
스펙(CreateEscrowPaymentDto)에 맞춰 counterpartyWalletAddress 하나로
통합. 세션 기반 인증으로 buyerId는 서버에서 식별.
- 에스크로 결제 개시 확인 모달 추가 (EscrowPaymentModal)
- buyer가 APPROVED 상태에서 결제를 개시할 수 있는 버튼/모달 흐름 구현
- 이전 에스크로가 모두 RELEASED여야 다음 항목 이벤트 승인 가능하도록 잠금 처리
- 승인/이벤트승인/결제개시 hook에 toast 알림 및 잔액 부족 메세지 처리 추가
- 하드코딩된 영문 문자열을 i18n으로 분리 (모달/디테일 키 추가)
- 식별 기준을 companyId → role 기반 isBuyer로 단순화
- 결제 항목 진행 상태를 시각화하는 EscrowProgressBar 컴포넌트 추가
- PaymentsPage에서 PROCESSING/ACTIVE 상태는 progress bar로 렌더링,
  COMPLETED/CANCELLED는 별도 라벨로 표시
- 보낸/받은 탭은 응답에 sender 식별 필드가 없어 프론트 단독 분류가
  불가능하므로, 백엔드 group 파라미터 스펙(ongoing/done)에 맞춰 탭의
  의미를 진행 상태 그룹으로 재정의
- escrowPaymentsApi.getList 파라미터를 group/status enum으로 타이트닝
- 관련 i18n 키 추가 및 col_amount 줄바꿈 표시 적용
결제 개시 전용이던 모달을 ConfirmModal로 리네임/일반화. 제목·부제·
버튼 라벨을 props로 받아 다양한 확정 흐름에서 재사용할 수 있도록 변경.
파일 위치도 components/payment에서 components 루트로 이동.
취소 버튼 라벨도 짧게 정리.
구매자/판매자 확정 버튼 클릭 시 바로 approveEvent를 호출하지 않고
ConfirmModal로 한 번 더 확인받도록 EventRow에 모달 흐름 추가.
event_confirm_modal_* i18n 키 추가.
framer-motion으로 tagline·hero 라인·description·CTA를 순차 fade+slide-up
하고, 강조 박스는 clipPath 좌→우 wipe로 박스와 텍스트가 함께
reveal되도록 처리.
각 단계 원이 scale 0.5→1 + 배경색 전환으로 등장, 점선은 clipPath 좌→우
wipe로 채워지면서 단계 간 stagger로 순차 reveal.
framer-motion animate()를 이용한 useCountUp 훅 추가. 0에서 totalAmountXrp
까지 ease-out으로 카운트업. paymentId가 바뀌면(다른 row 선택) 새 값에
맞춰 다시 한 번 재생.
- PaymentRow를 motion.tr로 변환, index 기반 0.04s stagger로 순차 마운트
- 우측 PaymentDetail 패널을 AnimatePresence mode="wait"로 감싸고
  selectedId 변경 시 opacity + x 슬라이드로 cross-fade 전환
[Feat] XRP 결제 목록 및 상세 패널 페이지 구현
@BaeSeong-min BaeSeong-min self-assigned this May 12, 2026
@vercel

vercel Bot commented May 12, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
k-statra-frontend Ready Ready Preview, Comment May 12, 2026 6:54am

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d61a8097-3c61-4d4d-958e-5d54c862dc24

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@BaeSeong-min BaeSeong-min merged commit 2072781 into main May 12, 2026
4 checks passed
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