[MM-55152] Add new Desktop API endpoints, improve preload script, some clean-up (#2900)
* Add constants for app info, add to API * Migrate history button * Converted calls API over to context bridge, removed some unnecessary logging * Convert to TS, add types for web app to consume * Fix tests, prune * Fix lint * More changes to support the legacy API * Force legacy code off, add support for unreads/mentions/expired through the API * Fix issues with cross-tab login, removed need for log in/log out signalling * Fixed test, typos * Change package name for types * Add some other stuff to the types * PR feedback * More feedback * Use npm package * Change types and API to provide off listeners * Version number * Lock * Fix typo * Add sessionID for calls
This commit is contained in:
57
api-types/lib/index.d.ts
vendored
Normal file
57
api-types/lib/index.d.ts
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
export declare type DesktopSourcesOptions = {
|
||||
types: Array<'screen' | 'window'>;
|
||||
thumbnailSize?: {
|
||||
height: number;
|
||||
width: number;
|
||||
};
|
||||
fetchWindowIcons?: boolean;
|
||||
};
|
||||
export declare type DesktopCaptureSource = {
|
||||
id: string;
|
||||
name: string;
|
||||
thumbnailURL: string;
|
||||
};
|
||||
export declare type DesktopAPI = {
|
||||
isDev: () => Promise<boolean>;
|
||||
getAppInfo: () => Promise<{
|
||||
name: string;
|
||||
version: string;
|
||||
}>;
|
||||
reactAppInitialized: () => void;
|
||||
setSessionExpired: (isExpired: boolean) => void;
|
||||
onUserActivityUpdate: (listener: (userIsActive: boolean, idleTime: number, isSystemEvent: boolean) => void) => () => void;
|
||||
sendNotification: (title: string, body: string, channelId: string, teamId: string, url: string, silent: boolean, soundName: string) => void;
|
||||
onNotificationClicked: (listener: (channelId: string, teamId: string, url: string) => void) => () => void;
|
||||
setUnreadsAndMentions: (isUnread: boolean, mentionCount: number) => void;
|
||||
requestBrowserHistoryStatus: () => Promise<{
|
||||
canGoBack: boolean;
|
||||
canGoForward: boolean;
|
||||
}>;
|
||||
onBrowserHistoryStatusUpdated: (listener: (canGoBack: boolean, canGoForward: boolean) => void) => () => void;
|
||||
onBrowserHistoryPush: (listener: (pathName: string) => void) => () => void;
|
||||
sendBrowserHistoryPush: (path: string) => void;
|
||||
openLinkFromCallsWidget: (url: string) => void;
|
||||
openScreenShareModal: () => void;
|
||||
onScreenShared: (listener: (sourceID: string, withAudio: boolean) => void) => () => void;
|
||||
callsWidgetConnected: (callID: string, sessionID: string) => void;
|
||||
onJoinCallRequest: (listener: (callID: string) => void) => () => void;
|
||||
resizeCallsWidget: (width: number, height: number) => void;
|
||||
focusPopout: () => void;
|
||||
leaveCall: () => void;
|
||||
sendCallsError: (err: string, callID?: string, errMsg?: string) => void;
|
||||
getDesktopSources: (opts: DesktopSourcesOptions) => Promise<DesktopCaptureSource[]>;
|
||||
onOpenScreenShareModal: (listener: () => void) => () => void;
|
||||
shareScreen: (sourceID: string, withAudi: boolean) => void;
|
||||
joinCall: (opts: {
|
||||
callID: string;
|
||||
title: string;
|
||||
rootID: string;
|
||||
channelURL: string;
|
||||
}) => Promise<{
|
||||
callID: string;
|
||||
sessionID: string;
|
||||
}>;
|
||||
sendJoinCallRequest: (callId: string) => void;
|
||||
onCallsError: (listener: (err: string, callID?: string, errMsg?: string) => void) => () => void;
|
||||
unregister: (channel: string) => void;
|
||||
};
|
4
api-types/lib/index.js
Normal file
4
api-types/lib/index.js
Normal file
@@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Reference in New Issue
Block a user