Skip to content

feat: 정책 및 약관 API 연동 - #38

Open
chiyyy wants to merge 3 commits into
developfrom
feature/policy-api-integration
Open

feat: 정책 및 약관 API 연동#38
chiyyy wants to merge 3 commits into
developfrom
feature/policy-api-integration

Conversation

@chiyyy

@chiyyy chiyyy commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

요약

  • 정책 및 약관 목록 조회(GET /api/policy), 상세 조회(GET /api/policy/{type}) API 연동
  • 기존 PolicyScreen의 목록 탭이 아무 동작도 하지 않던 것을 실제 상세 화면으로 연결
  • 코드리뷰 반영: 목록/상세 조회 실패 시 무한 로딩 대신 에러 안내 표시, updatedAt 파싱 실패 시 NaN.NaN.NaN 노출 방지

상세 변경

  • features/policy 도메인 신설 (api/model/ui/utils)
    • policyApi.ts: getPoliciesApi, getPolicyDetailApi
    • usePolicyStore.ts: 목록/상세 상태 관리
      • 목록·상세 조회 모두 in-flight 가드 적용(isLoadingList, type별 loadingTypes Set) — useWardLocationStore와 동일 패턴
      • hasListError, errorTypes로 "로딩 중" / "조회 실패" / "정말 없음"을 구분해 화면에서 무한 스피너 없이 에러 안내를 보여줄 수 있게 함
    • PolicyListItem.tsx: 목록 항목 컴포넌트 분리
    • formatPolicyUpdatedAt: updatedAt(ISO) → YYYY.MM.DD 포맷터, 파싱 불가능한 값이면 빈 문자열 반환(화면에서 해당 줄 자체를 숨김)
  • features/mypage: 실제 스키마와 맞지 않던 자리표시자 PolicyItem/MOCK_POLICIES(제목만 있는 mock 4개) 제거
  • screens/guardian/Policy/PolicyScreen.tsx: mock 배열 대신 스토어 연결, 로딩/빈 목록/조회 실패 상태 UI 추가, 항목 탭 시 PolicyDetail로 이동
  • screens/guardian/PolicyDetail/PolicyDetailScreen.tsx(신규): 상세 콘텐츠 표시 화면 — WelfareFacilityDetailScreen과 동일하게 자체 헤더(뒤로가기+제목) 사용, 로딩/조회 실패 상태 UI 포함
  • app/navigation/types.ts, GuardianStackNavigator.tsx: PolicyDetail: { type: PolicyType } 라우트 추가/등록

참고

  • 상세 조회/목록 조회 실패 시에도 재시도 버튼은 따로 안 넣었음 — 기존 코드베이스에 그런 패턴이 없어서, 화면 재방문 시 자동 재조회되는 기존 동작(useFocusEffect)만으로 둠
  • .env 등 민감 파일 변경 없음

테스트

  • tsc --noEmit 통과
  • ESLint 통과
  • 실기기에서 정책 목록 조회 / 상세 진입 / 조회 실패 상태 확인

@chiyyy chiyyy self-assigned this Sep 1, 2026
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