diff --git a/app/events/page.tsx b/app/events/page.tsx index 8324a90..2560502 100644 --- a/app/events/page.tsx +++ b/app/events/page.tsx @@ -152,7 +152,11 @@ const EventsPage: React.FC = () => {

- Loading...
}> + Loading... + } + > { {showSortMenu && (
- - - -
@@ -238,6 +254,22 @@ const EventsPage: React.FC = () => { /> Past Events + + {/* Filter by Host */} + )} @@ -246,7 +278,7 @@ const EventsPage: React.FC = () => {

-

+
Available Events

diff --git a/app/host/page.tsx b/app/host/page.tsx index 1b63f2b..765d6a3 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 && ( - +
+

Your Profile

+ {userAddress ? ( +

Connected Address: {userAddress}

+ ) : ( +

Not connected

)} -
+ {error && ( +
+ {error} +
+ )} -
-

Your Profile

- {userAddress ? ( -

Connected Address: {userAddress}

- ) : ( -

Not connected

- )} -

Current Network: {networkName}

+ {loading ? ( +

Loading...

+ ) : ( +
+ {userTickets.length > 0 ? ( + userTickets.map((details) => ( + + + {details.eventName} + {details.eventName} + {details.eventLocation} + + +

Ticket ID: {details.ticketId}

+

Date: {details.eventDate}

+
+
+ )) + ) : ( +

You don't have any tickets yet.

+ )} +
+ )} - {error && ( -
- {error} -
- )} - - - - Your Tickets - - Here are the tickets associated with your wallet - - - - {loading ? ( -

Loading...

- ) : userTickets.length > 0 ? ( -
    - {userTickets.map((ticketId) => ( -
  • - Ticket ID: {ticketId} -
  • - ))} -
- ) : ( -

You don't have any tickets yet.

- )} -
-
- - -
+