Skip to content

Conversation

@manbron236
Copy link
Contributor

🧩 구현/변경 사항

  • 마이페이지 - 지난 여행
  • 여행 종료 시 완료된 경로에 한해서 사용자에게 지난 여행경로 보여주기 위한 페이지 제작
  • 지난 여행 리스트 페이지
  • 여행을 눌렀을때 상세 페이지로 이동하여 설정한 경로에 대한 관광지 확인 가능
  • 상세 페이지에서 특정 관광지 클릭시 메인 화면으로 이동해 해당 관광지의 상세 페이지로 이동할 수 있도록 설정
  • 지난 여행 제목 수정
  • 지난 여행 삭제

사용자 시나리오(UML)

지난여행 (2) 지난여행 (3)
  • 메인 화면의 관광지 상세 페이지에서 경로 추가 후 생성된 경로의 여행 종료시 "완료" 처리가 성공적으로 처리되면 마이페이지 - 지난 여행에서 확인 가능
지난여행 (4) 지난여행 (5)
  • 지난 여행 제목 수정
지난여행 (7) 지난여행 (8)
  • 여행을 눌렀을때 상세 페이지로 이동하여 설정한 경로에 대한 관광지 확인 가능
  • 상세 페이지에서 특정 관광지 클릭시 메인 화면으로 이동해 해당 관광지의 상세 페이지로 이동할 수 있도록 설정
지난여행 (9) 지난여행 (1)
  • 지난 여행 삭제

참고

  • 페이지 상단의 헤더는 피그마 기준으로 제작되었으나 추후에 헤더 관련 컴포넌트 완성 시 변경하겠습니다
  • 지난 여행 상세 페이지의 제목같은 경우는 제목이 길면 다음 줄로 넘어가도록 설정했습니다.
  • 이야기 스팟은 현재 경로 탭에서 개발이 미완성이라서 관광지만 노출되고 있습니다.
  • expo-router의 useLocalSearchParams, useEffect를 사용해서 지난 여행에서 메인 화면 탭으로 넘어가 관광지 상세 페이지를 띄우는 작업을 진행했습니다

💬 리뷰 받고 싶은 부분 (옵션)

  • 수정 및 삭제 시 모달창 관련 의견 주시면 감사하겠습니다
  • 현재 수정은 따로 모달창을 만들었고 삭제는 Alert로 관리되고 있습니다.

@manbron236 manbron236 self-assigned this Feb 4, 2026
@manbron236 manbron236 added the enhancement New feature or request label Feb 4, 2026
@manbron236 manbron236 linked an issue Feb 4, 2026 that may be closed by this pull request
4 tasks
Copy link
Member

@jaewonLeeKOR jaewonLeeKOR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

페이지 라우팅은 오프라인에서 같이 얘기해보죠

Comment on lines +76 to +106
const fetchAndMove = async () => {
try {
const detail = await getSightDetail({
id: sightId,
longitude: location.longitude,
latitude: location.latitude,
});

// 지도 이동
mapRef.current?.moveToLocation({
latitude: detail.latitude,
longitude: detail.longitude,
latitudeDelta: 0.01,
longitudeDelta: 0.01,
});

// 선택된 관광지 설정
const sight: SightInfo = {
id: sightId,
title: detail.title,
longitude: detail.longitude,
latitude: detail.latitude,
geoHash: "",
};

useSightStore.getState().selectSight(sight);
useSightStore.getState().setSightDetail(detail);
} catch (error) {
console.error("관광지 조회 실패:", error);
}
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fetchAndMove 메서드를 훅으로 빼내서 활용해도 좋을거 같습니다


const [searchText, setSearchText] = useState("");
const [showResults, setShowResults] = useState(false);
const { sightId } = useLocalSearchParams<{ sightId?: string }>();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

파라미터명을 더 정확히 사용하는것도 좋을거 같아요.
코드를 읽을때도 한번에 이해가 어렵기도 하고 sightId는 여러 인터페이스 안에서 사용되고 있는 변수명이기도 해서요.


fetchAndMove();
}
}, [sightId, location.latitude, location.longitude]);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기존에 관광지 세부정보를 보여주는 방식과는 다른 방식을 사용했는데 어떻게 사용하든 통합을 하는게 좋을거 같습니다.

Comment on lines +36 to +38
pathname: "/(tabs)/story",
params: { storySpotId: item.itemId },
} as any);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이야기쪽은 세부정보 페이지로 이동하는 부분을 구현하지 않는거죠?

Comment on lines +52 to +63
const renderItem = ({ item }: { item: CompletedRouteItem }) => (
<CardWrapper>
<SightCard
image={item.itemImageUrl}
sightName={item.itemName}
sightTheme={item.itemType === "SIGHT" ? "관광지" : "이야기 스팟"}
iconStyle="DETAIL"
iconColor={theme.colors.text.textSecondary}
onCardPress={() => handleCardPress(item)}
/>
</CardWrapper>
);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

피그마에서는 이야기 스팟의 카드와 관광지 카드의 디자인이 다른데 의도적으로 통일시킨건가요?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FE] 마이페이지 - 지난 여행

2 participants