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,
})