mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-12-28 19:31:14 +08:00
886328ff7a
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.
43 lines
1.2 KiB
CoffeeScript
43 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
|