workadventure/front/src/Api/Events/ui/TriggerMessageEventHandler.ts

36 lines
1 KiB
TypeScript

import { Subject } from "rxjs";
import { iframeListener } from "../../IframeListener";
import {
isMessageReferenceEvent,
isTriggerMessageEvent,
MessageReferenceEvent,
removeTriggerMessage,
triggerMessage,
TriggerMessageEvent,
} from "./TriggerMessageEvent";
import * as tg from "generic-type-guard";
export function sendMessageTriggeredEvent(uuid: string) {
iframeListener.postMessage({
type: "messageTriggered",
data: {
uuid,
} as MessageReferenceEvent,
});
}
const isTriggerMessageEventObject = new tg.IsInterface()
.withProperties({
type: tg.isSingletonString(triggerMessage),
data: isTriggerMessageEvent,
})
.get();
const isTriggerMessageRemoveEventObject = new tg.IsInterface()
.withProperties({
type: tg.isSingletonString(removeTriggerMessage),
data: isMessageReferenceEvent,
})
.get();
export const isTriggerMessageHandlerEvent = tg.isUnion(isTriggerMessageEventObject, isTriggerMessageRemoveEventObject);