React = require 'react' _ = require 'underscore' {NamespaceStore} = require 'nylas-exports' {RetinaImg, Flexbox} = require 'nylas-component-kit' class PreferencesAccounts extends React.Component @displayName: 'PreferencesAccounts' @propTypes: config: React.PropTypes.object.isRequired constructor: (@props) -> @state = @getStateFromStores() componentDidMount: => @unsubscribe = NamespaceStore.listen @_onNamespaceChange componentWillUnmount: => @unsubscribe?() render: =>
Account:
{@_renderNamespace()}
{@_renderLinkedAccounts()}
_renderNamespace: => return false unless @state.namespace
{@state.namespace.emailAddress}
{@state.namespace.name || "No name provided."} ({@state.namespace.displayProvider()})
_renderLinkedAccounts: => accounts = @getLinkedAccounts() return false unless accounts.length > 0
Linked Accounts:
{ accounts.map (name) =>
{@_renderLinkedAccount(name)}
}
_renderLinkedAccount: (name) =>
{name}
getStateFromStores: => namespace: NamespaceStore.current() getLinkedAccounts: => return [] unless @props.config accounts = [] for key in ['salesforce'] accounts.push(key) if @props.config[key] accounts _onNamespaceChange: => @setState(@getStateFromStores()) _onUnlinkAccount: (name) => atom.config.unset(name) return _onLogout: => atom.logout() module.exports = PreferencesAccounts