You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					34 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					34 lines
				
				1.3 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | var __importDefault = (this && this.__importDefault) || function (mod) { | ||
|  |     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
|  | }; | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | const react_1 = require("react"); | ||
|  | const parseISO_1 = __importDefault(require("date-fns/parseISO")); | ||
|  | const utils_1 = require("../../utils"); | ||
|  | const useDatePicker = ({ value, propertyType, disabled, onChange }) => { | ||
|  |     const [isCalendarVisible, setCalendarVisible] = react_1.useState(false); | ||
|  |     let date; | ||
|  |     let dateString; | ||
|  |     if (value && value.constructor.name !== 'Date') { | ||
|  |         const dateStringValue = value; | ||
|  |         let dateNum = parseISO_1.default(dateStringValue); | ||
|  |         if (dateNum.toString() === 'Invalid Date') | ||
|  |             dateNum = undefined; | ||
|  |         if (dateNum) { | ||
|  |             date = new Date(dateNum); | ||
|  |             dateString = utils_1.formatDateProperty(date, propertyType); | ||
|  |         } | ||
|  |     } | ||
|  |     else if (value && value.constructor.name === 'Date') { | ||
|  |         dateString = utils_1.formatDateProperty(value, propertyType); | ||
|  |     } | ||
|  |     const onDateChange = (newDate) => { | ||
|  |         if (!disabled) { | ||
|  |             onChange(newDate); | ||
|  |         } | ||
|  |     }; | ||
|  |     return { dateString, date, isCalendarVisible, setCalendarVisible, onDateChange }; | ||
|  | }; | ||
|  | exports.default = useDatePicker; |