-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 이벤트 상세 페이지 API 연동 #91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,9 @@ | ||
| import { axiosClient } from "../../../shared/types/api/http-client" | ||
| export const readMyTickets = { | ||
| get: async (page: number = 0, size: number = 10) => { | ||
| try { | ||
| const response = await axiosClient.get("/orders", { | ||
| params: { page, size }, | ||
| }); | ||
| return response.data; | ||
| } catch (error) { | ||
| console.error("티켓 조회 중 오류 발생:", error); | ||
| throw error; | ||
| } | ||
| }, | ||
| get: async (page: number = 0, size: number = 10) => { | ||
| const response = await axiosClient.get("/orders", { | ||
| params: { page, size }, | ||
| }); | ||
| return response.data; | ||
| }, | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,19 +11,22 @@ import ticketImg from '../../../../public/assets/menu/Ticket.svg'; | |
|
|
||
| type Ticket = { | ||
| id: number; | ||
| eventId: number; | ||
| bannerImageUrl: string; | ||
| title: string; | ||
| hostChannelName: string; | ||
| address: string; | ||
| startDate: string; | ||
| event: { | ||
| id: number; | ||
| bannerImageUrl: string; | ||
| title: string; | ||
| hostChannelName: string; | ||
| address: string; | ||
| startDate: string; | ||
| remainDays: string; | ||
| hashtags: string[]; | ||
| onlineType: "ONLINE" | "OFFLINE"; // onlineType 추가 | ||
| }; | ||
| ticketQrCode: string; | ||
| ticketName: string; | ||
| orderStatus: "COMPLETED" | "PENDING" | "CANCELED"; | ||
| remainDays: string; | ||
| ticketPrice: number; | ||
| ticketQrCode: string; | ||
| orderStatus: "COMPLETED" | "PENDING" | "CANCELED"; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent ❓ Verification inconclusive취소된 티켓 상태 처리 필요
69-80줄의 렌더링 로직에서 취소된 티켓에 대한 처리가 누락되어 있습니다. 아래 코드가 필요할 수 있습니다: 🏁 Script executed: #!/bin/bash
# 프로젝트 내에서 취소된 티켓 상태를 처리하는 로직이 존재하는지 확인
rg "CANCELED.*orderStatus" --type tsLength of output: 38 취소된 티켓 상태 UI 처리 추가 필요
{orderStatus === "CANCELED" && (
// 취소된 티켓에 대한 UI 처리 로직 추가
)}해당 변경이 다른 컴포넌트나 페이지와 연계되어 있는지 추가 검토하시고, 필요한 부분에 반영해 주시기 바랍니다. |
||
| checkIn: boolean; | ||
| hashtags: []; | ||
| }; | ||
|
|
||
| const MyTicketPage = () => { | ||
|
|
@@ -36,6 +39,7 @@ const MyTicketPage = () => { | |
| try { | ||
| const response = await readMyTickets.get(0, 10); | ||
| setMyTickets(response.result || []); | ||
| console.log(response.result); | ||
| } catch (error) { | ||
| console.error("티켓 목록 불러오기 실패:", error); | ||
| } | ||
|
|
@@ -50,13 +54,13 @@ const MyTicketPage = () => { | |
| {myTickets.map((ticket, index) => ( | ||
| <EventCard | ||
| key={index} | ||
| img={ticket.bannerImageUrl} | ||
| eventTitle={ticket.title} | ||
| dDay={ticket.remainDays} | ||
| host={ticket.hostChannelName} | ||
| eventDate={ticket.startDate} | ||
| location={ticket.address} | ||
| hashtags={ticket.hashtags} | ||
| img={ticket.event.bannerImageUrl} | ||
| eventTitle={ticket.event.title} | ||
| dDay={ticket.event.remainDays} | ||
| host={ticket.event.hostChannelName} | ||
| eventDate={ticket.event.startDate} | ||
| location={ticket.event.address} | ||
| hashtags={ticket.event.hashtags} | ||
| onClick={() => { | ||
| setSelectedTicket(ticket); | ||
| setIsModalOpen(true); | ||
|
|
@@ -86,16 +90,16 @@ const MyTicketPage = () => { | |
| isChecked={true} | ||
| iconPath1={<img src={QRbackground} alt="QRbackground" />} | ||
| ticketQrCode = {selectedTicket.ticketQrCode} | ||
| title={selectedTicket.title} | ||
| hostName={selectedTicket.hostChannelName} | ||
| date={selectedTicket.startDate} | ||
| location={selectedTicket.address} | ||
| title={selectedTicket.event.title} | ||
| hostName={selectedTicket.event.hostChannelName} | ||
| date={selectedTicket.event.startDate} | ||
| location={selectedTicket.event.address} | ||
| ticketName={selectedTicket.ticketName} | ||
| price={selectedTicket.ticketPrice} | ||
| orderStatus={selectedTicket.orderStatus} | ||
| isCheckIn={selectedTicket.checkIn} | ||
| isCountdownChecked={true} | ||
| remainDays={selectedTicket.remainDays} | ||
| remainDays={selectedTicket.event.remainDays} | ||
| onClick={() => setIsModalOpen(false)} | ||
| /> | ||
| </div> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
하드코딩된 이벤트 ID
현재
eventId값이1로 고정되어 있습니다. 추후 라우트 파라미터 등을 통해 동적으로 받아오도록 개선이 필요합니다.