React = require 'react' path = require 'path' fs = require 'fs' _ = require 'underscore' {RetinaImg, Flexbox, ConfigPropContainer, NewsletterSignup} = require 'nylas-component-kit' {EdgehillAPI, AccountStore} = require 'nylas-exports' OnboardingActions = require('./onboarding-actions').default # NOTE: Temporarily copied from preferences module class AppearanceModeOption extends React.Component @propTypes: mode: React.PropTypes.string.isRequired active: React.PropTypes.bool onClick: React.PropTypes.func render: => classname = "appearance-mode" classname += " active" if @props.active label = { 'list': 'Single Panel' 'split': 'Two Panel' }[@props.mode]
{label}
class InitialPreferencesOptions extends React.Component @propTypes: config: React.PropTypes.object constructor: (@props) -> @state = templates: [] @_loadTemplates() _loadTemplates: => templatesDir = path.join(NylasEnv.getLoadSettings().resourcePath, 'keymaps', 'templates') fs.readdir templatesDir, (err, files) => return unless files and files instanceof Array templates = files.filter (filename) => path.extname(filename) is '.cson' or path.extname(filename) is '.json' templates = templates.map (filename) => path.parse(filename).name @setState(templates: templates) @_setConfigDefaultsForAccount(templates) _setConfigDefaultsForAccount: (templates) => return unless @props.account templateWithBasename = (name) => _.find templates, (t) -> t.indexOf(name) is 0 if @props.account.provider is 'gmail' @props.config.set('core.workspace.mode', 'list') @props.config.set('core.keymapTemplate', templateWithBasename('Gmail')) else if @props.account.provider is 'eas' @props.config.set('core.workspace.mode', 'split') @props.config.set('core.keymapTemplate', templateWithBasename('Outlook')) else @props.config.set('core.workspace.mode', 'split') if process.platform is 'darwin' @props.config.set('core.keymapTemplate', templateWithBasename('Apple Mail')) else @props.config.set('core.keymapTemplate', templateWithBasename('Outlook')) render: => return false unless @props.config

Do you prefer a single panel layout (like Gmail) or a two panel layout?

{['list', 'split'].map (mode) => @props.config.set('core.workspace.mode', mode)} /> }

We've picked a set of keyboard shortcuts based on your email account and platform. You can also pick another set:

class InitialPreferencesPage extends React.Component @displayName: "InitialPreferencesPage" constructor:(@props) -> @state = {account: AccountStore.accounts()[0]} componentDidMount: => @_unlisten = AccountStore.listen(@_onAccountStoreChange) componentWillUnmount: => @_unlisten?() _onAccountStoreChange: => @setState(account: AccountStore.accounts()[0]) render: =>

Welcome to N1

Let's set things up to your liking.

_onFinished: => require('electron').ipcRenderer.send('account-setup-successful') module.exports = InitialPreferencesPage