Skip to content

Commit 22f3635

Browse files
author
Ives van Hoorne
committed
Merge branch 'master' into playground
2 parents cac0b47 + 37b1852 commit 22f3635

File tree

8 files changed

+35
-24
lines changed

8 files changed

+35
-24
lines changed

packages/app/src/app/pages/Sandbox/Editor/Content/Tabs/index.js

-17
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ import {
1515
} from './elements';
1616

1717
class EditorTabs extends React.Component {
18-
componentWillMount() {
19-
window.addEventListener('keydown', this.closeListener);
20-
}
21-
componentWillUnmount() {
22-
window.removeEventListener('keydown', this.closeListener);
23-
}
24-
2518
componentDidUpdate(prevProps) {
2619
if (this.props.currentModuleId !== prevProps.currentModuleId) {
2720
// We need to scroll to the tab
@@ -42,16 +35,6 @@ class EditorTabs extends React.Component {
4235
}
4336
}
4437

45-
closeListener = e => {
46-
if ((e.ctrlKey || e.metaKey) && e.keyCode === 87) {
47-
e.preventDefault();
48-
const currentPos = this.props.tabs
49-
.filter(x => x)
50-
.findIndex(t => t.moduleId === this.props.currentModuleId);
51-
this.closeTab(currentPos);
52-
}
53-
};
54-
5538
closeTab = tabIndex => {
5639
this.props.signals.editor.tabClosed({ tabIndex });
5740
};

packages/app/src/app/pages/Sandbox/Editor/Content/index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ const settings = store =>
2727
vimMode: store.preferences.settings.vimMode,
2828
lintEnabled: store.preferences.settings.lintEnabled,
2929
codeMirror: store.preferences.settings.codeMirror,
30-
tabWidth: store.preferences.settings.tabSize || 2,
30+
tabWidth: store.preferences.settings.prettierConfig
31+
? store.preferences.settings.prettierConfig.tabWidth || 2
32+
: 2,
3133
}: Settings);
3234

3335
type Props = {

packages/app/src/app/pages/Sandbox/Editor/index.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,15 @@ function ContentSplit({ signals, store, match }) {
5555
<SplitPane
5656
split="vertical"
5757
defaultSize={sandboxOwned ? 16 * 16 : 18 * 16}
58+
minSize={0}
5859
onDragStarted={() => signals.editor.resizingStarted()}
5960
onDragFinished={() => signals.editor.resizingStopped()}
60-
resizerStyle={{
61-
visibility: store.workspace.openedWorkspaceItem
62-
? 'visible'
63-
: 'hidden',
61+
onChange={size => {
62+
if (size > 0 && !store.workspace.openedWorkspaceItem) {
63+
signals.workspace.setWorkspaceItem({ item: 'files' });
64+
} else if (size === 0 && store.workspace.openedWorkspaceItem) {
65+
signals.workspace.setWorkspaceItem({ item: null });
66+
}
6467
}}
6568
pane1Style={{
6669
visibility: store.workspace.openedWorkspaceItem

packages/app/src/app/pages/common/Modals/PreferencesModal/CodeFormatting/Prettier/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ function Prettier({ store, signals }) {
8888
title="Trailing commas"
8989
type="dropdown"
9090
options={['none', 'es5', 'all']}
91-
{...bindValue('traillingComma')}
91+
{...bindValue('trailingComma')}
9292
/>
9393
<SubDescription>
9494
Print trailing commas wherever possible.

packages/app/src/app/store/modules/editor/sequences.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,15 @@ export const closeQuickActions = set(state`editor.quickActionsOpen`, false);
1717

1818
export const toggleProjectView = toggle(state`editor.isInProjectView`);
1919

20-
export const closeTab = [closeTabByIndex, actions.setCurrentModuleByTab];
20+
const hasEnoughTabs = when(state`editor.tabs`, tabs => tabs.length > 1);
21+
22+
export const closeTab = [
23+
hasEnoughTabs,
24+
{
25+
false: [],
26+
true: [closeTabByIndex, actions.setCurrentModuleByTab],
27+
},
28+
];
2129

2230
export const clearErrors = [
2331
set(state`editor.errors`, []),

packages/app/src/sandbox/compile.js

+2
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ const PREINSTALLED_DEPENDENCIES = [
150150
'babel-plugin-transform-prevent-infinite-loops',
151151
'babel-plugin-transform-vue-jsx',
152152
'babel-plugin-jsx-pragmatic',
153+
154+
'flow-bin',
153155
];
154156

155157
function getDependencies(parsedPackage, configurations) {

packages/app/src/sandbox/url-listeners.js

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export default function setupHistoryListeners() {
3737
const oldURL = document.location.href;
3838
origHistoryProto.replaceState.call(window.history, state, '', url);
3939
const newURL = document.location.href;
40+
sendUrlChange(newURL);
4041
if (newURL.indexOf('#') === -1) {
4142
window.dispatchEvent(new PopStateEvent('popstate', { state }));
4243
} else {

packages/common/utils/keybindings.js

+12
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,18 @@ export const KEYBINDINGS = {
5353
signal: 'workspace.toggleCurrentWorkspaceItem',
5454
},
5555

56+
'editor.close-tab': {
57+
title: 'Close Current Tab',
58+
type: 'View',
59+
bindings: [['Control', 'W']],
60+
signal: 'editor.tabClosed',
61+
payload: state => ({
62+
tabIndex: state.editor.tabs
63+
.filter(x => x)
64+
.findIndex(t => t.moduleId === state.currentModuleId),
65+
}),
66+
},
67+
5668
'editor.zen-mode': {
5769
title: 'Toggle Zen Mode',
5870
type: 'View',

0 commit comments

Comments
 (0)