Events (Eventos)
Hooks para listar eventos, ingressos, produtos e ingressos do usuário por evento.
ℹ️ Identificação do Canal
O canal é identificado automaticamente pelo headerX-Channel-Idconfigurado no SDK.
Não é necessário passarchannelSlugouchannelIdcomo parâmetro.
useEvents
Lista eventos do canal atual.
import { useEvents } from '@meaple-com/react-query';
function EventsList() {
const { data, isLoading, error } = useEvents();
if (isLoading) return <div>Carregando...</div>;
if (error) return <div>Erro: {error.message}</div>;
return (
<div>
{data?.events.map(event => (
<div key={event.id}>{event.name}</div>
))}
</div>
);
}- Parâmetros:
params?FindEventsParams – filtros opcionais:limit?: number– quantidade máxima de eventos por página.cursor?: string– cursor de paginação para buscar a próxima página.q?: string– termo de busca (nome do evento, etc).channelSlugs?: string[]– filtrar por um ou mais canais.categoryIds?: string[]– filtrar por categorias.orderBy?: 'START_DATE' | 'END_DATE' | 'MAX_PRICE' | 'MIN_PRICE'– ordenação.enabled?: boolean– filtro por eventos habilitados.priority?: number– obrigatório para retornar resultados: deve ser0; se omitido ou diferente de0, a listagem pode não retornar eventos.
options?– opções do React Query (ver visão geral).
Retorno:
- data: FindEventsProps –
{ events: FindEventItemProps[], cursor? }. - isLoading: boolean – estado de carregamento.
- error?: Error – erro da requisição (se houver).
Método Core: events.find — veja o exemplo de resposta no Core.
useEvent
Busca um evento específico por slug.
import { useEvent } from '@meaple-com/react-query';
function EventDetails({ eventSlug }: { eventSlug: string }) {
const { data: event, isLoading } = useEvent({ eventSlug });
if (isLoading) return <div>Carregando...</div>;
if (!event) return <div>Evento não encontrado</div>;
return <div>{event.name}</div>;
}- Parâmetros:
{ eventSlug: string }– slug do evento.
Retorno:
- event: EventProps | undefined – evento encontrado.
- isLoading: boolean – estado de carregamento.
- error?: Error – erro da requisição (se houver).
Método Core: events.getBySlug — veja o exemplo de resposta no Core.
useEventTickets
Busca ingressos de um evento.
import { useEventTickets } from '@meaple-com/react-query';
function TicketsList({ eventId }: { eventId: string }) {
const { data, isLoading } = useEventTickets(eventId);
if (isLoading) return <div>Carregando...</div>;
return (
<div>
{data?.tickets.map(ticket => (
<div key={ticket.id}>
{ticket.name} - R$ {ticket.price}
</div>
))}
</div>
);
}- Parâmetros:
eventId: string– ID do evento.
Retorno (FindEventTicketsProps):
- data.event: FindEventTicketsEventProps – evento resumido.
- data.tickets: FindEventTicketItemProps[] – ingressos do evento.
- data.groups: FindEventTicketGroupProps[] – grupos de ingressos.
Método Core: events.getTickets — veja o exemplo de resposta no Core.
useEventProducts
Busca produtos de um evento.
import { useEventProducts } from '@meaple-com/react-query';
function ProductsList({ eventId }: { eventId: string }) {
const { data, isLoading } = useEventProducts(eventId);
if (isLoading) return <div>Carregando...</div>;
return (
<div>
{data?.products.map(product => (
<div key={product.id}>
{product.name} - R$ {product.price}
</div>
))}
</div>
);
}- Parâmetros:
eventId: string– ID do evento.
Retorno (FindEventProductsProps):
- data.event: FindEventProductEventProps – evento resumido.
- data.products: FindEventProductItemProps[] – produtos do evento.
Método Core: events.getProducts — veja o exemplo de resposta no Core.
useUserEventTickets 🔒
Busca ingressos do usuário para um evento (requer autenticação).
import { useUserEventTickets } from '@meaple-com/react-query';
function UserTickets({ eventId }: { eventId: string }) {
const { data, isLoading } = useUserEventTickets(eventId);
if (isLoading) return <div>Carregando...</div>;
return (
<div>
{data?.map(userTicket => (
<div key={userTicket.id}>{userTicket.ticket.name}</div>
))}
</div>
);
}- Parâmetros:
eventId: string– ID do evento.
Retorno:
data: UserTicketProps[] – ingressos do usuário para o evento.
Método Core: events.getUserEventTickets — veja o exemplo de resposta no Core.