@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
55 lines (52 loc) • 1.69 kB
JavaScript
import dayjs from 'dayjs';
import customParse from '../../../../_virtual/customParseFormat.js';
import StartEndDatetUtils from '../start-end-date/utils.js';
dayjs.extend(customParse);
const setDateValueWithinMinMax = (filter) => {
const { defaultValue, min, max } = filter;
let dateValue;
if (defaultValue) {
dateValue = defaultValue;
if (min)
dateValue = StartEndDatetUtils.compareMin(min, dateValue);
if (max)
dateValue = StartEndDatetUtils.compareMax(max, dateValue);
}
return dateValue;
};
const setValueFromRequest = (filter, req, prefix) => {
const { min, max, mandatory } = filter;
const dateValue = req.query[`${prefix}${filter.name}`];
let value = dateValue;
if (mandatory && !dateValue && !req.query['preventDefault']) {
value = min || max || '1977-05-25';
}
return value;
};
const setFilterValueFromDefault = (defaultValue, filter) => {
const value = defaultValue.value
? dayjs(defaultValue.value, 'D/M/YYYY')
.format('YYYY-MM-DD')
.toString()
: '';
return {
...filter,
value,
};
};
const getFilterFromDefinition = (filter, filterData) => {
return {
...filterData,
value: setDateValueWithinMinMax(filter) || '',
min: filter.min,
max: filter.max,
};
};
var DateInputUtils = {
setDateValueWithinMinMax,
getFilterFromDefinition,
setValueFromRequest,
setFilterValueFromDefault,
};
export { DateInputUtils as default, getFilterFromDefinition, setDateValueWithinMinMax, setFilterValueFromDefault, setValueFromRequest };
//# sourceMappingURL=utils.js.map