Skip to content

Commit 59b189b

Browse files
committed
Refactor tracerManager
1 parent 5d40c97 commit 59b189b

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

src/frontend/apis/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const TracerApi = {
7474
if (jsWorker) jsWorker.terminate();
7575
jsWorker = new Worker('/api/tracers/js');
7676
jsWorker.onmessage = e => resolve(e.data);
77-
jsWorker.onerror = reject;
77+
jsWorker.onerror = err => reject({ status: 500, err });
7878
jsWorker.postMessage(code);
7979
}),
8080
java: POST('/tracers/java'),

src/frontend/components/App/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class App extends React.Component {
183183

184184
render() {
185185
const { navigatorOpened, workspaceWeights, viewerTabIndex, editingFileName } = this.state;
186-
const { files } = this.props.current;
186+
const { titles, files } = this.props.current;
187187

188188
const readmeFile = files.find(file => file.name === 'README.md');
189189
const editorTabIndex = files.findIndex(file => file.name === editingFileName);
@@ -208,7 +208,7 @@ class App extends React.Component {
208208
onChangeTabIndex={tabIndex => this.handleChangeEditorTabIndex(tabIndex)}>
209209
{
210210
files.map(file => (
211-
<CodeEditor key={file.name} file={file} />
211+
<CodeEditor key={[...titles, file.name].join('--')} file={file} />
212212
))
213213
}
214214
</TabContainer>

src/frontend/components/CodeEditor/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ class CodeEditor extends React.Component {
2828

2929
componentDidMount() {
3030
const { file } = this.props;
31-
tracerManager.setFile(file);
31+
tracerManager.setFile(file, true);
3232

3333
tracerManager.setOnUpdateLineIndicator(lineIndicator => this.setState({ lineMarker: this.createLineMarker(lineIndicator) }));
3434
}
3535

3636
componentWillReceiveProps(nextProps) {
3737
const { file } = nextProps;
3838
if (file !== this.props.file) {
39-
tracerManager.setFile(file);
39+
tracerManager.setFile(file, extension(file.name) === 'js');
4040
}
4141
}
4242

src/frontend/core/tracerManager.jsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ class TracerManager {
6161
if (this.onUpdateLineIndicator) this.onUpdateLineIndicator(lineIndicator);
6262
}
6363

64-
setFile(file) {
64+
setFile(file, initialRun) {
6565
this.file = file;
66-
if (extension(file.name) === 'js') this.runInitial();
66+
if (initialRun) this.runInitial();
6767
}
6868

6969
reset(traces = []) {
@@ -157,7 +157,6 @@ class TracerManager {
157157
const ext = extension(name);
158158
if (ext in TracerApi) {
159159
return TracerApi[ext]({ code: content })
160-
.then(traces => this.reset(traces))
161160
.catch(e => {
162161
throw e.err;
163162
});
@@ -167,23 +166,25 @@ class TracerManager {
167166
}
168167

169168
runInitial() {
169+
this.reset();
170+
this.render();
170171
this.execute()
171-
.then(() => this.applyTraceChunk())
172-
.catch(() => {
173-
this.reset();
174-
this.render();
172+
.then(traces => {
173+
this.reset(traces);
174+
this.applyTraceChunk();
175175
});
176176
}
177177

178178
run() {
179+
this.reset();
180+
this.render();
179181
this.execute()
180-
.then(() => {
182+
.then(traces => {
183+
this.reset(traces);
181184
this.resume();
182185
this.setStarted(true);
183186
})
184187
.catch(error => {
185-
this.reset();
186-
this.render();
187188
this.handleError(error);
188189
});
189190
}

0 commit comments

Comments
 (0)