/**@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 (
|
|
{this.renderBlockPhoneNumberButton(blockedNumber)}
|
)
}.bind(this))}
);
}
});