import { h } from 'preact'; import { ApiHost } from './context'; import Box from './components/Box'; import Heading from './components/Heading'; import Link from './components/Link'; import { route } from 'preact-router'; import { Table, Thead, Tbody, Tfoot, Th, Tr, Td } from './components/Table'; import { useCallback, useContext, useEffect, useState } from 'preact/hooks'; export default function Events({ url } = {}) { const apiHost = useContext(ApiHost); const [events, setEvents] = useState([]); const searchParams = new URL(`${window.location.protocol}//${window.location.host}${url || '/events'}`).searchParams; const searchParamsString = searchParams.toString(); useEffect(async () => { const response = await fetch(`${apiHost}/api/events?${searchParamsString}`); const data = response.ok ? await response.json() : {}; setEvents(data); }, [searchParamsString]); const searchKeys = Array.from(searchParams.keys()); return (