import {StateMap, StateSetter, StateSettingFunction} from "./types.js" export function createStateSetter({ stateMap, stateIndex, rerender, }: { stateMap: StateMap stateIndex: number rerender: () => void }): StateSetter { return valueOrFunction => { const [previousValue] = stateMap.get(stateIndex)! const newValue = typeof valueOrFunction === "function" ? (>valueOrFunction)(previousValue) : valueOrFunction if (newValue !== previousValue) { stateMap.set(stateIndex, [newValue, previousValue]) rerender() } } }