'use client'; import React, { useState } from 'react'; import { ethers } from 'ethers'; import { getContract } from '@/lib/ethers'; // Adjust the path to your ethers helper const GetEventTickets = () => { const [eventId, setEventId] = useState(null); const [tickets, setTickets] = useState(null); const [errorMessage, setErrorMessage] = useState(null); const handleGetTickets = async () => { setErrorMessage(null); setTickets(null); if (eventId === null) { setErrorMessage('Please enter a valid Event ID.'); return; } try { // Get the contract instance const contract = getContract(); // Fetch tickets for the given event ID const eventTickets = await contract.getEventTickets(eventId); // Convert BigNumbers to plain numbers for display setTickets( eventTickets.map((ticket: ethers.BigNumber) => ticket.toNumber()) ); } catch (error) { console.error('Error fetching event tickets:', error); setErrorMessage( 'Failed to fetch tickets. Please check the Event ID and try again.' ); } }; return (

Get Event Tickets

setEventId(Number(e.target.value))} className="border p-2 mb-2" /> {errorMessage &&

{errorMessage}

} {tickets && (

Tickets for Event {eventId}:

{tickets.length > 0 ? (
    {tickets.map((ticketId, index) => (
  • Ticket ID: {ticketId}
  • ))}
) : (

No tickets available for this event.

)}
)}
); }; export default GetEventTickets;