@@ -11,8 +11,6 @@ interface Props {
11
11
}
12
12
13
13
interface State {
14
- status ?: e . Status ;
15
- canBeDecorated ?: boolean ;
16
14
decorate ?: boolean ;
17
15
}
18
16
@@ -21,9 +19,7 @@ export default class JobComponent extends React.Component<Props, State> implemen
21
19
super ( props ) ;
22
20
23
21
this . state = {
24
- status : this . props . job . status ,
25
22
decorate : false ,
26
- canBeDecorated : false ,
27
23
} ;
28
24
29
25
// FIXME: find a better design to propagate events.
@@ -34,8 +30,8 @@ export default class JobComponent extends React.Component<Props, State> implemen
34
30
35
31
componentDidMount ( ) {
36
32
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 ( ) )
39
35
}
40
36
41
37
componentDidUpdate ( ) {
@@ -47,16 +43,16 @@ export default class JobComponent extends React.Component<Props, State> implemen
47
43
48
44
render ( ) {
49
45
let buffer : React . ReactElement < any > ;
50
- if ( this . state . canBeDecorated && this . state . decorate ) {
46
+ if ( this . props . job . canBeDecorated ( ) && this . state . decorate ) {
51
47
buffer = this . props . job . decorate ( ) ;
52
48
} else {
53
49
buffer = < BufferComponent job = { this . props . job } /> ;
54
50
}
55
51
56
52
return (
57
- < div className = { "job " + this . state . status } >
53
+ < div className = { "job" } >
58
54
< PromptComponent job = { this . props . job }
59
- status = { this . state . status }
55
+ status = { this . props . job . status }
60
56
hasLocusOfAttention = { this . props . hasLocusOfAttention }
61
57
jobView = { this } />
62
58
{ buffer }
@@ -70,7 +66,7 @@ export default class JobComponent extends React.Component<Props, State> implemen
70
66
return ;
71
67
}
72
68
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 ) ) {
74
70
if ( keys . interrupt ( event ) ) {
75
71
this . props . job . interrupt ( ) ;
76
72
} else {
0 commit comments