-
+
Available Events
diff --git a/app/host/page.tsx b/app/host/page.tsx
index a8ad4f3..cf5b430 100644
--- a/app/host/page.tsx
+++ b/app/host/page.tsx
@@ -74,7 +74,7 @@ const Page = () => {
loop
muted
className="absolute inset-0 w-full h-full object-cover z-0"
- src="BGVid2.mp4"
+ src="BGVid3.mp4"
>
Your browser does not support the video tag.
diff --git a/app/profile/page.tsx b/app/profile/page.tsx
index 1d0c8d1..d6455a9 100644
--- a/app/profile/page.tsx
+++ b/app/profile/page.tsx
@@ -23,9 +23,17 @@ if (!RPC_URL || !CONTRACT_ADDRESS) {
);
}
+interface TicketDetails {
+ ticketId: number;
+ eventName: string;
+ eventLocation: string;
+ eventDate: string;
+ imageUrl: string;
+}
+
export default function ProfilePage() {
const [isClient, setIsClient] = useState(false);
- const [userTickets, setUserTickets] = useState([]);
+ const [userTickets, setUserTickets] = useState([]);
const [userAddress, setUserAddress] = useState('');
const [loading, setLoading] = useState(false);
const [error, setError] = useState('');
@@ -86,17 +94,27 @@ export default function ProfilePage() {
console.log('Fetching tickets for address:', address);
- const tickets = await contract.getUserTickets(address);
- console.log('Raw tickets data:', tickets);
+ const ticketIds = await contract.getUserTickets(address);
+ console.log('Raw tickets data:', ticketIds);
- if (Array.isArray(tickets)) {
- const ticketNumbers = tickets.map((ticket: ethers.BigNumber) =>
- ticket.toNumber()
- );
- console.log('Processed ticket numbers:', ticketNumbers);
- setUserTickets(ticketNumbers);
+ if (Array.isArray(ticketIds)) {
+ const ticketDetailsPromises = ticketIds.map(async (ticketId) => {
+ const ticketNumber = ticketId.toNumber();
+ // Simulate fetching event details with dummy data
+ const eventDetails: TicketDetails = {
+ ticketId: ticketNumber,
+ eventName: `Event #${ticketNumber}`,
+ eventLocation: 'Location XYZ',
+ eventDate: '2023-12-01',
+ imageUrl: 'https://via.placeholder.com/150',
+ };
+ return eventDetails;
+ });
+
+ const details = await Promise.all(ticketDetailsPromises);
+ setUserTickets(details);
} else {
- console.error('Unexpected response from getUserTickets:', tickets);
+ console.error('Unexpected response from getUserTickets:', ticketIds);
setError('Unexpected response from contract. Please try again.');
}
} catch (error) {
@@ -108,69 +126,73 @@ export default function ProfilePage() {
return (
+
+ {isClient && (
+
+ )}
+
+
-
- {isClient && (
-
+
+
+ {loading
+ ? 'Connecting...'
+ : userAddress
+ ? 'Refresh Tickets'
+ : 'Connect Wallet'}
+
Your Profile
+ {userAddress ? ( +Connected Address: {userAddress}
+ ) : ( +Not connected
)} - + {error && ( +
+ {error}
+
+ )}
-
-
-
- Your Tickets
-
- Here are the tickets associated with your wallet
-
-
-
- {loading ? (
-
-
-
-
- {loading
- ? 'Connecting...'
- : userAddress
- ? 'Refresh Tickets'
- : 'Connect Wallet'}
-
-
+ Your Profile
- {userAddress ? ( -Connected Address: {userAddress}
- ) : ( -Not connected
- )} -Current Network: {networkName}
+ {loading ? ( +Loading...
+ ) : ( +
+ {userTickets.length > 0 ? (
+ userTickets.map((details) => (
+
+
+
+ {details.eventName}
+ {details.eventLocation}
+
+
+
+
+ ))
+ ) : (
+
+ )}
- {error && (
- Ticket ID: {details.ticketId}
+Date: {details.eventDate}
+You don't have any tickets yet.
+ )} +
- {error}
-
- )}
-
- Loading...
- ) : userTickets.length > 0 ? ( --
- {userTickets.map((ticketId) => (
-
- - Ticket ID: {ticketId} - - ))} -
You don't have any tickets yet.
- )} -