UNPKG

@atlaskit/datetime-picker

Version:

A date time picker allows the user to select an associated date and time.

42 lines (41 loc) 1.95 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; /** * Everything in this file is to smooth out the migration of the new date picker * (https://product-fabric.atlassian.net/browse/DSP-20682). When that ticket is * complete, all of these functions will ilkely be merged back into the date * picker. Please do not pre-optimize and put these back into the date picker * unless you are working on the DTP Refresh and you have a good reason to do * so, thank you! * * All variables within the `di` objects are dependency injections. They should * be read from within the component at the end of the day. But because we are * extracting them, we have to inject them in every place manually. When we * re-introduce them to the components, we can likely remove the `di` variables * and instead use internal variables. * * If component _only_ has injected variables, it is fully internal and was * broken out to be it's own function. */ // oxlint-disable-next-line @atlassian/no-restricted-imports import { lastDayOfMonth } from 'date-fns'; import { padToTwo } from './pad-two'; export var getParsedISO = function getParsedISO(di) { var iso = di.iso; var _iso$split = iso.split('-'), _iso$split2 = _slicedToArray(_iso$split, 3), year = _iso$split2[0], month = _iso$split2[1], date = _iso$split2[2]; var newIso = iso; var parsedDate = parseInt(date, 10); var parsedMonth = parseInt(month, 10); var parsedYear = parseInt(year, 10); var lastDayInMonth = lastDayOfMonth(new Date(parsedYear, parsedMonth - 1 // This needs to be -1, because the Date constructor expects an index of the given month )).getDate(); if (lastDayInMonth < parsedDate) { newIso = "".concat(parsedYear, "-").concat(padToTwo(parsedMonth), "-").concat(padToTwo(lastDayInMonth)); } else { newIso = "".concat(parsedYear, "-").concat(padToTwo(parsedMonth), "-").concat(padToTwo(parsedDate)); } return newIso; };