@quidone/react-native-wheel-picker
Version:
Picker is a UI component for selecting an item from a list of options.
43 lines (42 loc) • 1.48 kB
JavaScript
;
import React, { memo, useMemo } from 'react';
import { getDaysInMonth } from 'date-fns';
import Picker from '../base';
import { withPickerControl } from '../picker-control';
import { useDateContext } from './DatePickerValueProvider';
import { useOverlayItemStyle } from './useOverlayItemStyle';
import { useDatePickerLocale } from './DatePickerLocaleProvider';
import { withCommonProps } from './DatePickerCommonPropsProvider';
import { jsx as _jsx } from "react/jsx-runtime";
const HocPicker = withCommonProps(withPickerControl(Picker));
const DatePickerDate = ({
width = 60,
overlayItemStyle: overlayItemStyleProp,
...restProps
}) => {
const localeData = useDatePickerLocale();
const dateContext = useDateContext();
const value = dateContext.value;
const daysInMount = getDaysInMonth(new Date(value.year, value.month));
const data = useMemo(() => {
return [...Array(daysInMount).keys()].map(index => ({
value: index + 1
}));
}, [daysInMount]);
const overlayItemStyle = useOverlayItemStyle({
curUnit: 'date',
unitPositions: localeData.sortedDateUnitTypes,
propStyle: overlayItemStyleProp
});
return /*#__PURE__*/_jsx(HocPicker, {
width: width,
overlayItemStyle: overlayItemStyle,
...restProps,
pickerName: 'date',
control: dateContext.pickerControl,
value: value.date,
data: data
});
};
export default /*#__PURE__*/memo(DatePickerDate);
//# sourceMappingURL=DatePickerDate.js.map