FEATURE: better implementation of the admin global message
This commit is contained in:
parent
df610aa01b
commit
ad7e16c33b
17 changed files with 177 additions and 302 deletions
34
front/src/Connexion/AdminMessagesService.ts
Normal file
34
front/src/Connexion/AdminMessagesService.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
import {Subject} from "rxjs";
|
||||
import {SendUserMessage} from "../Messages/generated/messages_pb";
|
||||
|
||||
export enum AdminMessageEventTypes {
|
||||
admin = 'message',
|
||||
audio = 'audio',
|
||||
ban = 'ban',
|
||||
}
|
||||
|
||||
interface AdminMessageEvent {
|
||||
type: AdminMessageEventTypes,
|
||||
text: string;
|
||||
//todo add optional properties for other event types
|
||||
}
|
||||
|
||||
//this class is designed to easily allow communication between the RoomConnection objects (that receive the message)
|
||||
//and the various objects that may render the message on screen
|
||||
class AdminMessagesService {
|
||||
private _messageStream: Subject<AdminMessageEvent> = new Subject();
|
||||
public messageStream = this._messageStream.asObservable();
|
||||
|
||||
constructor() {
|
||||
this.messageStream.subscribe((event) => console.log('message', event))
|
||||
}
|
||||
|
||||
onSendusermessage(message: SendUserMessage) {
|
||||
this._messageStream.next({
|
||||
type: message.getType() as unknown as AdminMessageEventTypes,
|
||||
text: message.getMessage(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export const adminMessagesService = new AdminMessagesService();
|
Loading…
Add table
Add a link
Reference in a new issue