Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 82dd2d7

Browse files
feat: add autoConnect property and disconnect method
1 parent 037c0cc commit 82dd2d7

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

webcomponents/remote/src/components.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ import {
2323
export namespace Components {
2424

2525
interface DeckgoRemote {
26+
'autoConnect': boolean;
2627
'connect': () => Promise<void>;
28+
'disconnect': () => Promise<void>;
2729
'height': number;
2830
'length': number;
2931
'moveDraw': (leftOffset: number, transitionDuration: string) => Promise<void>;
@@ -36,6 +38,7 @@ export namespace Components {
3638
'width': number;
3739
}
3840
interface DeckgoRemoteAttributes extends StencilHTMLAttributes {
41+
'autoConnect'?: boolean;
3942
'height'?: number;
4043
'length'?: number;
4144
'onEvent'?: (event: CustomEvent<DeckdeckgoEvent>) => void;

webcomponents/remote/src/components/deckdeckgo-remote/deckdeckgo-remote.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export class DeckdeckgoRemote {
3232

3333
@Prop() slides: DeckdeckgoSlideDefinition[];
3434

35+
@Prop() autoConnect: boolean = true;
36+
3537
@State() canvasWidth: number;
3638

3739
@Event() state: EventEmitter<ConnectionState>;
@@ -106,6 +108,10 @@ export class DeckdeckgoRemote {
106108
@Watch('room')
107109
@Watch('server')
108110
private async initConnect() {
111+
if (!this.autoConnect) {
112+
return;
113+
}
114+
109115
await this.connect();
110116
}
111117

@@ -127,6 +133,15 @@ export class DeckdeckgoRemote {
127133
});
128134
}
129135

136+
@Method()
137+
disconnect(): Promise<void> {
138+
return new Promise<void>(async (resolve) => {
139+
await this.communicationService.disconnect();
140+
141+
resolve();
142+
});
143+
}
144+
130145
private initContext(): Promise<void> {
131146
return new Promise<void>((resolve) => {
132147
const canvas: HTMLCanvasElement = this.el.shadowRoot.querySelector('canvas');

0 commit comments

Comments
 (0)