Skip to content
This repository was archived by the owner on May 21, 2019. It is now read-only.

Commit 5cfee8e

Browse files
committed
Remove some JobComponent state attributes.
1 parent ad1c323 commit 5cfee8e

File tree

3 files changed

+7
-12
lines changed

3 files changed

+7
-12
lines changed

src/views/3_JobComponent.tsx

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ interface Props {
1111
}
1212

1313
interface State {
14-
status?: e.Status;
15-
canBeDecorated?: boolean;
1614
decorate?: boolean;
1715
}
1816

@@ -21,9 +19,7 @@ export default class JobComponent extends React.Component<Props, State> implemen
2119
super(props);
2220

2321
this.state = {
24-
status: this.props.job.status,
2522
decorate: false,
26-
canBeDecorated: false,
2723
};
2824

2925
// FIXME: find a better design to propagate events.
@@ -34,8 +30,8 @@ export default class JobComponent extends React.Component<Props, State> implemen
3430

3531
componentDidMount() {
3632
this.props.job
37-
.on("data", () => this.setState({canBeDecorated: this.props.job.canBeDecorated()}))
38-
.on("status", (status: e.Status) => this.setState({status: status}));
33+
.on("data", () => this.forceUpdate())
34+
.on("status", () => this.forceUpdate())
3935
}
4036

4137
componentDidUpdate() {
@@ -47,16 +43,16 @@ export default class JobComponent extends React.Component<Props, State> implemen
4743

4844
render() {
4945
let buffer: React.ReactElement<any>;
50-
if (this.state.canBeDecorated && this.state.decorate) {
46+
if (this.props.job.canBeDecorated() && this.state.decorate) {
5147
buffer = this.props.job.decorate();
5248
} else {
5349
buffer = <BufferComponent job={this.props.job}/>;
5450
}
5551

5652
return (
57-
<div className={"job " + this.state.status}>
53+
<div className={"job"}>
5854
<PromptComponent job={this.props.job}
59-
status={this.state.status}
55+
status={this.props.job.status}
6056
hasLocusOfAttention={this.props.hasLocusOfAttention}
6157
jobView={this}/>
6258
{buffer}
@@ -70,7 +66,7 @@ export default class JobComponent extends React.Component<Props, State> implemen
7066
return;
7167
}
7268

73-
if (this.state.status === e.Status.InProgress && !event.metaKey && !isModifierKey(event)) {
69+
if (this.props.job.status === e.Status.InProgress && !event.metaKey && !isModifierKey(event)) {
7470
if (keys.interrupt(event)) {
7571
this.props.job.interrupt();
7672
} else {

src/views/4_PromptComponent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ export default class PromptComponent extends React.Component<Props, State> imple
162162
}
163163
}
164164

165-
if (this.props.jobView.state.canBeDecorated) {
165+
if (this.props.job.canBeDecorated()) {
166166
decorationToggle = <DecorationToggleComponent job={this.props.jobView}/>;
167167
}
168168

tsconfig.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"experimentalDecorators": true,
99
"noImplicitAny": true,
1010
"noEmitOnError": true,
11-
"pretty": true,
1211
"jsx": "react",
1312
"outDir": "compiled/src"
1413
},

0 commit comments

Comments
 (0)