@@ -81,6 +81,7 @@ class AppComponent extends React.Component {
8181 user,
8282 rpcError,
8383 page_index,
84+ prediction,
8485} = this . props ;
8586const page = pages [ page_index ] ;
8687const step_index = stepIndex ( ) ;
@@ -141,6 +142,7 @@ class AppComponent extends React.Component {
141142< div className = "ide" >
142143< div className = { "editor-buttons " + ( showEditor ?"" :"invisible" ) } >
143144< button
145+ disabled = { prediction . state === "waiting" }
144146className = "btn btn-primary"
145147onClick = { ( ) => {
146148this . runCode ( { source :"editor" } ) ;
@@ -153,6 +155,7 @@ class AppComponent extends React.Component {
153155
154156{ showSnoop &&
155157< button
158+ disabled = { prediction . state === "waiting" }
156159className = "btn btn-success"
157160onClick = { ( ) => {
158161this . runCode ( { source :"snoop" } )
@@ -165,6 +168,7 @@ class AppComponent extends React.Component {
165168
166169{ showPythonTutor &&
167170< button
171+ disabled = { prediction . state === "waiting" }
168172className = "btn btn-success"
169173onClick = { ( ) => {
170174this . runCode ( { source :"pythontutor" } ) ;
@@ -190,17 +194,20 @@ class AppComponent extends React.Component {
190194
191195{ showBirdseye &&
192196< button
197+ disabled = { prediction . state === "waiting" }
193198className = "btn btn-success"
194199onClick = { ( ) => {
195200this . runCode ( { source :"birdseye" } )
196201} }
197202>
198- { < img
203+ < img
199204src = { birdseyeIcon }
200205width = { 20 }
201206height = { 20 }
202207alt = "birdseye logo"
203- style = { { position :"relative" , top :"-2px" } } /> } Bird's Eye
208+ style = { { position :"relative" , top :"-2px" } }
209+ />
210+ Bird's Eye
204211</ button > }
205212
206213</ div >
@@ -224,6 +231,7 @@ class AppComponent extends React.Component {
224231setOptions = { {
225232fontFamily :"monospace"
226233} }
234+ readOnly = { prediction . state === "waiting" }
227235/>
228236</ div >
229237< div className = "terminal" >