import { Dispatch, ReactElement, SetStateAction, useState } from 'react'; type UseStateProviderProps = { initial: T | (() => T); children: (value: T, setter: Dispatch>) => ReactElement; }; export function UseStateProvider({ initial, children }: UseStateProviderProps) { return children(...useState(initial)); }