import {Select, createOptions, createAsyncOptions} from "@thisbeyond/solid-select"; import {Api, SteamUser} from "./api"; import {createEffect, createSignal} from "solid-js"; export interface FilterBarProps { maps: string[], api: Api, initialFilter: FilterSet, onChange: (FilterSet) => void, } export const FilterBar = ({maps, api, onChange, initialFilter}: FilterBarProps) => { const modes = createOptions(["4v4", "6v6", "Highlander"]); const mapOptions = createOptions(maps, { createable: true }); const playerOptions = createAsyncOptions(search => api.searchPlayer(search)); const playerFormat = player => player.name; const [initialMode, setInitialMode] = createSignal(initialFilter.mode, {equals: false}); const [initialMap, setInitialMap] = createSignal(initialFilter.map, {equals: false}); const [filterSet, setFilterSet] = createSignal(initialFilter); createEffect(() => onChange(filterSet())); return
setFilterSet({ ...filterSet(), map })} initialValue={initialMap()} placeholder="All Maps" {...mapOptions} /> { setInitialMap(""); console.log({ ...filterSet(), map: "", }); onChange({ ...filterSet(), map: "", }); }}/>