{"version":3,"file":"use-set-state.mjs","names":[],"sources":["../../src/use-set-state/use-set-state.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport type UseSetStateCallback<T> = (\n  state: Partial<T> | ((currentState: T) => Partial<T>)\n) => void;\n\nexport type UseSetStateReturnValue<T> = [T, UseSetStateCallback<T>];\n\nexport function useSetState<T extends Record<string, any>>(\n  initialState: T\n): UseSetStateReturnValue<T> {\n  const [state, setState] = useState(initialState);\n\n  const _setState: UseSetStateCallback<T> = useCallback(\n    (statePartial) =>\n      setState((current) => ({\n        ...current,\n        ...(typeof statePartial === 'function' ? statePartial(current) : statePartial),\n      })),\n    []\n  );\n\n  return [state, _setState];\n}\n\nexport namespace useSetState {\n  export type Callback<T> = UseSetStateCallback<T>;\n  export type ReturnValue<T> = UseSetStateReturnValue<T>;\n}\n"],"mappings":";;;AAQA,SAAgB,YACd,cAC2B;CAC3B,MAAM,CAAC,OAAO,YAAY,SAAS,aAAa;AAWhD,QAAO,CAAC,OATkC,aACvC,iBACC,UAAU,aAAa;EACrB,GAAG;EACH,GAAI,OAAO,iBAAiB,aAAa,aAAa,QAAQ,GAAG;EAClE,EAAE,EACL,EAAE,CACH,CAEwB"}