Skip to content

Commit 9f09ff5

Browse files
committed
saner separation of concerns for root element
1 parent b7aaa24 commit 9f09ff5

File tree

6 files changed

+26
-26
lines changed

6 files changed

+26
-26
lines changed

lib/atom/main.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var Main = (function () {
1919
item: this.root,
2020
priority: 0
2121
});
22-
subscriptions_1.onActivateSubscriptions();
22+
subscriptions_1.onActivate();
2323
render_1.render(this.root);
2424
};
2525
Main.prototype.consumeStatusBar = function (statusBar) {
@@ -30,7 +30,7 @@ var Main = (function () {
3030
this.statusBarTile.destroy();
3131
this.statusBarTile = null;
3232
}
33-
subscriptions_1.onDeactivateSubscriptionsAndUnmount();
33+
subscriptions_1.onDeactivate();
3434
};
3535
Main.prototype.toggle = function () {
3636
render_1.togglePanel();

lib/atom/subscriptions.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var store_1 = require('../store/store');
44
var Action = require('../actions/actions');
55
var render_1 = require('../components/render');
66
var subscriptions = null;
7-
function onActivateSubscriptions() {
7+
function onActivate() {
88
subscriptions = new CompositeDisposable;
99
subscriptions.add(atom.commands.add('atom-workspace', {
1010
'cr-viewer:toggle': render_1.togglePanel
@@ -23,13 +23,13 @@ function onActivateSubscriptions() {
2323
}));
2424
return subscriptions;
2525
}
26-
exports.onActivateSubscriptions = onActivateSubscriptions;
27-
function onDeactivateSubscriptionsAndUnmount() {
26+
exports.onActivate = onActivate;
27+
function onDeactivate() {
2828
window.onresize = null;
29-
render_1.unmount(document.getElementById('crv'));
29+
render_1.unmount();
3030
subscriptions.dispose();
3131
}
32-
exports.onDeactivateSubscriptionsAndUnmount = onDeactivateSubscriptionsAndUnmount;
32+
exports.onDeactivate = onDeactivate;
3333
function addToStatusBar(statusBar) {
3434
var replay = document.createElement('div');
3535
replay.className = 'cr-alert-replay';

lib/components/render.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,24 @@ var react_redux_1 = require('react-redux');
55
var _base_1 = require('../_base');
66
var app_1 = require('./app');
77
require('./remove-later');
8-
var rootName = 'crv';
98
function render(target) {
109
ReactDOM.render(React.createElement(react_redux_1.Provider, {store: _base_1.store}, React.createElement(app_1.default, null)), target);
1110
}
1211
exports.render = render;
13-
function unmount(target) {
14-
ReactDOM.unmountComponentAtNode(target);
12+
var rootName = 'crv';
13+
var root = null;
14+
function unmount() {
15+
ReactDOM.unmountComponentAtNode(root);
1516
}
1617
exports.unmount = unmount;
1718
function initRoot() {
18-
var root = document.createElement('div');
19+
root = document.createElement('div');
1920
root.setAttribute('id', rootName);
2021
root.hidden = true;
2122
return root;
2223
}
2324
exports.initRoot = initRoot;
2425
function togglePanel() {
25-
document.getElementById(rootName).hidden = !document.getElementById(rootName).hidden;
26+
root.hidden = !root.hidden;
2627
}
2728
exports.togglePanel = togglePanel;

src/atom/main.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import * as React from 'react';
33
import {render, initRoot, togglePanel} from '../components/render';
44
import loadPolyfills from '../services/polyfills';
5-
import {onActivateSubscriptions, onDeactivateSubscriptionsAndUnmount, addToStatusBar} from './subscriptions';
5+
import {onActivate, onDeactivate, addToStatusBar} from './subscriptions';
66
import {setAtomGlobals} from './editor';
77
import {verifySetupComplete} from '../services/setup-checks';
88

@@ -24,7 +24,7 @@ class Main {
2424
item: this.root,
2525
priority: 0
2626
});
27-
onActivateSubscriptions();
27+
onActivate();
2828
// render React component
2929
render(this.root);
3030
}
@@ -38,7 +38,7 @@ class Main {
3838
this.statusBarTile = null;
3939
}
4040
// remove subscriptions & unmount react app
41-
onDeactivateSubscriptionsAndUnmount();
41+
onDeactivate();
4242
}
4343
toggle(): void {
4444
togglePanel();

src/atom/subscriptions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {unmount, togglePanel} from '../components/render';
55

66
let subscriptions = null;
77

8-
export function onActivateSubscriptions() {
8+
export function onActivate() {
99
subscriptions = new CompositeDisposable;
1010
/**
1111
* Atom Listeners
@@ -38,11 +38,11 @@ export function onActivateSubscriptions() {
3838
return subscriptions;
3939
}
4040

41-
export function onDeactivateSubscriptionsAndUnmount() {
41+
export function onDeactivate() {
4242
// unmount React
4343
// TODO: animate close first
4444
window.onresize = null;
45-
unmount(document.getElementById('crv'));
45+
unmount();
4646
// cleanup subscriptions
4747
subscriptions.dispose();
4848
}

src/components/render.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import {store} from '../_base';
77
import App from './app';
88
import './remove-later';
99

10-
const rootName = 'crv';
11-
1210
/**
1311
* Render react component on activate
1412
*/
@@ -21,21 +19,22 @@ export function render(target: HTMLElement) {
2119
);
2220
}
2321

22+
const rootName = 'crv';
23+
var root = null;
24+
2425
/**
2526
* Unmount React on deactivate
2627
*/
27-
export function unmount(target: HTMLElement) {
28-
ReactDOM.unmountComponentAtNode(target);
28+
export function unmount() {
29+
ReactDOM.unmountComponentAtNode(root);
2930
}
30-
3131
export function initRoot(): HTMLElement {
32-
var root = document.createElement('div');
32+
root = document.createElement('div');
3333
root.setAttribute('id', rootName);
3434
// mark panel visibility as hidden, triggers immediately
3535
root.hidden = true;
3636
return root;
3737
}
38-
3938
export function togglePanel() {
40-
document.getElementById(rootName).hidden = !document.getElementById(rootName).hidden;
39+
root.hidden = !root.hidden;
4140
}

0 commit comments

Comments
 (0)