Make type hierarchy from messages

This commit is contained in:
Kristóf Tóth
2018-05-31 12:02:53 +02:00
parent e510fb58f6
commit 887a81ab8e
12 changed files with 51 additions and 37 deletions

View File

@ -6,8 +6,9 @@ import { MarkdownService } from '../services/markdown.service';
import { WebSocketService } from '../services/websocket.service';
import { MessagesMessage } from '../message.types/messages.message';
import { MessageControl } from '../message.types/messagecontrol';
import { MessageControlCommand } from '../message.types/message.control.command';
import { config } from '../config';
import { CommandMessage } from '../message.types/command.message';
@Component({
selector: 'app-messages',
@ -17,7 +18,7 @@ import { config } from '../config';
export class MessagesComponent implements OnInit {
messages: MessagesMessage[] = [];
showNextButton: boolean = config.messages.showNextButton;
command_handlers = {'showbutton': this.showButton.bind(this)};
command_handlers = {'showbutton': this.showButtonHandler.bind(this)};
constructor(
private markdownService: MarkdownService,
@ -25,14 +26,6 @@ export class MessagesComponent implements OnInit {
private changeDetectorRef: ChangeDetectorRef
) {}
convert(text: string) {
return this.markdownService.convertToHtml(text);
}
showButton(data: MessageControl) {
this.showNextButton = data.next_visibility;
}
ngOnInit() {
this.websocketService.connect();
this.websocketService.observeKey<MessagesMessage>('message').subscribe(
@ -41,12 +34,20 @@ export class MessagesComponent implements OnInit {
event.data.message = this.convert(event.data.message);
this.changeDetectorRef.detectChanges();
});
this.websocketService.observeKey<MessageControl>('messagecontrol').subscribe(
this.websocketService.observeKey<CommandMessage>('messagecontrol').subscribe(
(event) => {
this.command_handlers[event.data.command](event.data);
});
}
convert(text: string) {
return this.markdownService.convertToHtml(text);
}
showButtonHandler(data: MessageControlCommand) {
this.showNextButton = data.next_visibility;
}
stepFSM() {
this.websocketService.sendJSON({key: '', trigger: 'step_next'});
}