{"version":3,"file":"use-input-state.cjs","names":[],"sources":["../../src/use-input-state/use-input-state.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport function getInputOnChange<T>(\n  setValue: (value: null | undefined | T | ((current: T) => T)) => void\n) {\n  return (val: null | undefined | T | React.ChangeEvent<any> | ((current: T) => T)) => {\n    if (!val) {\n      setValue(val as T);\n    } else if (typeof val === 'function') {\n      setValue(val);\n    } else if (typeof val === 'object' && 'nativeEvent' in val) {\n      const { currentTarget } = val;\n\n      if (currentTarget.type === 'checkbox') {\n        setValue((currentTarget as any).checked as any);\n      } else {\n        setValue(currentTarget.value as any);\n      }\n    } else {\n      setValue(val);\n    }\n  };\n}\n\nexport type UseInputStateReturnValue<T> = [\n  T,\n  (value: null | undefined | T | React.ChangeEvent<any>) => void,\n];\n\nexport function useInputState<T>(initialState: T): UseInputStateReturnValue<T> {\n  const [value, setValue] = useState<T>(initialState);\n  return [value, getInputOnChange<T>(setValue as any)];\n}\n\nexport namespace useInputState {\n  export type ReturnValue<T> = UseInputStateReturnValue<T>;\n}\n"],"mappings":";;;AAEA,SAAgB,iBACd,UACA;AACA,SAAQ,QAA6E;AACnF,MAAI,CAAC,IACH,UAAS,IAAS;WACT,OAAO,QAAQ,WACxB,UAAS,IAAI;WACJ,OAAO,QAAQ,YAAY,iBAAiB,KAAK;GAC1D,MAAM,EAAE,kBAAkB;AAE1B,OAAI,cAAc,SAAS,WACzB,UAAU,cAAsB,QAAe;OAE/C,UAAS,cAAc,MAAa;QAGtC,UAAS,IAAI;;;AAUnB,SAAgB,cAAiB,cAA8C;CAC7E,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAAwB,aAAa;AACnD,QAAO,CAAC,OAAO,iBAAoB,SAAgB,CAAC"}