/**@jsx React.DOM*/ var BlockedNumberActionItem = createReactClass({ getInitialState: function() { return { isButtonLoading: false }; }, setButtonLoading: function(isLoading) { this.setState({ isButtonLoading: isLoading }) }, unblockPhoneNumber: function() { var PhoneNumber = this.props.blockedNumber; var self = this; var success = function() { self.props.onPhoneUnBlockedSuccess(PhoneNumber) self.setButtonLoading(false) }; var error = function() { alert("Error unblocking phone number, Please try again later"); self.setButtonLoading(false); }; self.setButtonLoading(true); GhWebClientData.unblockPhoneNumber(PhoneNumber.ID, success, error) }, showConfirmUnBlockPopup: function() { GUI.showInfoModal("Unblock this caller", "Are you sure, you want to unblock this number?", true, this.unblockPhoneNumber, onCancelUnblockNumberCallback, "UNBLOCK", true ); function onCancelUnblockNumberCallback() {} }, render: function () { const blockedNumber = this.props.blockedNumber; if(this.state.isButtonLoading) { return (
) } return (
) } }); var BlockedPhoneNumbers = createReactClass({ getInitialState: function() { return { isButtonLoading: false, isComponentLoading: false, blockedNumbers: this.props.blockedNumbers || [] }; }, getBlockedNumbersList: function() { const User = GhUser.getInstance(); var self = this; this.setState({ isComponentLoading: true }) var headers = { Authorization: 'OAuth ' + User.getuserAuthToken() }; fetch(GhWebClientData.getMapiURL() + "/vps/" + User.getuserVpsID() + "/blockednumbers", { headers }) .then(res => res.json()) .then(function(response) { self.setState({ blockedNumbers: [...response] }) }) .catch(console.error) .finally(function() { self.setState({ isComponentLoading: false }) }); }, componentDidMount: function() { this.getBlockedNumbersList(); }, onPhoneUnBlockedSuccess: function(PhoneNumber) { var blockedNumbers = this.state.blockedNumbers.filter(function(number) { return number !== PhoneNumber; }); this.setState({ blockedNumbers: [...blockedNumbers] }) }, renderEmptyList: function() { return (
You don't have any blocked phone number
) }, renderBlockPhoneNumberButton: function (blockedNumber) { return }, render: function () { if(this.state.isComponentLoading) { return (
) } if(this.state.blockedNumbers.length == 0) { return this.renderEmptyList(); } return (
{this.state.blockedNumbers.map(function(blockedNumber) { return ( ) }.bind(this))}
{this.renderBlockPhoneNumberButton(blockedNumber)}
); } });