mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-11 10:12:00 +08:00
51602f69a5
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
100 lines
3.1 KiB
CoffeeScript
100 lines
3.1 KiB
CoffeeScript
React = require 'react/addons'
|
|
Sheet = require './sheet'
|
|
Toolbar = require './sheet-toolbar'
|
|
Flexbox = require './components/flexbox'
|
|
RetinaImg = require './components/retina-img'
|
|
InjectedComponentSet = require './components/injected-component-set'
|
|
TimeoutTransitionGroup = require './components/timeout-transition-group'
|
|
_ = require 'underscore'
|
|
|
|
{Actions,
|
|
ComponentRegistry,
|
|
WorkspaceStore} = require "nylas-exports"
|
|
|
|
class SheetContainer extends React.Component
|
|
displayName = 'SheetContainer'
|
|
|
|
constructor: (@props) ->
|
|
@state = @_getStateFromStores()
|
|
|
|
componentDidMount: =>
|
|
@unsubscribe = WorkspaceStore.listen @_onStoreChange
|
|
|
|
componentWillUnmount: =>
|
|
@unsubscribe() if @unsubscribe
|
|
|
|
render: =>
|
|
totalSheets = @state.stack.length
|
|
topSheet = @state.stack[totalSheets - 1]
|
|
|
|
return <div></div> unless topSheet
|
|
|
|
sheetElements = @_sheetElements()
|
|
|
|
<Flexbox direction="column" className="layout-mode-#{@state.mode}" style={overflow: 'hidden'}>
|
|
{@_toolbarContainerElement()}
|
|
|
|
<div name="Header" style={order:1, zIndex: 2}>
|
|
<InjectedComponentSet matching={locations: [topSheet.Header, WorkspaceStore.Sheet.Global.Header]}
|
|
direction="column"
|
|
id={topSheet.id}/>
|
|
</div>
|
|
|
|
<div name="Center" style={order:2, flex: 1, position:'relative', zIndex: 1}>
|
|
{sheetElements[0]}
|
|
<TimeoutTransitionGroup leaveTimeout={125}
|
|
enterTimeout={125}
|
|
transitionName="sheet-stack">
|
|
{sheetElements[1..-1]}
|
|
</TimeoutTransitionGroup>
|
|
</div>
|
|
|
|
<div name="Footer" style={order:3, zIndex: 4}>
|
|
<InjectedComponentSet matching={locations: [topSheet.Footer, WorkspaceStore.Sheet.Global.Footer]}
|
|
direction="column"
|
|
id={topSheet.id}/>
|
|
|
|
</div>
|
|
</Flexbox>
|
|
|
|
_toolbarContainerElement: =>
|
|
{toolbar} = NylasEnv.getLoadSettings()
|
|
return [] unless toolbar
|
|
|
|
toolbarElements = @_toolbarElements()
|
|
<div name="Toolbar" style={order:0, zIndex: 3} className="sheet-toolbar">
|
|
{toolbarElements[0]}
|
|
<TimeoutTransitionGroup leaveTimeout={125}
|
|
enterTimeout={125}
|
|
transitionName="opacity-125ms">
|
|
{toolbarElements[1..-1]}
|
|
</TimeoutTransitionGroup>
|
|
</div>
|
|
|
|
_toolbarElements: =>
|
|
@state.stack.map (sheet, index) ->
|
|
<Toolbar data={sheet}
|
|
ref={"toolbar-#{index}"}
|
|
key={"#{index}:#{sheet.id}:toolbar"}
|
|
depth={index} />
|
|
|
|
_sheetElements: =>
|
|
@state.stack.map (sheet, index) =>
|
|
<Sheet data={sheet}
|
|
depth={index}
|
|
key={"#{index}:#{sheet.id}"}
|
|
onColumnSizeChanged={@_onColumnSizeChanged} />
|
|
|
|
_onColumnSizeChanged: (sheet) =>
|
|
@refs["toolbar-#{sheet.props.depth}"]?.recomputeLayout()
|
|
window.dispatchEvent(new Event('resize'))
|
|
|
|
_onStoreChange: =>
|
|
@setState(@_getStateFromStores())
|
|
|
|
_getStateFromStores: =>
|
|
stack: WorkspaceStore.sheetStack()
|
|
mode: WorkspaceStore.layoutMode()
|
|
|
|
|
|
module.exports = SheetContainer
|