UNPKG

@pinuts/bsr-uikit-relaunch

Version:

BSR UI-KIT Relaunch

64 lines (60 loc) 2.56 kB
"use strict"; 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;