mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-24 01:06:07 +08:00
488dff0f90
Converted all references of global atom to NylasEnv Temporary rename atom.io find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.io/temporaryAtomIoReplacement/g' atom.config to NylasEnv.config find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.config/NylasEnv.config/g' atom.packages -> NylasEnv.packages atom.commands -> NylasEnv.commands atom.getLoadSettings find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.commands/NylasEnv.commands/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getLoadSettings/NylasEnv.getLoadSettings/g' More common atom methods find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.styles/NylasEnv.styles/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.emitError/NylasEnv.emitError/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.inSpecMode/NylasEnv.inSpecMode/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.inDevMode/NylasEnv.inDevMode/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getWindowType/NylasEnv.getWindowType/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.displayWindow/NylasEnv.displayWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.quit/NylasEnv.quit/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.close/NylasEnv.close/g' More atom method changes find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.keymaps/NylasEnv.keymaps/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.hide/NylasEnv.hide/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getCurrentWindow/NylasEnv.getCurrentWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.menu/NylasEnv.menu/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getConfigDirPath/NylasEnv.getConfigDirPath/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.isMainWindow/NylasEnv.isMainWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.finishUnload/NylasEnv.finishUnload/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.isWorkWindow/NylasEnv.isWorkWindow/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.showSaveDialog/NylasEnv.showSaveDialog/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.append/NylasEnv.append/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.confirm/NylasEnv.confirm/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.clipboard/NylasEnv.clipboard/g' find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed -i "" 's/atom.getVersion/NylasEnv.getVersion/g' More atom renaming Rename atom methods More atom methods Fix grunt config variable Change atom.cmd to N1.cmd Rename atom.coffee and atom.js to nylas-env.coffee nylas-env.js Fix atom global reference in specs manually Fix atom requires Change engine from atom to nylas got rid of global/nylas-env rename to nylas-win-bootup Fix onWindowPropsChanged to onWindowPropsReceived fix nylas-workspace atom-text-editor to nylas-theme-wrap atom-text-editor -> nylas-theme-wrap Replacing atom keyword AtomWindow -> NylasWindow Replace Atom -> N1 Rename atom items nylas.asar -> atom.asar Remove more atom references Remove 6to5 references Remove license exception for atom
108 lines
3.4 KiB
CoffeeScript
108 lines
3.4 KiB
CoffeeScript
React = require 'react'
|
|
path = require 'path'
|
|
{RetinaImg, ConfigPropContainer} = require 'nylas-component-kit'
|
|
{EdgehillAPI} = require 'nylas-exports'
|
|
OnboardingActions = require './onboarding-actions'
|
|
InitialPackagesStore = require './initial-packages-store'
|
|
|
|
RunningPackageInstalls = 0
|
|
|
|
class InstallButton extends React.Component
|
|
constructor: (@props) ->
|
|
@state =
|
|
installed: NylasEnv.packages.resolvePackagePath(@props.package.name)?
|
|
installing: false
|
|
|
|
render: =>
|
|
classname = "btn btn-install"
|
|
classname += " installing" if @state.installing
|
|
classname += " installed" if @state.installed
|
|
|
|
<div className={classname} onClick={@_onInstall}></div>
|
|
|
|
_onInstall: =>
|
|
return if @state.installing or @state.installed
|
|
return unless @props.package.path
|
|
RunningPackageInstalls += 1
|
|
@setState(installing: true)
|
|
NylasEnv.packages.installPackageFromPath @props.package.path, (err) =>
|
|
RunningPackageInstalls -= 1
|
|
@props.onPackageInstaled()
|
|
@setState({
|
|
installing: false
|
|
installed: NylasEnv.packages.resolvePackagePath(@props.package.name)?
|
|
})
|
|
|
|
class InitialPackagesPage extends React.Component
|
|
@displayName: "InitialPackagesPage"
|
|
|
|
constructor: (@props) ->
|
|
@state = @getStateFromStores()
|
|
|
|
componentDidMount: =>
|
|
@unlisten = InitialPackagesStore.listen =>
|
|
@setState(@getStateFromStores())
|
|
|
|
componentWillUnmount: =>
|
|
@unlisten?()
|
|
|
|
getStateFromStores: =>
|
|
packages: InitialPackagesStore.starterPackages
|
|
error: InitialPackagesStore.lastError
|
|
|
|
render: =>
|
|
<div className="page opaque" style={width:900, height:650}>
|
|
<div className="back" onClick={@_onPrevPage}>
|
|
<RetinaImg name="onboarding-back.png" mode={RetinaImg.Mode.ContentPreserve}/>
|
|
</div>
|
|
|
|
<h1 style={paddingTop: 60, marginBottom: 20}>Explore plugins</h1>
|
|
<p style={paddingBottom: 20}>
|
|
Plugins lie at the heart of N1 and give it its powerful features.<br/>
|
|
Want to enable a few example plugins now? They'll be installed to <code>~/.nylas</code>
|
|
</p>
|
|
|
|
<div>
|
|
{@_renderError()}
|
|
{@state.packages.map (item) =>
|
|
<div className="initial-package" key={item.name}>
|
|
<img src={item.iconPath} style={width:50} />
|
|
<div className="install-container">
|
|
<InstallButton package={item} onPackageInstaled={@_onPackageInstaled} />
|
|
</div>
|
|
<div className="name">{item.title}</div>
|
|
<div className="description">{item.description}</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
<button className="btn btn-large btn-get-started btn-emphasis"
|
|
style={marginTop: 15}
|
|
onClick={@_onGetStarted}>
|
|
{@_renderStartSpinner()}
|
|
Start Using N1
|
|
</button>
|
|
</div>
|
|
|
|
_renderError: =>
|
|
return false unless @state.error
|
|
<div className="error">{@state.error.toString()}</div>
|
|
|
|
_renderStartSpinner: =>
|
|
return false unless @state.waitingToGetStarted
|
|
<div className="spinner"></div>
|
|
|
|
_onPrevPage: =>
|
|
OnboardingActions.moveToPage('initial-preferences')
|
|
|
|
_onPackageInstaled: =>
|
|
if RunningPackageInstalls is 0 and @state.waitingToGetStarted
|
|
@_onGetStarted()
|
|
|
|
_onGetStarted: =>
|
|
if RunningPackageInstalls > 0
|
|
@setState(waitingToGetStarted: true)
|
|
else
|
|
require('ipc').send('account-setup-successful')
|
|
|
|
module.exports = InitialPackagesPage
|