| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- // @flow
 - 
 - import { getLocalVideoTrack } from '../../features/base/tracks';
 - 
 - 
 - import { SET_SCREENSHOT_CAPTURE } from './actionTypes';
 - import { createScreenshotCaptureSummary } from './functions';
 - import logger from './logger';
 - 
 - let screenshotSummary;
 - 
 - /**
 -  * Marks the on-off state of screenshot captures.
 -  *
 -  * @param {boolean} enabled - Whether to turn screen captures on or off.
 -  * @returns {{
 -     *      type: START_SCREENSHOT_CAPTURE,
 -     *      payload: enabled
 -     * }}
 - */
 - function setScreenshotCapture(enabled) {
 -     return {
 -         type: SET_SCREENSHOT_CAPTURE,
 -         payload: enabled
 -     };
 - }
 - 
 - /**
 - * Action that toggles the screenshot captures.
 - *
 - * @param {boolean} enabled - Bool that represents the intention to start/stop screenshot captures.
 - * @returns {Promise}
 - */
 - export function toggleScreenshotCaptureSummary(enabled: boolean) {
 -     return async function(dispatch: (Object) => Object, getState: () => any) {
 -         const state = getState();
 - 
 -         if (state['features/screenshot-capture'].capturesEnabled !== enabled) {
 -             const { jitsiTrack } = getLocalVideoTrack(state['features/base/tracks']);
 - 
 -             if (!screenshotSummary) {
 -                 try {
 -                     screenshotSummary = await createScreenshotCaptureSummary(state);
 -                 } catch (err) {
 -                     logger.error('Cannot create screenshotCaptureSummary', err);
 -                 }
 -             }
 - 
 -             if (enabled) {
 -                 try {
 -                     await screenshotSummary.start(jitsiTrack);
 -                     dispatch(setScreenshotCapture(enabled));
 -                 } catch {
 - 
 -                     // Handle promise rejection from {@code start} due to stream type not being desktop.
 -                     logger.error('Unsupported stream type.');
 -                 }
 -             } else {
 -                 screenshotSummary.stop();
 -                 dispatch(setScreenshotCapture(enabled));
 -             }
 -         }
 - 
 -         return Promise.resolve();
 -     };
 - }
 
 
  |