diff --git a/src/components/ComposeTextPanel/NoSenderAlert.js b/src/components/ComposeTextPanel/NoSenderAlert.js new file mode 100644 index 0000000000..1d89712670 --- /dev/null +++ b/src/components/ComposeTextPanel/NoSenderAlert.js @@ -0,0 +1,44 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import messageSenderMessages from + 'ringcentral-integration/modules/MessageSender/messageSenderMessages'; +import AlertDisplay from '../AlertDisplay'; +import MessageSenderAlert from '../MessageSenderAlert'; + +export default class NoSenderAlert extends Component { + constructor(props) { + super(props); + this.state = { + showAlert: !props.hasSenderNumbers && this.props.outboundSMS, + }; + this.onDismissAlert = () => { + this.setState({ + showAlert: false + }); + }; + this.getRenderer = () => MessageSenderAlert; + this.messages = [ + { + id: '1', + level: 'warning', + message: messageSenderMessages.senderNumberInvalid, + } + ]; + } + render() { + return this.state.showAlert ? ( + + ) : null; + } +} + +NoSenderAlert.propTypes = { + currentLocale: PropTypes.string.isRequired, + outboundSMS: PropTypes.bool.isRequired, + hasSenderNumbers: PropTypes.bool.isRequired, +}; diff --git a/src/components/ComposeTextPanel/index.js b/src/components/ComposeTextPanel/index.js index 3c0a5ac3b5..5c653b6a32 100644 --- a/src/components/ComposeTextPanel/index.js +++ b/src/components/ComposeTextPanel/index.js @@ -1,14 +1,12 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import messageSenderMessages from -'ringcentral-integration/modules/MessageSender/messageSenderMessages'; import classnames from 'classnames'; import i18n from './i18n'; import styles from './styles.scss'; import RecipientsInput from '../RecipientsInput'; -import AlertDisplay from '../AlertDisplay'; -import MessageSenderAlert from '../MessageSenderAlert'; import Select from '../DropdownSelect'; +import SpinnerOverlay from '../SpinnerOverlay'; +import NoSenderAlert from './NoSenderAlert'; function SenderField(props) { @@ -35,14 +33,11 @@ SenderField.propTypes = { options: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired, }; + class ComposeTextPanel extends Component { constructor(props) { super(props); - this.state = { - showAlert: !this.hasSenderNumbers() && this.props.outboundSMS, - }; - this.onSenderChange = (value) => { this.props.updateSenderNumber(value); }; @@ -88,19 +83,6 @@ class ComposeTextPanel extends Component { this.props.send(); console.debug('send message ...'); }; - this.onDismissAlert = () => { - this.setState({ - showAlert: false - }); - }; - this.getRenderer = () => MessageSenderAlert; - this.messages = [ - { - id: '1', - level: 'warning', - message: messageSenderMessages.senderNumberInvalid, - } - ]; } hasSenderNumbers() { @@ -108,14 +90,13 @@ class ComposeTextPanel extends Component { } render() { - const noSenderAlert = this.state.showAlert ? ( - - ) : null; + if (this.props.showSpinner) { + return ( +
+ +
+ ); + } const senderField = this.hasSenderNumbers() ? ( - {noSenderAlert} +