Files
wdi-dashboard/node_modules/@chakra-ui/hooks/dist/chunk-7JSBRQFI.mjs.map
2024-08-16 15:06:52 +05:30

1 line
2.6 KiB
Plaintext

{"version":3,"sources":["../src/use-controllable.ts"],"sourcesContent":["import { runIfFn } from \"@chakra-ui/utils\"\nimport { useCallback, useState } from \"react\"\nimport { useCallbackRef } from \"./use-callback-ref\"\n\nexport function useControllableProp<T>(prop: T | undefined, state: T) {\n const isControlled = prop !== undefined\n const value = isControlled && typeof prop !== \"undefined\" ? prop : state\n return [isControlled, value] as const\n}\n\nexport interface UseControllableStateProps<T> {\n /**\n * The value to used in controlled mode\n */\n value?: T\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T)\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void\n /**\n * The function that determines if the state should be updated\n */\n shouldUpdate?: (prev: T, next: T) => boolean\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState<T>(props: UseControllableStateProps<T>) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n shouldUpdate = (prev, next) => prev !== next,\n } = props\n const onChangeProp = useCallbackRef(onChange)\n const shouldUpdateProp = useCallbackRef(shouldUpdate)\n\n const [valueState, setValue] = useState(defaultValue as T)\n\n const isControlled = valueProp !== undefined\n const value = isControlled ? (valueProp as T) : valueState\n\n const updateValue = useCallback(\n (next: React.SetStateAction<T>) => {\n const nextValue = runIfFn(next, value)\n\n if (!shouldUpdateProp(value, nextValue)) {\n return\n }\n\n if (!isControlled) {\n setValue(nextValue)\n }\n\n onChangeProp(nextValue)\n },\n [isControlled, onChangeProp, value, shouldUpdateProp],\n )\n\n return [value, updateValue] as [T, React.Dispatch<React.SetStateAction<T>>]\n}\n"],"mappings":";;;;;;AAAA,SAAS,eAAe;AACxB,SAAS,aAAa,gBAAgB;AAG/B,SAAS,oBAAuB,MAAqB,OAAU;AACpE,QAAM,eAAe,SAAS;AAC9B,QAAM,QAAQ,gBAAgB,OAAO,SAAS,cAAc,OAAO;AACnE,SAAO,CAAC,cAAc,KAAK;AAC7B;AAyBO,SAAS,qBAAwB,OAAqC;AAC3E,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,eAAe,CAAC,MAAM,SAAS,SAAS;AAAA,EAC1C,IAAI;AACJ,QAAM,eAAe,eAAe,QAAQ;AAC5C,QAAM,mBAAmB,eAAe,YAAY;AAEpD,QAAM,CAAC,YAAY,QAAQ,IAAI,SAAS,YAAiB;AAEzD,QAAM,eAAe,cAAc;AACnC,QAAM,QAAQ,eAAgB,YAAkB;AAEhD,QAAM,cAAc;AAAA,IAClB,CAAC,SAAkC;AACjC,YAAM,YAAY,QAAQ,MAAM,KAAK;AAErC,UAAI,CAAC,iBAAiB,OAAO,SAAS,GAAG;AACvC;AAAA,MACF;AAEA,UAAI,CAAC,cAAc;AACjB,iBAAS,SAAS;AAAA,MACpB;AAEA,mBAAa,SAAS;AAAA,IACxB;AAAA,IACA,CAAC,cAAc,cAAc,OAAO,gBAAgB;AAAA,EACtD;AAEA,SAAO,CAAC,OAAO,WAAW;AAC5B;","names":[]}