- {/* TODO 6: Replace placeholder with real
![]()
from props */}
- {/*

*/}
-
Image goes here
+
- {/* TODO 7: If isInterested → show ⭐ before artist name */}
- "Artist name here"
+ {artistPrefix}
+ {artist}
- {/* TODO 8: Display stage, day, hour from props */}
- "Stage · Day · Hour"
+ {stage} · {day} · {hour}
-
- {/* TODO 9: Display the ticketsStatusText */}
- "Tickets status text"
-
+ {ticketsStatusText}
-
- {/* TODO 10: Display the interestedText */}
- "Interested status text"
-
+ {interestedText}
-
);
diff --git a/src/constants/showCardConstants.ts b/src/constants/showCardConstants.ts
new file mode 100644
index 0000000..f52aedd
--- /dev/null
+++ b/src/constants/showCardConstants.ts
@@ -0,0 +1,21 @@
+export const SHOW_CARD_CONSTANTS = {
+ SOLD_OUT: "SOLD OUT",
+ LAST_TICKETS: "Last tickets – hurry up!",
+ TICKETS_AVAILABLE: "Tickets available",
+ YOUR_INTERESTED_LIST: "This show is in your interested list 🎟️",
+ NO_ADDED_SHOW: "You haven't added this show yet",
+} as const;
+
+export const SHOW_CARD_LIMITS = {
+ SOLD_OUT: 0,
+ LAST_TICKETS_THRESHOLD: 30,
+} as const;
+
+export const SHOW_CARD_BUTTON_TEXT = {
+ REMOVE: "Remove from my list",
+ ADD: "Mark as interested",
+} as const;
+
+export const SHOW_CARD_UI = {
+ INTERESTED_ICON: "⭐ ",
+} as const;
diff --git a/src/hooks/useInterested.ts b/src/hooks/useInterested.ts
new file mode 100644
index 0000000..6e02765
--- /dev/null
+++ b/src/hooks/useInterested.ts
@@ -0,0 +1,14 @@
+import { useState } from "react";
+
+export function useInterested() {
+ const [isInterested, setIsInterested] = useState