UNPKG

@mopinion/survey

Version:

Collect customer feedback with the Mopinion survey library

52 lines (51 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = useValidatedBlocks; var _hooks = require("preact/hooks"); var _BlockStore = require("../stores/BlockStore"); var _ConfigStore = require("../stores/ConfigStore"); function useValidatedBlocks() { var blockIdArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var showErrors = arguments.length > 1 ? arguments[1] : undefined; var blockState = (0, _BlockStore.useBlockStore)(); var _useConfigStore = (0, _ConfigStore.useConfigStore)(), blocks = _useConfigStore.blocks; var firstInvalid = (0, _hooks.useRef)(null); var pageValid = blockIdArray.every(function (blockId) { var _blocks$blockId; var state = blockState[blockId]; var block = (_blocks$blockId = blocks[blockId]) !== null && _blocks$blockId !== void 0 ? _blocks$blockId : {}; if (!(state !== null && state !== void 0 && state.isVisible)) { return true; } if (block.typeName === 'contact') { var contactValid = Object.keys(block.properties.elements).every(function (elementKey) { var _state$element$data_f; var element = block.properties.elements[elementKey]; if (element.subelements) { return Object.keys(element.subelements).every(function (subElementKey) { var _state$subElement$dat; var subElement = element.subelements[subElementKey]; return !((_state$subElement$dat = state[subElement.data_field]) !== null && _state$subElement$dat !== void 0 && _state$subElement$dat.showError); }); } return !((_state$element$data_f = state[element.data_field]) !== null && _state$element$data_f !== void 0 && _state$element$data_f.showError); }); if (showErrors && !contactValid && !firstInvalid.current) { firstInvalid.current = Number(block.id); } return contactValid; } if (showErrors && state.showError && !state.value && !firstInvalid.current) { firstInvalid.current = Number(block.id); } return !state.showError; }); return { pageValid: pageValid, firstInvalid: firstInvalid.current }; } //# sourceMappingURL=useValidatedBlocks.js.map