@pinuts/bsr-uikit-relaunch
Version:
BSR UI-KIT Relaunch
64 lines (60 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
const convertUMTimeToDeFormat = dateData => {
const dateString = Object.values(dateData)[0];
const splitValue = dateString.split('-');
return {
[Object.keys(dateData)[0]]: `${splitValue[2]}.${splitValue[1]}.${splitValue[0]}`
};
};
const enrichDataWithDateFormates = data => Object.entries(data).reduce((lastResult, _ref) => {
let [nextKey, nextValue] = _ref;
if (typeof nextKey === 'string' && nextKey.includes('date')) {
lastResult[nextKey] = convertUMTimeToDeFormat(nextValue);
}
return lastResult;
}, data);
const getDefaultValidationMessage = (message, errorMessages, errorMessagesBaseKey) => (message === 'mandatory' ? errorMessages.required || errorMessages.requiredHTML || errorMessages[message] : errorMessages[message]) || [errorMessagesBaseKey, message].filter(Boolean).join('.');
const getValidationStringAndData = (inputMessage, errorMessages, errorMessagesBaseKey) => {
// Beispiel: dateTimePicker Validation
if (Array.isArray(inputMessage)) {
return {
message: getDefaultValidationMessage(inputMessage[0], errorMessages, errorMessagesBaseKey),
data: enrichDataWithDateFormates(inputMessage[1])
};
}
// alles andere
if (typeof inputMessage === 'string') {
return {
message: getDefaultValidationMessage(inputMessage, errorMessages, errorMessagesBaseKey),
data: {}
};
}
// default
return {
message: '',
data: {}
};
};
// Achtung: i18next t Funktion als erster Parameter
const useValidationMessage = function (t, validationMessage) {
let errorMessages = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
let errorMessagesBaseKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'errorMessages';
const displayedMessage = (0, _react.useMemo)(() => {
if (!validationMessage) {
return '';
}
const fixedProps = getValidationStringAndData(validationMessage, errorMessages, errorMessagesBaseKey);
const errorMsg = fixedProps?.message && !fixedProps.message.includes(':') && !fixedProps.message.includes('<') ? t(fixedProps.message, fixedProps.data) : fixedProps.message;
if (errorMsg.startsWith('errorMessages.')) {
return errorMsg.replace('errorMessages.', '');
}
return errorMsg;
}, [validationMessage, t, errorMessages, errorMessagesBaseKey]);
return displayedMessage;
};
var _default = exports.default = useValidationMessage;