mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-12 12:40:08 +08:00
68343ec472
Summary: This diff moves us up to React 0.13.2 and transitions some of the core React components to the new syntax based on plain Javascript objects. `setInitialState` is now just code in the constructor, `getDOMNode(@)` is now `React.findDOMNode(@)`, and `isMounted` is no longer necessary or available. This diff also adds `RegisteredComponent` to match `RegisteredRegion`. In another diff, I think we should change the names of these to be `DynamicComponent` and `DynamicComponentSet`. This diff also includes preliminary API Reference docs for Menu.cjsx and Popover.cjsx. You can build the docs using `grunt docs` from the build folder. It produces a simple html format now, but it's easy to customize. Also we now ignore "Unnecessary fat arrow" Test Plan: Run tests Reviewers: evan Reviewed By: evan Differential Revision: https://review.inboxapp.com/D1437
51 lines
No EOL
1.3 KiB
CoffeeScript
51 lines
No EOL
1.3 KiB
CoffeeScript
_ = require 'underscore-plus'
|
|
React = require "react"
|
|
|
|
{Actions, FocusedContactsStore} = require("inbox-exports")
|
|
|
|
class SidebarThreadParticipants extends React.Component
|
|
@displayName = 'SidebarThreadParticipants'
|
|
|
|
constructor: (@props) ->
|
|
@state =
|
|
@_getStateFromStores()
|
|
|
|
componentDidMount: =>
|
|
@unsubscribe = FocusedContactsStore.listen @_onChange
|
|
|
|
componentWillUnmount: =>
|
|
@unsubscribe()
|
|
|
|
render: =>
|
|
<div className="sidebar-thread-participants">
|
|
<h2 className="sidebar-h2">Thread Participants</h2>
|
|
{@_renderSortedContacts()}
|
|
</div>
|
|
|
|
_renderSortedContacts: =>
|
|
contacts = []
|
|
@state.sortedContacts.forEach (contact) =>
|
|
if contact is @state.focusedContact
|
|
selected = "selected"
|
|
else selected = ""
|
|
contacts.push(
|
|
<div className="other-contact #{selected}"
|
|
onClick={=> @_onSelectContact(contact)}
|
|
key={contact.email+contact.name}>
|
|
{contact.name}
|
|
</div>
|
|
)
|
|
return contacts
|
|
|
|
_onSelectContact: (contact) =>
|
|
Actions.focusContact(contact)
|
|
|
|
_onChange: =>
|
|
@setState(@_getStateFromStores())
|
|
|
|
_getStateFromStores: =>
|
|
sortedContacts: FocusedContactsStore.sortedContacts()
|
|
focusedContact: FocusedContactsStore.focusedContact()
|
|
|
|
|
|
module.exports = SidebarThreadParticipants |