Skip to content

[Refactor] - 핀하우스 home 핀하우스 설정 로딩 및 컴포넌트 분리 작업 #356

@kyungchan3007

Description

@kyungchan3007

📌 코드 리펙토링 내용

  • homeHooks.ts: 홈 훅에서 CATEGORY_MAP 의존성을 model로 이동한 구조에 맞춰 import만 정리.
    • useListingDetailHooks.ts: pinpoint 쿼리에서 이전 데이터를 유지해 UI 깜빡임/로딩 리셋 최소화.
    • hooks.tsx: 공용 상수 제거하고 라우팅/핀포인트 변경 로직을 전용 훅으로 캡슐화해 재사용성과 응집도 향상.
    • model.tsx: 검색 카테고리 설정/매핑을 model 레이어로 이동해 관심사 분리 및 import 일관성 강화.
    • pinpointSelectedButton.tsx: 시트 하단 버튼 영역을 독립 컴포넌트로 분리해 재사용/가독성 개선.
    • homeFullSheet.tsx: 라우팅 로직과 버튼 UI를 분리해 컴포넌트 책임 축소, 모드별 렌더 조건 명확화.
    • pinpointRowBoxs.tsx: 핀포인트 처리 로직을 훅으로 이관, 로딩 시 스켈레톤 UI 적용.
    • skeleton.tsx: PinpointRowBox 전용 스켈레톤 추가로 로딩 상태 UI 일관성 확보.
    • homeResultSectionHeader.tsx: SEARCH_CATEGORY_CONFIG 이동에 따른 경로 정리.
    • listingsModel.ts: (리팩토링 중) useMemo 사용 대비 import 추가.

✅ 리펙토링 결과

2)변경으로 기대되는 효과(UX/성능/구조)

• UX: 핀포인트 목록 로딩 시 스피너 대신 리스트형 스켈레톤으로 가독성/맥락 유지.
• 구조: UI 컴포넌트와 로직(라우팅/핀포인트 변경) 분리로 응집도 상승, 재사용 용이.
• 유지보수: 검색 카테고리 설정을 model 레이어로 이동해 의존성 정리, import 일관성 향상.
• 데이터 안정성: placeholderData로 이전 결과 유지 → 로딩 중 UI 깜빡임 완화.

3)화면/UI 결과 설명(스켈레톤 동작 포함)

• 핀포인트 로딩 중: 리스트 형태의 스켈레톤 3개가 표시됨(제목 + 배지 + 주소 라인).
• 로딩 완료: 기존과 동일하게 PinpointItem 목록이 표시됨.
• 홈 시트 하단 버튼: 표시/숨김 조건은 기존과 동일하며, UI는 분리 컴포넌트로 렌더.

Metadata

Metadata

Assignees

Labels

Refactor코드 리팩토링 관련

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions