Skip to content

Commit 7dfd637

Browse files
committed
refactor mount as root component
1 parent fc39713 commit 7dfd637

19 files changed

+63
-63
lines changed

lib/atom/main.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var render_1 = require('../components/render');
3-
var mount_1 = require('../components/mount');
3+
var root_1 = require('../components/root');
44
var polyfills_1 = require('../services/polyfills');
55
var subscriptions_1 = require('./subscriptions');
66
var store_1 = require('../store');
@@ -9,7 +9,7 @@ var Main = (function () {
99
function Main() {
1010
polyfills_1.default();
1111
store_1.store.dispatch(actions_1.setupVerify());
12-
this.root = mount_1.initRoot();
12+
this.root = root_1.Root.init();
1313
}
1414
Main.prototype.activate = function () {
1515
atom.workspace.addRightPanel({
@@ -30,7 +30,7 @@ var Main = (function () {
3030
subscriptions_1.onDeactivate();
3131
};
3232
Main.prototype.toggle = function () {
33-
mount_1.togglePanel();
33+
root_1.Root.toggle();
3434
};
3535
return Main;
3636
}());

lib/atom/subscriptions.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
var CompositeDisposable = require('atom').CompositeDisposable;
33
var store_1 = require('../store');
44
var actions_1 = require('../actions');
5-
var mount_1 = require('../components/mount');
5+
var root_1 = require('../components/root');
66
var subscriptions = null;
77
function onActivate() {
88
subscriptions = new CompositeDisposable;
99
subscriptions.add(atom.commands.add('atom-workspace', {
10-
'cr-viewer:toggle': mount_1.togglePanel,
10+
'cr-viewer:toggle': root_1.Root.toggle,
1111
}));
1212
atom.workspace.observeTextEditors(function (editor) {
1313
subscriptions.add(editor.onDidSave(function () {
@@ -26,7 +26,7 @@ function onActivate() {
2626
exports.onActivate = onActivate;
2727
function onDeactivate() {
2828
window.onresize = null;
29-
mount_1.unmount();
29+
root_1.Root.unmount();
3030
subscriptions.dispose();
3131
}
3232
exports.onDeactivate = onDeactivate;

lib/components/App.js

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ var App = (function (_super) {
3535
_super.apply(this, arguments);
3636
}
3737
App.prototype.render = function () {
38-
console.log(this.props.store);
3938
return (React.createElement("section", {className: 'cr', key: 'main', style: { height: height }}, React.createElement(index_1.AppMenu, __assign({}, this.props.store)), React.createElement(Routes_1.Routes, __assign({}, this.props.store)), React.createElement(index_1.Alert, __assign({}, this.props.store))));
4039
};
4140
App = __decorate([

lib/components/AppMenu/Quit/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1515
};
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
18-
var mount_1 = require('../../mount');
18+
var root_1 = require('../../root');
1919
var subscriptions_1 = require('../../../atom/subscriptions');
2020
var MenuItem_1 = require('material-ui/MenuItem');
2121
var styles = {
@@ -34,7 +34,7 @@ var Quit = (function (_super) {
3434
react_redux_1.connect(null, function (dispatch) {
3535
return {
3636
quit: function () {
37-
mount_1.togglePanel();
37+
root_1.Root.toggle();
3838
subscriptions_1.onDeactivate();
3939
}
4040
};
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
"use strict";
22
var React = require('react');
33
var IconButton_1 = require('material-ui/IconButton');
4-
var mount_1 = require('../mount');
4+
var root_1 = require('../root');
55
var close_1 = require('material-ui/svg-icons/navigation/close');
66
function menuIconLeft() {
7-
return (React.createElement(IconButton_1.default, {onClick: mount_1.togglePanel}, React.createElement(close_1.default, null)));
7+
return (React.createElement(IconButton_1.default, {onClick: root_1.Root.toggle}, React.createElement(close_1.default, null)));
88
}
99
exports.menuIconLeft = menuIconLeft;

lib/components/Page/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ var Hints_1 = require('./Hints');
66
var PageToolbar_1 = require('./PageToolbar');
77
var ProgressBar_1 = require('./ProgressBar');
88
var styles = {
9-
height: '100%',
109
width: '100%',
11-
position: 'relative',
1210
overflowY: 'scroll',
1311
};
1412
exports.Page = function (_a) {

lib/components/mount.js

+12-17
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
"use strict";
2+
var _this = this;
23
var ReactDOM = require('react-dom');
3-
var rootName = 'crv';
4-
var root = null;
5-
function unmount() {
6-
ReactDOM.unmountComponentAtNode(root);
7-
}
8-
exports.unmount = unmount;
9-
function initRoot() {
10-
root = document.createElement('div');
11-
root.setAttribute('id', rootName);
12-
root.hidden = true;
13-
return root;
14-
}
15-
exports.initRoot = initRoot;
16-
function togglePanel() {
17-
root.hidden = !root.hidden;
18-
}
19-
exports.togglePanel = togglePanel;
4+
exports.Root = {
5+
root: null,
6+
init: function () {
7+
_this.root = document.createElement('div');
8+
_this.root.setAttribute('id', 'crv');
9+
_this.root.hidden = true;
10+
return _this.root;
11+
},
12+
toggle: function () { return _this.root.hidden = !_this.root.hidden; },
13+
unmount: function () { return ReactDOM.unmountComponentAtNode(_this.root); }
14+
};

lib/components/remove-later.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
"use strict";
12
var injectTapEventPlugin = require('react-tap-event-plugin');
23
injectTapEventPlugin();

lib/components/root.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
var _this = this;
3+
var ReactDOM = require('react-dom');
4+
exports.Root = {
5+
root: null,
6+
init: function () {
7+
_this.root = document.createElement('div');
8+
_this.root.setAttribute('id', 'crv');
9+
_this.root.hidden = true;
10+
return _this.root;
11+
},
12+
toggle: function () { return _this.root.hidden = !_this.root.hidden; },
13+
unmount: function () { return ReactDOM.unmountComponentAtNode(_this.root); }
14+
};

src/atom/main.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import {render} from '../components/render';
3-
import {initRoot, togglePanel} from '../components/mount';
3+
import {Root} from '../components/root';
44
import loadPolyfills from '../services/polyfills';
55
import {onActivate, onDeactivate, addToStatusBar} from './subscriptions';
66

@@ -13,7 +13,7 @@ class Main {
1313
constructor() {
1414
loadPolyfills(); // remove with later version of Chrome
1515
store.dispatch(setupVerify());
16-
this.root = initRoot();
16+
this.root = Root.init();
1717
}
1818
activate(): void {
1919
// create atom panel
@@ -38,7 +38,7 @@ class Main {
3838
onDeactivate();
3939
}
4040
toggle(): void {
41-
togglePanel();
41+
Root.toggle();
4242
}
4343
};
4444
export = new Main();

src/atom/subscriptions.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const CompositeDisposable = require('atom').CompositeDisposable;
22
import {store} from '../store';
33
import {testRun, alertReplay} from '../actions';
4-
import {unmount, togglePanel} from '../components/mount';
4+
import {Root} from '../components/root';
55

66
let subscriptions = null;
77

@@ -12,7 +12,7 @@ export function onActivate(): AtomCore.Disposable {
1212
*/
1313
subscriptions.add(
1414
atom.commands.add('atom-workspace', {
15-
'cr-viewer:toggle': togglePanel,
15+
'cr-viewer:toggle': Root.toggle,
1616
}));
1717

1818
// run tests on save
@@ -42,7 +42,7 @@ export function onDeactivate(): void {
4242
// unmount React
4343
// TODO: animate close first
4444
window.onresize = null;
45-
unmount();
45+
Root.unmount();
4646
// cleanup subscriptions
4747
subscriptions.dispose();
4848
}

src/components/App.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ window.onresize = function() {
1313
})
1414
export class App extends React.Component<{store?: CR.State}, {}> {
1515
render(): React.ReactElement<{}> {
16-
console.log(this.props.store);
1716
return (
1817
<section
1918
className='cr'

src/components/AppMenu/Quit/index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import {connect} from 'react-redux';
3-
import {togglePanel} from '../../mount';
3+
import {Root} from '../../root';
44
import {onDeactivate} from '../../../atom/subscriptions';
55
import MenuItem from 'material-ui/MenuItem';
66

@@ -12,7 +12,7 @@ const styles = {
1212
@connect(null, (dispatch) => {
1313
return {
1414
quit: () => {
15-
togglePanel();
15+
Root.toggle();
1616
onDeactivate();
1717
}
1818
};

src/components/AppMenu/menuIconLeft.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as React from 'react';
22
import IconButton from 'material-ui/IconButton';
3-
import {togglePanel} from '../mount';
3+
import {Root} from '../root';
44
import NavigationClose from 'material-ui/svg-icons/navigation/close';
55

66
export function menuIconLeft() {
77
return (
8-
<IconButton onClick={togglePanel}>
8+
<IconButton onClick={Root.toggle}>
99
<NavigationClose />
1010
</IconButton>
1111
);

src/components/Page/index.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import {PageToolbar} from './PageToolbar';
88
import {ProgressBar} from './ProgressBar';
99

1010
const styles = {
11-
height: '100%',
1211
width: '100%',
13-
position: 'relative',
1412
overflowY: 'scroll',
1513
};
1614

src/components/mount.ts

-18
This file was deleted.

src/components/remove-later.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
let injectTapEventPlugin = require('react-tap-event-plugin');
1+
import * as injectTapEventPlugin from 'react-tap-event-plugin';
22
injectTapEventPlugin();

src/components/root.ts

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import * as ReactDOM from 'react-dom';
2+
3+
export const Root = {
4+
root: null,
5+
init: (): HTMLElement => {
6+
this.root = document.createElement('div');
7+
this.root.setAttribute('id', 'crv');
8+
// mark panel visibility as hidden, triggers immediately
9+
this.root.hidden = true;
10+
return this.root;
11+
},
12+
toggle: () => this.root.hidden = !this.root.hidden,
13+
unmount: () => ReactDOM.unmountComponentAtNode(this.root)
14+
};

tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@
6666
"src/atom/main.ts",
6767
"src/atom/subscriptions.ts",
6868
"src/components/index.ts",
69-
"src/components/mount.ts",
7069
"src/components/remove-later.ts",
70+
"src/components/root.ts",
7171
"src/components/theme.ts",
7272
"src/reducers/alert/index.ts",
7373
"src/reducers/checks/action-setup.ts",

0 commit comments

Comments
 (0)