Compare commits

...
Author SHA1 Message Date
Gergo Turcsanyi 96d27a7d2d Fix iframe reload polling 2020-05-29 11:54:26 +02:00
R. Richard 4f3a6057a4 Prevent IDE reload race condition 2020-05-26 15:34:54 +02:00
4 changed files with 6811 additions and 3 deletions
+2 -1
View File
@@ -103,7 +103,8 @@ export class DashboardComponent implements OnInit, OnDestroy {
} }
reloadIframeHandler(message: WebSocketMessage) { reloadIframeHandler(message: WebSocketMessage) {
setTimeout(() => this.reloadIframe(), 200); this.iframeReloadPoller.ok.subscribe(() => this.reloadIframe());
this.iframeReloadPoller.start();
} }
setLayout(layout: string) { setLayout(layout: string) {
+11 -1
View File
@@ -32,6 +32,7 @@ export class IdeComponent implements OnInit {
files: string[]; files: string[];
filename = ''; filename = '';
lastFilename = ''; lastFilename = '';
reloadFile = false;
code = 'Loading your file...'; code = 'Loading your file...';
codeState = CodeState.SAVED; codeState = CodeState.SAVED;
@@ -85,10 +86,18 @@ export class IdeComponent implements OnInit {
} }
reloadHandler(message: WebSocketMessage) { reloadHandler(message: WebSocketMessage) {
if (!this.reloadFile) {
this.reloadFile = true;
this.requestCode(); this.requestCode();
} }
}
readHandler(message: IDEMessage) { readHandler(message: IDEMessage) {
if (!this.reloadFile && message.reload) {
return;
}
this.reloadFile = false;
if (this.codeState === CodeState.SAVED) { if (this.codeState === CodeState.SAVED) {
if (this.filename !== message.filename) { if (this.filename !== message.filename) {
this.filename = message.filename; this.filename = message.filename;
@@ -189,7 +198,8 @@ export class IdeComponent implements OnInit {
requestCode() { requestCode() {
this.webSocketService.send({ this.webSocketService.send({
'key': 'ide.read', 'key': 'ide.read',
'filename': this.filename 'filename': this.filename,
'reload': this.reloadFile
}); });
} }
} }
+1
View File
@@ -4,4 +4,5 @@ export interface IDEMessage extends WebSocketMessage {
filename: string; filename: string;
content?: string; content?: string;
files?: string[]; files?: string[];
reload?: boolean;
} }
+6796
View File
File diff suppressed because it is too large Load Diff