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) =>
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