1
- import React , { useRef , useEffect } from 'react' ;
1
+ import React , { useRef } from 'react' ;
2
2
import PropTypes from 'prop-types' ;
3
3
import { withTranslation } from 'react-i18next' ;
4
4
@@ -25,51 +25,33 @@ import debugContrastUrl from '../../../images/console-debug-contrast.svg?byUrl';
25
25
import infoLightUrl from '../../../images/console-info-light.svg?byUrl' ;
26
26
import infoDarkUrl from '../../../images/console-info-dark.svg?byUrl' ;
27
27
import infoContrastUrl from '../../../images/console-info-contrast.svg?byUrl' ;
28
- import ConsoleInput from './ConsoleInput' ;
29
-
30
- import commandLightUrl from '../../../images/console-command-light.svg?byUrl' ;
31
- import resultLightUrl from '../../../images/console-result-light.svg?byUrl' ;
32
- import commandDarkUrl from '../../../images/console-command-dark.svg?byUrl' ;
33
- import resultDarkUrl from '../../../images/console-result-dark.svg?byUrl' ;
34
- import commandContrastUrl from '../../../images/console-command-contrast.svg?byUrl' ;
35
- import resultContrastUrl from '../../../images/console-result-contrast.svg?byUrl' ;
36
28
37
29
import UpArrowIcon from '../../../images/up-arrow.svg' ;
38
30
import DownArrowIcon from '../../../images/down-arrow.svg' ;
39
31
40
32
import * as IDEActions from '../../IDE/actions/ide' ;
41
33
import * as ConsoleActions from '../../IDE/actions/console' ;
42
- import { useDidUpdate } from '../hooks/custom-hooks' ;
43
- import useHandleMessageEvent from '../hooks/useHandleMessageEvent' ;
44
- import { listen } from '../../../utils/dispatcher' ;
34
+ import { useDidUpdate } from '../../../utils/custom-hooks' ;
45
35
46
36
const getConsoleFeedStyle = ( theme , times , fontSize ) => {
47
- const style = {
48
- BASE_FONT_FAMILY : 'Inconsolata, monospace'
49
- } ;
37
+ const style = { } ;
50
38
const CONSOLE_FEED_LIGHT_ICONS = {
51
39
LOG_WARN_ICON : `url(${ warnLightUrl } )` ,
52
40
LOG_ERROR_ICON : `url(${ errorLightUrl } )` ,
53
41
LOG_DEBUG_ICON : `url(${ debugLightUrl } )` ,
54
- LOG_INFO_ICON : `url(${ infoLightUrl } )` ,
55
- LOG_COMMAND_ICON : `url(${ commandLightUrl } )` ,
56
- LOG_RESULT_ICON : `url(${ resultLightUrl } )`
42
+ LOG_INFO_ICON : `url(${ infoLightUrl } )`
57
43
} ;
58
44
const CONSOLE_FEED_DARK_ICONS = {
59
45
LOG_WARN_ICON : `url(${ warnDarkUrl } )` ,
60
46
LOG_ERROR_ICON : `url(${ errorDarkUrl } )` ,
61
47
LOG_DEBUG_ICON : `url(${ debugDarkUrl } )` ,
62
- LOG_INFO_ICON : `url(${ infoDarkUrl } )` ,
63
- LOG_COMMAND_ICON : `url(${ commandDarkUrl } )` ,
64
- LOG_RESULT_ICON : `url(${ resultDarkUrl } )`
48
+ LOG_INFO_ICON : `url(${ infoDarkUrl } )`
65
49
} ;
66
50
const CONSOLE_FEED_CONTRAST_ICONS = {
67
51
LOG_WARN_ICON : `url(${ warnContrastUrl } )` ,
68
52
LOG_ERROR_ICON : `url(${ errorContrastUrl } )` ,
69
53
LOG_DEBUG_ICON : `url(${ debugContrastUrl } )` ,
70
- LOG_INFO_ICON : `url(${ infoContrastUrl } )` ,
71
- LOG_COMMAND_ICON : `url(${ commandContrastUrl } )` ,
72
- LOG_RESULT_ICON : `url(${ resultContrastUrl } )`
54
+ LOG_INFO_ICON : `url(${ infoContrastUrl } )`
73
55
} ;
74
56
const CONSOLE_FEED_SIZES = {
75
57
TREENODE_LINE_HEIGHT : 1.2 ,
@@ -112,7 +94,6 @@ const getConsoleFeedStyle = (theme, times, fontSize) => {
112
94
const Console = ( { t } ) => {
113
95
const consoleEvents = useSelector ( ( state ) => state . console ) ;
114
96
const isExpanded = useSelector ( ( state ) => state . ide . consoleIsExpanded ) ;
115
- const isPlaying = useSelector ( ( state ) => state . ide . isPlaying ) ;
116
97
const { theme, fontSize } = useSelector ( ( state ) => state . preferences ) ;
117
98
118
99
const {
@@ -122,20 +103,17 @@ const Console = ({ t }) => {
122
103
dispatchConsoleEvent
123
104
} = bindActionCreators ( { ...IDEActions , ...ConsoleActions } , useDispatch ( ) ) ;
124
105
106
+ useDidUpdate ( ( ) => {
107
+ clearConsole ( ) ;
108
+ dispatchConsoleEvent ( consoleEvents ) ;
109
+ } , [ theme , fontSize ] ) ;
110
+
125
111
const cm = useRef ( { } ) ;
126
112
127
113
useDidUpdate ( ( ) => {
128
114
cm . current . scrollTop = cm . current . scrollHeight ;
129
115
} ) ;
130
116
131
- const handleMessageEvent = useHandleMessageEvent ( ) ;
132
- useEffect ( ( ) => {
133
- const unsubscribe = listen ( handleMessageEvent ) ;
134
- return function cleanup ( ) {
135
- unsubscribe ( ) ;
136
- } ;
137
- } ) ;
138
-
139
117
const consoleClass = classNames ( {
140
118
'preview-console' : true ,
141
119
'preview-console--collapsed' : ! isExpanded
@@ -169,39 +147,29 @@ const Console = ({ t }) => {
169
147
</ button >
170
148
</ div >
171
149
</ header >
172
- < div className = "preview-console__body" >
173
- < div ref = { cm } className = "preview-console__messages" >
174
- { consoleEvents . map ( ( consoleEvent ) => {
175
- const { method, times } = consoleEvent ;
176
- return (
177
- < div
178
- key = { consoleEvent . id }
179
- className = { `preview-console__message preview-console__message--${ method } ` }
180
- >
181
- { times > 1 && (
182
- < div
183
- className = "preview-console__logged-times"
184
- style = { { fontSize, borderRadius : fontSize / 2 } }
185
- >
186
- { times }
187
- </ div >
188
- ) }
189
- < ConsoleFeed
190
- styles = { getConsoleFeedStyle ( theme , times , fontSize ) }
191
- logs = { [ consoleEvent ] }
192
- key = { `${ consoleEvent . id } -${ theme } -${ fontSize } ` }
193
- />
194
- </ div >
195
- ) ;
196
- } ) }
197
- </ div >
198
- { isExpanded && isPlaying && (
199
- < ConsoleInput
200
- theme = { theme }
201
- dispatchConsoleEvent = { dispatchConsoleEvent }
202
- fontSize = { fontSize }
203
- />
204
- ) }
150
+ < div ref = { cm } className = "preview-console__messages" >
151
+ { consoleEvents . map ( ( consoleEvent ) => {
152
+ const { method, times } = consoleEvent ;
153
+ return (
154
+ < div
155
+ key = { consoleEvent . id }
156
+ className = { `preview-console__message preview-console__message--${ method } ` }
157
+ >
158
+ { times > 1 && (
159
+ < div
160
+ className = "preview-console__logged-times"
161
+ style = { { fontSize, borderRadius : fontSize / 2 } }
162
+ >
163
+ { times }
164
+ </ div >
165
+ ) }
166
+ < ConsoleFeed
167
+ styles = { getConsoleFeedStyle ( theme , times , fontSize ) }
168
+ logs = { [ consoleEvent ] }
169
+ />
170
+ </ div >
171
+ ) ;
172
+ } ) }
205
173
</ div >
206
174
</ section >
207
175
) ;
0 commit comments