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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy