import { createFileRoute } from '@tanstack/react-router' import { useState } from 'react' import { m } from '@/i18n/messages' import { useLocale } from '@/i18n/config' import { asI18n } from '@pikku/react' import { Badge, Container, Group, Paper, Stack, Text, TextInput, } from '@pikku/mantine/core' import { usePikkuQuery } from '@project/functions-sdk/pikku/api.gen' import { MarketingShell } from '../components/MarketingShell' import { EventCard } from '../components/EventCard' import { PageTitle } from '../components/AppLayout' type Filter = 'this_year' | 'next_year' | 'all' function FilterChip({ active, children, onClick, }: { active: boolean children: React.ReactNode onClick: () => void }) { return ( {asI18n(`${children}`)} ) } function EventsPage() { useLocale() const [filter, setFilter] = useState('all') const [search, setSearch] = useState('') const { data, isLoading, error } = usePikkuQuery('getEventsListing', { venueSlug: 'drawehn', filter, search: search.trim() || undefined, }) if (isLoading) return {m.common_states_loading()} if (error) return {m.common_states_error()} if (!data) return null return ( setSearch(e.currentTarget.value)} /> setFilter('this_year')}> {m.common_pages_events_filters_this_year()} setFilter('next_year')}> {m.common_pages_events_filters_next_year()} setFilter('all')}> {m.common_pages_events_filters_all()} {data.events.length === 0 ? ( {m.common_pages_events_empty()} ) : ( {data.events.map((e) => ( ))} )} ) } export const Route = createFileRoute('/events')({ component: EventsPage, })