2015-09-23 11:11:51 +08:00
|
|
|
React = require 'react'
|
2015-09-30 14:58:30 +08:00
|
|
|
path = require 'path'
|
2015-09-23 11:11:51 +08:00
|
|
|
{RetinaImg, ConfigPropContainer} = require 'nylas-component-kit'
|
|
|
|
{EdgehillAPI} = require 'nylas-exports'
|
|
|
|
OnboardingActions = require './onboarding-actions'
|
|
|
|
|
|
|
|
InitialPackages = [{
|
2015-09-30 14:58:30 +08:00
|
|
|
'label': 'Templates',
|
|
|
|
'packageName': 'templates',
|
2015-09-23 11:11:51 +08:00
|
|
|
'description': 'Templates let you fill an email with a pre-set body of text and a snumber of fields you can fill quickly to save time.'
|
|
|
|
'icon': 'setup-icon-templates.png'
|
|
|
|
}, {
|
2015-09-30 14:58:30 +08:00
|
|
|
'label': 'Signatures',
|
|
|
|
'packageName': 'signatures',
|
2015-09-23 11:11:51 +08:00
|
|
|
'description': 'Select from and edit mutiple signatures that N1 will automatically append to your sent messages.'
|
|
|
|
'icon': 'setup-icon-signatures.png'
|
|
|
|
},{
|
2015-09-30 14:58:30 +08:00
|
|
|
'label': 'Github',
|
|
|
|
'packageName': 'N1-Github-Contact-Card-Section'
|
2015-09-23 11:11:51 +08:00
|
|
|
'description': 'Adds Github quick actions to many emails, and allows you to see the Github profiles of the people you email.'
|
|
|
|
'icon': 'setup-icon-github.png'
|
|
|
|
}]
|
|
|
|
|
2015-09-30 14:58:30 +08:00
|
|
|
class InstallButton extends React.Component
|
2015-09-23 11:11:51 +08:00
|
|
|
constructor: (@props) ->
|
2015-09-30 14:58:30 +08:00
|
|
|
@state =
|
|
|
|
installed: atom.packages.resolvePackagePath(@props.packageName)?
|
|
|
|
installing: false
|
2015-09-23 11:11:51 +08:00
|
|
|
|
|
|
|
render: =>
|
2015-09-30 14:58:30 +08:00
|
|
|
classname = "btn btn-install"
|
|
|
|
classname += " installing" if @state.installing
|
|
|
|
classname += " installed" if @state.installed
|
|
|
|
|
|
|
|
<div className={classname} onClick={@_onInstall}></div>
|
|
|
|
|
|
|
|
_onInstall: =>
|
|
|
|
return false unless @props.packageName
|
|
|
|
{resourcePath} = atom.getLoadSettings()
|
|
|
|
packagePath = path.join(resourcePath, "examples", @props.packageName)
|
|
|
|
@setState(installing: true)
|
|
|
|
atom.packages.installPackageFromPath packagePath, (err) =>
|
|
|
|
@setState({
|
|
|
|
installing: false
|
|
|
|
installed: atom.packages.resolvePackagePath(@props.packageName)?
|
|
|
|
})
|
|
|
|
|
|
|
|
componentWillUnmount: =>
|
|
|
|
@listener?.dispose()
|
2015-09-28 17:12:35 +08:00
|
|
|
|
2015-09-25 05:51:15 +08:00
|
|
|
class InitialPackagesPage extends React.Component
|
2015-09-23 11:11:51 +08:00
|
|
|
@displayName: "InitialPackagesPage"
|
|
|
|
|
|
|
|
render: =>
|
2015-09-28 17:12:35 +08:00
|
|
|
<div className="page opaque" style={width:900, height:650}>
|
2015-09-23 11:11:51 +08:00
|
|
|
<div className="back" onClick={@_onPrevPage}>
|
|
|
|
<RetinaImg name="onboarding-back.png" mode={RetinaImg.Mode.ContentPreserve}/>
|
|
|
|
</div>
|
2015-09-30 14:58:30 +08:00
|
|
|
|
|
|
|
<h1 style={paddingTop: 60, marginBottom: 20}>Explore packages</h1>
|
|
|
|
<p style={paddingBottom: 20}>
|
|
|
|
Packages lie at the heart of N1 and give it it's powerful features.<br/>
|
|
|
|
Want to enable a few example packages now? They'll be installed to <code>~/.nylas</code>
|
2015-09-23 11:11:51 +08:00
|
|
|
</p>
|
|
|
|
|
2015-09-30 14:58:30 +08:00
|
|
|
<div>
|
|
|
|
{InitialPackages.map (item) =>
|
|
|
|
<div className="initial-package" key={item.label}>
|
|
|
|
<RetinaImg name={item.icon} mode={RetinaImg.Mode.ContentPreserve} />
|
|
|
|
<div className="install-container">
|
|
|
|
<InstallButton packageName={item.packageName} />
|
|
|
|
</div>
|
|
|
|
<div className="name">{item.label}</div>
|
|
|
|
<div className="description">{item.description}</div>
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
<button className="btn btn-large btn-emphasis" style={marginTop: 15} onClick={@_onGetStarted}>Start Using N1</button>
|
2015-09-23 11:11:51 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
_onPrevPage: =>
|
|
|
|
OnboardingActions.moveToPage('initial-preferences')
|
|
|
|
|
|
|
|
_onGetStarted: =>
|
|
|
|
ipc = require 'ipc'
|
2015-09-25 05:51:15 +08:00
|
|
|
ipc.send('account-setup-successful')
|
2015-09-23 11:11:51 +08:00
|
|
|
|
|
|
|
module.exports = InitialPackagesPage
|