UNPKG

@mantine/dates

Version:

Calendars, date and time pickers based on Mantine components

1 lines 2.54 kB
{"version":3,"file":"use-uncontrolled-dates.cjs","names":["toDateTimeString","toDateString"],"sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DatePickerType, DatePickerValue, DateStringValue } from '../../types';\nimport { toDateString, toDateTimeString } from '../../utils';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type> | undefined;\n defaultValue: DatePickerValue<Type> | undefined;\n onChange: ((value: DatePickerValue<Type, DateStringValue>) => void) | undefined;\n withTime?: boolean;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nexport const convertDatesValue = (value: any, withTime: boolean) => {\n const converter = withTime ? toDateTimeString : toDateString;\n return Array.isArray(value) ? value.map(converter) : converter(value);\n};\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n withTime = false,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue, controlled] = useUncontrolled<any>({\n value: convertDatesValue(value, withTime),\n defaultValue: convertDatesValue(defaultValue, withTime),\n finalValue: getEmptyValue(type),\n onChange,\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n storedType.current = type;\n\n if (value === undefined) {\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n }\n }\n\n return [_finalValue, _setValue, controlled];\n}\n"],"mappings":";;;;;AAaA,MAAM,iBAA0D,SAC9D,SAAS,UAAU,CAAC,MAAM,IAAI,IAAI,SAAS,aAAa,CAAC,IAAI;AAE/D,MAAa,qBAAqB,OAAY,aAAsB;CAClE,MAAM,YAAY,WAAWA,uBAAAA,mBAAmBC,uBAAAA;CAChD,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,SAAS,IAAI,UAAU,KAAK;AACtE;AAEA,SAAgB,qBAA8D,EAC5E,MACA,OACA,cACA,UACA,WAAW,SACkB;CAC7B,MAAM,cAAA,GAAA,MAAA,OAAA,CAA0B,IAAI;CACpC,MAAM,CAAC,QAAQ,WAAW,eAAA,GAAA,eAAA,gBAAA,CAAmC;EAC3D,OAAO,kBAAkB,OAAO,QAAQ;EACxC,cAAc,kBAAkB,cAAc,QAAQ;EACtD,YAAY,cAAc,IAAI;EAC9B;CACF,CAAC;CAED,IAAI,cAAc;CAElB,IAAI,WAAW,YAAY,MAAM;EAC/B,WAAW,UAAU;EAErB,IAAI,UAAU,KAAA,GAAW;GACvB,cAAc,iBAAiB,KAAA,IAAY,eAAe,cAAc,IAAI;GAC5E,UAAU,WAAW;EACvB;CACF;CAEA,OAAO;EAAC;EAAa;EAAW;CAAU;AAC5C"}