Merge remote-tracking branch 'remotes/upstream/develop' into trigger-message-refv3
This commit is contained in:
commit
369d453455
202 changed files with 15971 additions and 4927 deletions
|
@ -1,11 +1,11 @@
|
|||
import type { MenuItemClickedEvent } from '../../Events/ui/MenuItemClickedEvent';
|
||||
import { iframeListener } from '../../IframeListener';
|
||||
import type { MenuItemClickedEvent } from "../../Events/ui/MenuItemClickedEvent";
|
||||
import { iframeListener } from "../../IframeListener";
|
||||
|
||||
export function sendMenuClickedEvent(menuItem: string) {
|
||||
iframeListener.postMessage({
|
||||
'type': 'menuItemClicked',
|
||||
'data': {
|
||||
type: "menuItemClicked",
|
||||
data: {
|
||||
menuItem: menuItem,
|
||||
} as MenuItemClickedEvent
|
||||
} as MenuItemClickedEvent,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
|
||||
import { removeTriggerMessage, triggerMessage, TriggerMessageEvent } from '../../Events/ui/TriggerMessageEvent';
|
||||
import { sendToWorkadventure } from '../IframeApiContribution';
|
||||
import {
|
||||
MessageReferenceEvent,
|
||||
removeTriggerMessage,
|
||||
triggerMessage,
|
||||
TriggerMessageEvent,
|
||||
} from "../../Events/ui/TriggerMessageEvent";
|
||||
import { queryWorkadventure } from "../IframeApiContribution";
|
||||
function uuidv4() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
||||
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
|
||||
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0,
|
||||
v = c === "x" ? r : (r & 0x3) | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
export let triggerMessageInstance: TriggerMessage | undefined = undefined
|
||||
|
||||
|
||||
export let triggerMessageInstance: TriggerMessage | undefined = undefined;
|
||||
|
||||
export class TriggerMessage {
|
||||
uuid: string
|
||||
uuid: string;
|
||||
|
||||
constructor(private message: string, private callback: () => void) {
|
||||
this.uuid = uuidv4()
|
||||
this.uuid = uuidv4();
|
||||
if (triggerMessageInstance) {
|
||||
triggerMessageInstance.remove();
|
||||
}
|
||||
|
@ -24,28 +27,24 @@ export class TriggerMessage {
|
|||
this.create();
|
||||
}
|
||||
|
||||
create(): this {
|
||||
sendToWorkadventure({
|
||||
async create() {
|
||||
await queryWorkadventure({
|
||||
type: triggerMessage,
|
||||
data: {
|
||||
message: this.message,
|
||||
uuid: this.uuid
|
||||
} as TriggerMessageEvent
|
||||
})
|
||||
return this
|
||||
}
|
||||
|
||||
remove() {
|
||||
sendToWorkadventure({
|
||||
type: removeTriggerMessage,
|
||||
data: {
|
||||
uuid: this.uuid
|
||||
} as TriggerMessageEvent
|
||||
})
|
||||
triggerMessageInstance = undefined
|
||||
}
|
||||
|
||||
trigger() {
|
||||
uuid: this.uuid,
|
||||
} as TriggerMessageEvent,
|
||||
});
|
||||
this.callback();
|
||||
}
|
||||
}
|
||||
|
||||
async remove() {
|
||||
await queryWorkadventure({
|
||||
type: removeTriggerMessage,
|
||||
data: {
|
||||
uuid: this.uuid,
|
||||
} as MessageReferenceEvent,
|
||||
});
|
||||
triggerMessageInstance = undefined;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue