@focuson/form_components
Version:
Components that can be used by @focuson/forms
69 lines (68 loc) • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DatePickerForPayments = void 0;
const datePicker_1 = require("./datePicker");
const utils_1 = require("@focuson/utils");
const pages_1 = require("@focuson/pages");
function isDatePickerForPaymentProps(d) {
const a = d;
return a.pathToDateInfo;
}
const selectFnForPayments = (0, datePicker_1.defaultDatePickerWithExtraTxs)((props, dateAsString) => {
var _a, _b;
if (dateAsString && isDatePickerForPaymentProps(props)) {
const { id, pathToDateInfo, state, paymentType, dateFormat, messages } = props;
// @ts-ignore
const dateDebug = (_b = (_a = state.main) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.dateDebug;
const { dateFn } = state.context;
const pt = paymentType.optJsonOr('');
if (dateDebug)
console.log('payment typeis', pt);
const msgs = messages === null || messages === void 0 ? void 0 : messages[pt];
if (msgs === undefined) {
if (dateDebug)
console.log(`Can't find messages for [${pt}]`);
return [];
}
const { warning, error } = msgs;
if (dateDebug)
console.log('Messages are', pt, msgs);
if (dateDebug)
console.log('warning ', warning, 'error', error);
const dateInfo = pathToDateInfo.optJson();
const browserNow = dateFn();
const valueAsDate = (0, datePicker_1.parseDate)(``, dateFormat)(dateAsString);
const todayAsDate = (0, datePicker_1.parseDate)(``, dateInfo.dates.dateFormat)(dateInfo.dates.today);
if (dateDebug)
console.log('Datapicker for payments', id, 'valueAsDate', valueAsDate, 'todayAsDate', todayAsDate);
if (dateInfo && !Array.isArray(valueAsDate) && !Array.isArray(todayAsDate) && (0, utils_1.isSameDay)(valueAsDate, todayAsDate)) {
console.log('same day', valueAsDate, todayAsDate, (0, utils_1.isSameDay)(valueAsDate, todayAsDate));
const serverNow = (0, utils_1.timeOnServerinGMT)(browserNow, dateInfo);
if (dateDebug)
console.log('Datapicker for payments', id, 'browserNow', browserNow);
if (dateDebug)
console.log('Datapicker for payments', id, 'serverNow', serverNow);
if (dateDebug)
console.log('Datapicker for payments', id, 'error.time', error.time);
if (dateDebug)
console.log('Datapicker for payments', id, 'warning.time', warning.time);
if (dateDebug)
console.log('Datapicker for payments', id, 'dateInfo', dateInfo);
if (dateDebug)
console.log('Datapicker for payments', id, 'after error', error.time, (0, utils_1.after)(browserNow, error.time, dateInfo));
if ((0, utils_1.after)(browserNow, error.time, dateInfo))
return (0, pages_1.openConfirmWindowTxs)(error, 'justclose', [], state, 'DatePickerForPayments', props.id, 'onChange');
if (dateDebug)
console.log('Datapicker for payments', id, 'after warning', warning.time, (0, utils_1.after)(browserNow, warning.time, dateInfo));
if ((0, utils_1.after)(browserNow, warning.time, dateInfo))
return (0, pages_1.openConfirmWindowTxs)(warning, 'justclose', [], state, 'DatePickerForPayments', props.id, 'onChange');
// }
}
}
return [];
});
function DatePickerForPayments(props) {
const dateInfo = props.pathToDateInfo.focusOn('dates');
return (0, datePicker_1.RawDatePicker)(selectFnForPayments)(Object.assign(Object.assign({}, props), { dateInfo }));
}
exports.DatePickerForPayments = DatePickerForPayments;