React = require 'react' {Actions} = require 'inbox-exports' NotificationStore = require './notifications-store' NotificationStickyItem = React.createClass render: -> notif = @props.notification iconClass = if notif.icon then "fa #{notif.icon}" else "" actionComponents = notif.actions?.map (action) => @_fireItemAction(notif, action)}>{action.label}
{notif.message}{actionComponents}
_fireItemAction: (notification, action) -> Actions.notificationActionTaken({notification, action}) module.exports = NotificationStickyBar = React.createClass getInitialState: -> @_getStateFromStores() _getStateFromStores: -> items: NotificationStore.stickyNotifications() _onDataChanged: -> @setState @_getStateFromStores() componentDidMount: -> @_unlistener = NotificationStore.listen(@_onDataChanged, @) @ # It's important that every React class explicitly stops listening to # atom events before it unmounts. Thank you event-kit # This can be fixed via a Reflux mixin componentWillUnmount: -> @_unlistener() if @_unlistener @ render: ->
{@_notificationComponents()}
_notificationComponents: -> @state.items.map (notif) ->