/
QuickMeet
/
Chat.Desktop
Обзор
Документация
Войти
/
QuickMeet
/
Chat.Desktop
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/screenSharing/main.ts
45 строк
1 KB
Jean Brito
chore: Update fuselage (#2673)
03 авг 2023, 01:31
Не верифицирован
03 авг 2023, 01:31
4d68ba5
Код
Авторство
О чём код?
import { dispatch, listen } from '../store'; import type { ActionOf, RootAction } from '../store/actions'; import { hasMeta, isResponseTo } from '../store/fsa'; import { WEBVIEW_SCREEN_SHARING_SOURCE_REQUESTED, WEBVIEW_SCREEN_SHARING_SOURCE_RESPONDED, } from '../ui/actions'; import { SCREEN_SHARING_DIALOG_DISMISSED } from './actions'; export const setupScreenSharing = (): void => { listen(WEBVIEW_SCREEN_SHARING_SOURCE_REQUESTED, (requestAction) => { if (!hasMeta(requestAction) || !requestAction.meta.id) { return; } const predicate = ( action: RootAction ): action is | ActionOf<typeof WEBVIEW_SCREEN_SHARING_SOURCE_RESPONDED> | ActionOf<typeof SCREEN_SHARING_DIALOG_DISMISSED> => isResponseTo( requestAction.meta.id, WEBVIEW_SCREEN_SHARING_SOURCE_RESPONDED, SCREEN_SHARING_DIALOG_DISMISSED )(action); const unsubscribe = listen(predicate, (responseAction) => { unsubscribe(); const sourceId = responseAction.type === WEBVIEW_SCREEN_SHARING_SOURCE_RESPONDED ? responseAction.payload : null; dispatch({ type: WEBVIEW_SCREEN_SHARING_SOURCE_RESPONDED, payload: sourceId, meta: { response: true, id: requestAction.meta?.id, }, }); }); }); };