{"version":3,"file":"Alert-B06hBYU7.js","sources":["../../Client/legacy/Components/Modals/Alert.tsx"],"sourcesContent":["import { PrimaryGreenButton } from '@legacy/Components/FormGroups/Buttons';\r\nimport { Svg } from '@legacy/Components/Svg';\r\nimport * as Constants from '@shared/Constants';\r\nimport * as React from 'react';\r\nimport { Col, Row } from 'react-bootstrap';\r\nimport StandardModal from './StandardModal';\r\n\r\nexport enum AlertType {\r\n    Error = 'error-cp',\r\n    Warning = 'warning-cp',\r\n    Info = 'info-cp',\r\n    Message = 'message-cp',\r\n}\r\n\r\ninterface IAlertProps {\r\n    emailAddress?: string;\r\n    footerType?: Constants.AlertFooterType;\r\n    /** Optional, pass in a function to run when the modal closes. */\r\n    onCloseFn?: () => void;\r\n}\r\n\r\ninterface IAlertState {\r\n    visible: boolean;\r\n    message: string | JSX.Element;\r\n    header: string;\r\n    type: AlertType;\r\n    footerType: Constants.AlertFooterType;\r\n}\r\n\r\nexport default class Alert extends React.Component<IAlertProps, IAlertState> {\r\n    resolve: Function;\r\n\r\n    constructor(props) {\r\n        super(props);\r\n\r\n        this.state = {\r\n            visible: false,\r\n            message: '',\r\n            header: '',\r\n            type: AlertType.Error,\r\n            footerType: this.props.footerType || Constants.AlertFooterType.CustomerSupport,\r\n        };\r\n    }\r\n\r\n    getFooterType() {\r\n        let footerMessage;\r\n        switch (this.state.footerType) {\r\n            case Constants.AlertFooterType.MarketingTeam:\r\n                footerMessage = (\r\n                    <span>\r\n                        A member of our marketing team will be contacting you soon to discuss next steps and\r\n                        opportunities. Thank You!\r\n                    </span>\r\n                );\r\n                break;\r\n            case Constants.AlertFooterType.Commercial:\r\n                footerMessage = <span>If you have further questions, please contact your assigned underwriter.</span>;\r\n                break;\r\n            case Constants.AlertFooterType.None:\r\n                footerMessage = null;\r\n                break;\r\n            default:\r\n                footerMessage = (\r\n                    <span>\r\n                        If you have further questions, please reach out to our Customer Support Team at 1.855.479.9338\r\n                        or by <a href={`mailto:${(window as any).CustomerSupportEmail}`}>email</a>.\r\n                    </span>\r\n                );\r\n                break;\r\n        }\r\n        return footerMessage;\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <StandardModal\r\n                id='alert'\r\n                className={`alert-cp ${this.state.type}`}\r\n                show={this.state.visible}\r\n                hideFn={() => this.setState({ visible: false })}\r\n            >\r\n                <Row>\r\n                    <Col xs={12} className='alert-header-cp'>\r\n                        <div>\r\n                            <Svg\r\n                                path='/images/error-icon.svg'\r\n                                className={`alert-icon-cp ${this.state.type}`}\r\n                                alt={this.state.header}\r\n                            />\r\n                            <span className='modal-header-cp'>{this.state.header}</span>\r\n                        </div>\r\n                    </Col>\r\n                </Row>\r\n                <Row>\r\n                    <Col xs={12}>\r\n                        <div className='alert-content-cp'>{this.state.message}</div>\r\n                    </Col>\r\n                </Row>\r\n                {this.getFooterType() && (\r\n                    <Row className='alert-footer-cp'>\r\n                        <Col xs={12}>{this.getFooterType()}</Col>\r\n                    </Row>\r\n                )}\r\n                <Row className='row-spacing-medium-cp'>\r\n                    <Col sm={4} smOffset={8} xs={12}>\r\n                        <PrimaryGreenButton id='alert-close-btn' label='Close' onClick={() => this.onClose()} />\r\n                    </Col>\r\n                </Row>\r\n            </StandardModal>\r\n        );\r\n    }\r\n\r\n    hide() {\r\n        this.setState({\r\n            visible: false,\r\n        });\r\n    }\r\n\r\n    async error(message: string | JSX.Element, header: string = 'Issue Found', footerType?: Constants.AlertFooterType) {\r\n        await this.message(message, header, AlertType.Error, footerType || Constants.AlertFooterType.CustomerSupport);\r\n    }\r\n\r\n    async warning(message: string | JSX.Element, header: string) {\r\n        await this.message(message, header, AlertType.Warning, Constants.AlertFooterType.CustomerSupport);\r\n    }\r\n\r\n    async info(message: string | JSX.Element, header: string) {\r\n        await this.message(message, header, AlertType.Info, Constants.AlertFooterType.CustomerSupport);\r\n    }\r\n\r\n    async message(message: string | JSX.Element, header: string, type: AlertType, footerType?) {\r\n        await this.setState({\r\n            visible: true,\r\n            message,\r\n            header,\r\n            type,\r\n            footerType,\r\n        });\r\n\r\n        return await new Promise(resolve => (this.resolve = resolve));\r\n    }\r\n\r\n    onClose() {\r\n        this.hide();\r\n\r\n        if (this.props.onCloseFn) this.props.onCloseFn();\r\n\r\n        if (this.resolve) this.resolve();\r\n    }\r\n}\r\n"],"names":["AlertType","Alert","React.Component","props","__publicField","Constants.AlertFooterType","footerMessage","jsx","jsxs","StandardModal","Row","Col","Svg","PrimaryGreenButton","message","header","footerType","type","resolve"],"mappings":"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"}