Mailspring/internal_packages/worker-ui/lib/developer-bar-long-poll-item.cjsx
Ben Gotow 39768fd9d4 bump(react): 0.13.2 => 0.14.7
Great breakdown of React changes here:
https://github.com/facebook/react/blob/master/CHANGELOG.md#0140-october-7-2015

Due to deprecation warnings, I don't think this will break third-party extensions unless they were doing really bad things.
2016-03-29 01:43:12 -07:00

44 lines
1.2 KiB
CoffeeScript

React = require 'react'
moment = require 'moment'
{Utils} = require 'nylas-exports'
class DeveloperBarLongPollItem extends React.Component
@displayName: 'DeveloperBarLongPollItem'
constructor: (@props) ->
@state = expanded: false
shouldComponentUpdate: (nextProps, nextState) =>
return not Utils.isEqualReact(nextProps, @props) or not Utils.isEqualReact(nextState, @state)
render: =>
if @state.expanded
payload = JSON.stringify(@props.item)
else
payload = []
itemId = @props.item.id
itemVersion = @props.item.version || @props.item.attributes?.version
itemId += " (version #{itemVersion})" if itemVersion
timestamp = moment(@props.item.timestamp).format("h:mm:ss")
classname = "item"
right = @props.item.cursor
if @props.ignoredBecause
classname += " ignored"
right = @props.ignoredBecause + " - " + right
<div className={classname} onClick={ => @setState expanded: not @state?.expanded}>
<div className="cursor">{right}</div>
{" #{timestamp}: #{@props.item.event} #{@props.item.object} #{itemId}"}
<div className="payload" onClick={ (e) -> e.stopPropagation() }>
{payload}
</div>
</div>
module.exports = DeveloperBarLongPollItem