UNPKG

@focuson/form_components

Version:

Components that can be used by @focuson/forms

41 lines (40 loc) 2.11 kB
"use strict"; 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;