mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-14 13:44:41 +08:00
55 lines
1.3 KiB
CoffeeScript
55 lines
1.3 KiB
CoffeeScript
_ = require 'underscore-plus'
|
|
React = require "react"
|
|
|
|
{Actions, FocusedContactsStore} = require("inbox-exports")
|
|
|
|
class SidebarThreadParticipants extends React.Component
|
|
@displayName: 'SidebarThreadParticipants'
|
|
|
|
@containerStyles:
|
|
order: 3
|
|
flexShrink: 0
|
|
|
|
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
|