UNPKG

@botonic/react

Version:

Build Chatbots using React

94 lines 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ButtonsDisabler = void 0; const message_utils_1 = require("../message-utils"); const objects_1 = require("../util/objects"); const react_1 = require("../util/react"); const button_1 = require("./button"); // biome-ignore lint/complexity/noStaticOnlyClass: ButtonsDisabler is a static class and should not be instantiated class ButtonsDisabler { static constructBrowserProps(props) { const disabledProps = {}; if (props.autodisable !== undefined) { disabledProps.autodisable = (0, objects_1.strToBool)(props.autodisable); } if (props.disabledstyle !== undefined) { disabledProps.disabledstyle = props.disabledstyle; } return disabledProps; } static constructNodeProps(props) { const disabledProps = {}; if (props.autodisable !== undefined) { disabledProps.autodisable = String(props.autodisable); } if (props.disabledstyle !== undefined) { disabledProps.disabledstyle = JSON.stringify(props.disabledstyle); } return disabledProps; } static withDisabledProps(props) { return { disabled: props.disabled, autodisable: props.autodisable, disabledstyle: props.disabledstyle, }; } static updateChildrenButtons(children, additionalProps) { return (0, react_1.deepMapWithIndex)(children, (node) => { if (node.type === button_1.Button) { return ButtonsDisabler.updateButtons(node, additionalProps); } return node; }); } static updateButtons(node, additionalProps) { if (additionalProps) { additionalProps = { parentId: additionalProps.parentId, disabled: node.props.disabled === true ? node.props.disabled : additionalProps.disabled, setDisabled: additionalProps.setDisabled, }; } return { ...node, props: { ...node.props, ...additionalProps, }, }; } static getUpdatedMessage(messageToUpdate) { const updateMsgButton = (button) => { return { ...button, ...{ disabled: true, }, }; }; if ((0, message_utils_1.isCarousel)(messageToUpdate) && messageToUpdate.data && messageToUpdate.data.elements) { messageToUpdate.data.elements = messageToUpdate.data.elements.map(e => ({ ...e, ...{ buttons: e.buttons.map(updateMsgButton), }, })); return messageToUpdate; } else { return { ...messageToUpdate, ...{ buttons: messageToUpdate.buttons.map(updateMsgButton), }, }; } } } exports.ButtonsDisabler = ButtonsDisabler; //# sourceMappingURL=buttons-disabler.js.map