38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { initializeScreenShare as nativeInitializeScreenShare } from '../native-components/BBBN_ScreenShareService';
|
|
import nativeEmitter from '../native-messaging/emitter';
|
|
|
|
// Reference to the resolver of last call
|
|
let resolve = (a: String | null) => {
|
|
console.log(
|
|
`default resolve function called, this should never happen: ${a}`
|
|
);
|
|
};
|
|
|
|
// Log a message when broadcast is requested
|
|
nativeEmitter.addListener('onBroadcastRequested', () => {
|
|
console.log(`Broadcast requested`);
|
|
});
|
|
|
|
// Resolve promise when broadcast is started (this event means that user confirmed the screenshare)
|
|
nativeEmitter.addListener('onBroadcastStarted', () => {
|
|
resolve(null);
|
|
});
|
|
|
|
// Entry point of this method
|
|
function initializeScreenShare() {
|
|
return new Promise((res, rej) => {
|
|
// store the resolver for later call (when event is received)
|
|
resolve = res;
|
|
|
|
try {
|
|
// call native swift method that triggers the broadcast popup
|
|
console.log(`>nativeInitializeScreenShare`);
|
|
nativeInitializeScreenShare();
|
|
} catch (e) {
|
|
rej(`Call to nativeInitializeScreenShare failed zzy`);
|
|
}
|
|
});
|
|
}
|
|
|
|
export default initializeScreenShare;
|