jam-cloud/web/app/assets/javascripts/react-components/Broadcast.jsx

51 lines
1.3 KiB
JavaScript

var React = require('react');
var broadcastActions = window.JK.Actions.broadcast;
var rest = window.JK.Rest();
var Broadcast = React.createClass({
displayName: 'Broadcast Notification',
handleNavigate: function (e) {
var href = $(e.currentTarget).attr('href')
if (href.indexOf('http') == 0) {
e.preventDefault()
window.JK.popExternalLink(href)
}
broadcastActions.hide.trigger()
},
notNow: function (e) {
e.preventDefault();
rest.quietBroadcastNotification({broadcast_id: this.props.notification.id})
broadcastActions.hide.trigger()
},
createMarkup: function() {
return {__html: this.props.notification.message};
},
render: function () {
return <div className="broadcast-notification">
<div className="message" dangerouslySetInnerHTML={this.createMarkup()}/>
<div className="actions">
<div className="actionsAligner">
<a className="button-orange" onClick={this.handleNavigate}
href={this.props.notification.button_url}>{this.props.notification.button_label}</a>
<br/>
<a className="not-now" href="#" onClick={this.notNow}>not now, thanks</a>
</div>
</div>
</div>
}
});
// each file will export exactly one component
module.exports = Broadcast;