@focuson/form_components
Version:
Components that can be used by @focuson/forms
41 lines (40 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfirmChangesToAny = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const layout_1 = require("./layout");
const pages_1 = require("@focuson/pages");
const react_1 = require("react");
function ConfirmChangesToAny(props) {
const { id, state, confirm, layoutDetails, children, useRawMessage } = props;
//@ts-ignore
const ref = (0, react_1.useRef)();
(0, react_1.useEffect)(() => {
var _a;
const onBlur = (e) => {
if (!ref.current)
return;
const allInputs = ref.current.getElementsByTagName('input');
const list = [];
for (var i = 0; i < allInputs.length; i++) {
const item = allInputs.item(i);
if (!(item === null || item === void 0 ? void 0 : item.checkValidity()))
return;
list.push(`<tr><td>${item.getAttribute("data-validationmessage")}</td><td>${item.value}</td></tr>`);
}
const messageText = useRawMessage ? confirm.messageText : `<p>${confirm.messageText}</p><table><thead><th>Field</th><th>Value</th></thead><tbody>${list.join('')}</tbody></table>`;
const realConfirm = Object.assign(Object.assign({}, confirm), { messageText });
(0, pages_1.openConfirmWindow)(realConfirm, 'justclose', [], state.context.currentState(state), 'ConfirmChangesToAny', id, 'onBlur');
};
const allInputs = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('input');
if (!allInputs)
return;
for (var i = 0; i < allInputs.length; i++) {
const item = allInputs.item(i);
if (item)
item.onblur = onBlur;
}
}); //runs everytime. needs to because of guards making things visible and invisible.
return (0, jsx_runtime_1.jsx)(layout_1.Layout, Object.assign({ divRef: ref, state: state, details: layoutDetails }, { children: children }));
}
exports.ConfirmChangesToAny = ConfirmChangesToAny;