mirror of
https://github.com/avatao-content/frontend-tutorial-framework
synced 2025-07-01 05:56:23 +00:00
Make type hierarchy from messages
This commit is contained in:
@ -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'});
|
||||
}
|
||||
|
Reference in New Issue
Block a user