Przeglądaj źródła

feat(billing-counter) Removed iframe billing-counter callbacks (#9537)

* Removed iframe billing-counter callbacks

* Moved remaining items to jaas

* Fixed import path

* Removed billingCounter condition

* Use getvpaasTenant in middleware

* Removed billingId

* Path fix

* Removed jwt from isVpaasMeeting

* Fix isVpaas
master
robertpin 3 lat temu
rodzic
commit
4276f82c03
No account linked to committer's email address
29 zmienionych plików z 71 dodań i 242 usunięć
  1. 1
    2
      connection.js
  2. 1
    1
      react/features/app/actions.js
  3. 0
    1
      react/features/app/middlewares.any.js
  4. 0
    1
      react/features/app/reducers.any.js
  5. 1
    1
      react/features/base/react/components/web/Watermarks.js
  6. 0
    4
      react/features/billing-counter/actionTypes.js
  7. 0
    42
      react/features/billing-counter/actions.js
  8. 0
    9
      react/features/billing-counter/constants.js
  9. 0
    112
      react/features/billing-counter/functions.js
  10. 0
    5
      react/features/billing-counter/logger.js
  11. 0
    29
      react/features/billing-counter/reducer.js
  12. 1
    1
      react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js
  13. 0
    2
      react/features/conference/functions.web.js
  14. 1
    1
      react/features/deep-linking/functions.js
  15. 1
    1
      react/features/feedback/actions.js
  16. 1
    1
      react/features/invite/components/add-people-dialog/web/AddPeopleDialog.js
  17. 1
    1
      react/features/invite/components/add-people-dialog/web/InviteContactsForm.js
  18. 1
    1
      react/features/invite/functions.js
  19. 2
    3
      react/features/jaas/actions.web.js
  20. 5
    0
      react/features/jaas/constants.js
  21. 45
    1
      react/features/jaas/functions.js
  22. 2
    16
      react/features/jaas/middleware.any.js
  23. 2
    1
      react/features/jaas/middleware.web.js
  24. 1
    1
      react/features/reactions/middleware.js
  25. 1
    1
      react/features/recording/actions.any.js
  26. 1
    1
      react/features/recording/components/Recording/StartRecordingDialogContent.js
  27. 1
    1
      react/features/toolbox/components/DownloadButton.js
  28. 1
    1
      react/features/toolbox/components/HelpButton.js
  29. 1
    1
      react/features/toolbox/components/web/Toolbox.js

+ 1
- 2
connection.js Wyświetl plik

@@ -17,8 +17,7 @@ import {
17 17
     JitsiConnectionErrors,
18 18
     JitsiConnectionEvents
19 19
 } from './react/features/base/lib-jitsi-meet';
20
-import { isVpaasMeeting } from './react/features/billing-counter/functions';
21
-import { getJaasJWT } from './react/features/jaas/functions';
20
+import { isVpaasMeeting, getJaasJWT } from './react/features/jaas/functions';
22 21
 import { setPrejoinDisplayNameRequired } from './react/features/prejoin/actions';
23 22
 const logger = Logger.getLogger(__filename);
24 23
 

+ 1
- 1
react/features/app/actions.js Wyświetl plik

@@ -24,7 +24,7 @@ import {
24 24
     parseURIString,
25 25
     toURLString
26 26
 } from '../base/util';
27
-import { isVpaasMeeting } from '../billing-counter/functions';
27
+import { isVpaasMeeting } from '../jaas/functions';
28 28
 import { clearNotifications, showNotification } from '../notifications';
29 29
 import { setFatalError } from '../overlay';
30 30
 

+ 0
- 1
react/features/app/middlewares.any.js Wyświetl plik

@@ -18,7 +18,6 @@ import '../base/sounds/middleware';
18 18
 import '../base/testing/middleware';
19 19
 import '../base/tracks/middleware';
20 20
 import '../base/user-interaction/middleware';
21
-import '../billing-counter/middleware';
22 21
 import '../calendar-sync/middleware';
23 22
 import '../chat/middleware';
24 23
 import '../conference/middleware';

+ 0
- 1
react/features/app/reducers.any.js Wyświetl plik

@@ -25,7 +25,6 @@ import '../base/sounds/reducer';
25 25
 import '../base/testing/reducer';
26 26
 import '../base/tracks/reducer';
27 27
 import '../base/user-interaction/reducer';
28
-import '../billing-counter/reducer';
29 28
 import '../calendar-sync/reducer';
30 29
 import '../chat/reducer';
31 30
 import '../deep-linking/reducer';

+ 1
- 1
react/features/base/react/components/web/Watermarks.js Wyświetl plik

@@ -2,7 +2,7 @@
2 2
 
3 3
 import React, { Component } from 'react';
4 4
 
5
-import { isVpaasMeeting } from '../../../../billing-counter/functions';
5
+import { isVpaasMeeting } from '../../../../jaas/functions';
6 6
 import { translate } from '../../../i18n';
7 7
 import { connect } from '../../../redux';
8 8
 

+ 0
- 4
react/features/billing-counter/actionTypes.js Wyświetl plik

@@ -1,4 +0,0 @@
1
-/**
2
- * Action used to store the flag signaling the endpoint has been counted.
3
- */
4
-export const SET_ENDPOINT_COUNTED = 'SET_ENDPOINT_COUNTED';

+ 0
- 42
react/features/billing-counter/actions.js Wyświetl plik

@@ -1,42 +0,0 @@
1
-// @flow
2
-
3
-import { SET_ENDPOINT_COUNTED } from './actionTypes';
4
-import { extractVpaasTenantFromPath, getBillingId, sendCountRequest } from './functions';
5
-
6
-/**
7
- * Sends a billing count request when needed.
8
- *
9
- * @returns {Function}
10
- */
11
-export function countEndpoint() {
12
-    return function(dispatch: Function, getState: Function) {
13
-        const state = getState();
14
-        const baseUrl = state['features/base/config'].billingCounterUrl;
15
-        const jwt = state['features/base/jwt'].jwt;
16
-        const tenant = extractVpaasTenantFromPath(state['features/base/connection'].locationURL.pathname);
17
-        const shouldSendRequest = Boolean(baseUrl && jwt && tenant);
18
-
19
-        if (shouldSendRequest) {
20
-            const billingId = getBillingId();
21
-
22
-            sendCountRequest({
23
-                baseUrl,
24
-                billingId,
25
-                jwt,
26
-                tenant
27
-            });
28
-            dispatch(setEndpointCounted());
29
-        }
30
-    };
31
-}
32
-
33
-/**
34
- * Action used to mark the endpoint as counted.
35
- *
36
- * @returns {Object}
37
- */
38
-function setEndpointCounted() {
39
-    return {
40
-        type: SET_ENDPOINT_COUNTED
41
-    };
42
-}

+ 0
- 9
react/features/billing-counter/constants.js Wyświetl plik

@@ -1,9 +0,0 @@
1
-/**
2
- * The key for the billing id stored in localStorage.
3
- */
4
-export const BILLING_ID = 'jitsiMeetId';
5
-
6
-/**
7
- * The prefix for the vpaas tenant.
8
- */
9
-export const VPAAS_TENANT_PREFIX = 'vpaas-magic-cookie-';

+ 0
- 112
react/features/billing-counter/functions.js Wyświetl plik

@@ -1,112 +0,0 @@
1
-// @flow
2
-
3
-import { jitsiLocalStorage } from '@jitsi/js-utils';
4
-import uuid from 'uuid';
5
-
6
-import { BILLING_ID, VPAAS_TENANT_PREFIX } from './constants';
7
-import logger from './logger';
8
-
9
-/**
10
- * Returns the full vpaas tenant if available, given a path.
11
- *
12
- * @param {string} path - The meeting url path.
13
- * @returns {string}
14
- */
15
-export function extractVpaasTenantFromPath(path: string) {
16
-    const [ , tenant ] = path.split('/');
17
-
18
-    if (tenant.startsWith(VPAAS_TENANT_PREFIX)) {
19
-        return tenant;
20
-    }
21
-
22
-    return '';
23
-}
24
-
25
-/**
26
- * Returns the vpaas tenant.
27
- *
28
- * @param {Object} state - The global state.
29
- * @returns {string}
30
- */
31
-export function getVpaasTenant(state: Object) {
32
-    return extractVpaasTenantFromPath(state['features/base/connection'].locationURL.pathname);
33
-}
34
-
35
-/**
36
- * Returns true if the current meeting is a vpaas one.
37
- *
38
- * @param {Object} state - The state of the app.
39
- * @returns {boolean}
40
- */
41
-export function isVpaasMeeting(state: Object) {
42
-    const { billingCounterUrl } = state['features/base/config'];
43
-
44
-    return Boolean(
45
-        billingCounterUrl
46
-        && extractVpaasTenantFromPath(
47
-            state['features/base/connection'].locationURL.pathname)
48
-    );
49
-}
50
-
51
-/**
52
- * Sends a billing counter request.
53
- *
54
- * @param {Object} reqData - The request info.
55
- * @param {string} reqData.baseUrl - The base url for the request.
56
- * @param {string} billingId - The unique id of the client.
57
- * @param {string} jwt - The JWT token.
58
- * @param {string} tenat - The client tenant.
59
- * @returns {void}
60
- */
61
-export async function sendCountRequest({ baseUrl, billingId, jwt, tenant }: {
62
-    baseUrl: string,
63
-    billingId: string,
64
-    jwt: string,
65
-    tenant: string
66
-}) {
67
-    const fullUrl = `${baseUrl}/${encodeURIComponent(tenant)}/${billingId}`;
68
-    const headers = {
69
-        'Authorization': `Bearer ${jwt}`
70
-    };
71
-
72
-    try {
73
-        const res = await fetch(fullUrl, {
74
-            method: 'GET',
75
-            headers
76
-        });
77
-
78
-        if (!res.ok) {
79
-            logger.error('Status error:', res.status);
80
-        }
81
-    } catch (err) {
82
-        logger.error('Could not send request', err);
83
-    }
84
-}
85
-
86
-/**
87
- * Returns the stored billing id (or generates a new one if none is present).
88
- *
89
- * @returns {string}
90
- */
91
-export function getBillingId() {
92
-    let billingId = jitsiLocalStorage.getItem(BILLING_ID);
93
-
94
-    if (!billingId) {
95
-        billingId = uuid.v4();
96
-        jitsiLocalStorage.setItem(BILLING_ID, billingId);
97
-    }
98
-
99
-    return billingId;
100
-}
101
-
102
-/**
103
- * Returns the billing id for vpaas meetings.
104
- *
105
- * @param {Object} state - The state of the app.
106
- * @returns {string | undefined}
107
- */
108
-export function getVpaasBillingId(state: Object) {
109
-    if (isVpaasMeeting(state)) {
110
-        return getBillingId();
111
-    }
112
-}

+ 0
- 5
react/features/billing-counter/logger.js Wyświetl plik

@@ -1,5 +0,0 @@
1
-// @flow
2
-
3
-import { getLogger } from '../base/logging/functions';
4
-
5
-export default getLogger('features/billing-counter');

+ 0
- 29
react/features/billing-counter/reducer.js Wyświetl plik

@@ -1,29 +0,0 @@
1
-import { ReducerRegistry } from '../base/redux';
2
-
3
-import {
4
-    SET_ENDPOINT_COUNTED
5
-} from './actionTypes';
6
-
7
-const DEFAULT_STATE = {
8
-    endpointCounted: false
9
-};
10
-
11
-/**
12
- * Listen for actions that mutate the billing-counter state
13
- */
14
-ReducerRegistry.register(
15
-    'features/billing-counter', (state = DEFAULT_STATE, action) => {
16
-        switch (action.type) {
17
-
18
-        case SET_ENDPOINT_COUNTED: {
19
-            return {
20
-                ...state,
21
-                endpointCounted: true
22
-            };
23
-        }
24
-
25
-        default:
26
-            return state;
27
-        }
28
-    },
29
-);

+ 1
- 1
react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.js Wyświetl plik

@@ -16,7 +16,7 @@ import { translate } from '../../base/i18n';
16 16
 import { Icon, IconClose } from '../../base/icons';
17 17
 import { browser } from '../../base/lib-jitsi-meet';
18 18
 import { connect } from '../../base/redux';
19
-import { isVpaasMeeting } from '../../billing-counter/functions';
19
+import { isVpaasMeeting } from '../../jaas/functions';
20 20
 import logger from '../logger';
21 21
 
22 22
 

+ 0
- 2
react/features/conference/functions.web.js Wyświetl plik

@@ -4,7 +4,6 @@ import { translateToHTML } from '../base/i18n';
4 4
 import { getLocalParticipant } from '../base/participants';
5 5
 import { toState } from '../base/redux';
6 6
 import { getBackendSafePath, getJitsiMeetGlobalNS } from '../base/util';
7
-import { getVpaasBillingId } from '../billing-counter/functions';
8 7
 import { showWarningNotification } from '../notifications';
9 8
 import { createRnnoiseProcessor } from '../stream-effects/rnnoise';
10 9
 
@@ -85,7 +84,6 @@ export function getConferenceOptions(stateful) {
85 84
     options.applicationName = getName();
86 85
     options.getWiFiStatsMethod = getWiFiStatsMethod;
87 86
     options.createVADProcessor = createRnnoiseProcessor;
88
-    options.billingId = getVpaasBillingId(state);
89 87
 
90 88
     // Disable CallStats, if requessted.
91 89
     if (options.disableThirdPartyRequests) {

+ 1
- 1
react/features/deep-linking/functions.js Wyświetl plik

@@ -3,7 +3,7 @@
3 3
 import { isMobileBrowser } from '../base/environment/utils';
4 4
 import { Platform } from '../base/react';
5 5
 import { URI_PROTOCOL_PATTERN } from '../base/util';
6
-import { isVpaasMeeting } from '../billing-counter/functions';
6
+import { isVpaasMeeting } from '../jaas/functions';
7 7
 
8 8
 import {
9 9
     DeepLinkingDesktopPage,

+ 1
- 1
react/features/feedback/actions.js Wyświetl plik

@@ -4,8 +4,8 @@ import type { Dispatch } from 'redux';
4 4
 
5 5
 import { FEEDBACK_REQUEST_IN_PROGRESS } from '../../../modules/UI/UIErrors';
6 6
 import { openDialog } from '../base/dialog';
7
-import { isVpaasMeeting } from '../billing-counter/functions';
8 7
 import { extractFqnFromPath } from '../dynamic-branding/functions';
8
+import { isVpaasMeeting } from '../jaas/functions';
9 9
 
10 10
 import {
11 11
     CANCEL_FEEDBACK,

+ 1
- 1
react/features/invite/components/add-people-dialog/web/AddPeopleDialog.js Wyświetl plik

@@ -8,9 +8,9 @@ import { Dialog } from '../../../../base/dialog';
8 8
 import { translate } from '../../../../base/i18n';
9 9
 import { JitsiRecordingConstants } from '../../../../base/lib-jitsi-meet';
10 10
 import { connect } from '../../../../base/redux';
11
-import { isVpaasMeeting } from '../../../../billing-counter/functions';
12 11
 import { isDynamicBrandingDataLoaded } from '../../../../dynamic-branding/functions';
13 12
 import EmbedMeetingTrigger from '../../../../embed-meeting/components/EmbedMeetingTrigger';
13
+import { isVpaasMeeting } from '../../../../jaas/functions';
14 14
 import { getActiveSession } from '../../../../recording';
15 15
 import { updateDialInNumbers } from '../../../actions';
16 16
 import {

+ 1
- 1
react/features/invite/components/add-people-dialog/web/InviteContactsForm.js Wyświetl plik

@@ -10,7 +10,7 @@ import { Icon, IconPhone } from '../../../../base/icons';
10 10
 import { getLocalParticipant } from '../../../../base/participants';
11 11
 import { MultiSelectAutocomplete } from '../../../../base/react';
12 12
 import { connect } from '../../../../base/redux';
13
-import { isVpaasMeeting } from '../../../../billing-counter/functions';
13
+import { isVpaasMeeting } from '../../../../jaas/functions';
14 14
 import { hideAddPeopleDialog } from '../../../actions';
15 15
 import { INVITE_TYPES } from '../../../constants';
16 16
 import AbstractAddPeopleDialog, {

+ 1
- 1
react/features/invite/functions.js Wyświetl plik

@@ -9,7 +9,7 @@ import { JitsiRecordingConstants } from '../base/lib-jitsi-meet';
9 9
 import { getLocalParticipant, isLocalParticipantModerator } from '../base/participants';
10 10
 import { toState } from '../base/redux';
11 11
 import { doGetJSON, parseURIString } from '../base/util';
12
-import { isVpaasMeeting } from '../billing-counter/functions';
12
+import { isVpaasMeeting } from '../jaas/functions';
13 13
 
14 14
 import { INVITE_TYPES, SIP_ADDRESS_REGEX } from './constants';
15 15
 import logger from './logger';

+ 2
- 3
react/features/jaas/actions.web.js Wyświetl plik

@@ -1,12 +1,11 @@
1 1
 // @flow
2 2
 
3 3
 import { openDialog } from '../base/dialog';
4
-import { VPAAS_TENANT_PREFIX } from '../billing-counter/constants';
5
-import { getVpaasTenant } from '../billing-counter/functions';
6 4
 
7 5
 import { SET_DETAILS } from './actionTypes';
8 6
 import { PremiumFeatureDialog } from './components';
9
-import { isFeatureDisabled, sendGetDetailsRequest } from './functions';
7
+import { VPAAS_TENANT_PREFIX } from './constants';
8
+import { getVpaasTenant, isFeatureDisabled, sendGetDetailsRequest } from './functions';
10 9
 import logger from './logger';
11 10
 
12 11
 /**

+ 5
- 0
react/features/jaas/constants.js Wyświetl plik

@@ -23,3 +23,8 @@ export const FEATURES = {
23 23
  * URL for displaying JaaS upgrade options
24 24
  */
25 25
 export const JAAS_UPGRADE_URL = 'https://jaas.8x8.vc/#/plan/upgrade';
26
+
27
+/**
28
+ * The prefix for the vpaas tenant.
29
+ */
30
+export const VPAAS_TENANT_PREFIX = 'vpaas-magic-cookie-';

+ 45
- 1
react/features/jaas/functions.js Wyświetl plik

@@ -1,9 +1,53 @@
1 1
 // @flow
2 2
 
3
-import { getVpaasTenant } from '../billing-counter/functions';
4 3
 
4
+import { VPAAS_TENANT_PREFIX } from './constants';
5 5
 import logger from './logger';
6 6
 
7
+/**
8
+ * Returns the full vpaas tenant if available, given a path.
9
+ *
10
+ * @param {string} path - The meeting url path.
11
+ * @returns {string}
12
+ */
13
+function extractVpaasTenantFromPath(path: string) {
14
+    const [ , tenant ] = path.split('/');
15
+
16
+    if (tenant.startsWith(VPAAS_TENANT_PREFIX)) {
17
+        return tenant;
18
+    }
19
+
20
+    return '';
21
+}
22
+
23
+/**
24
+ * Returns the vpaas tenant.
25
+ *
26
+ * @param {Object} state - The global state.
27
+ * @returns {string}
28
+ */
29
+export function getVpaasTenant(state: Object) {
30
+    return extractVpaasTenantFromPath(state['features/base/connection'].locationURL.pathname);
31
+}
32
+
33
+/**
34
+ * Returns true if the current meeting is a vpaas one.
35
+ *
36
+ * @param {Object} state - The state of the app.
37
+ * @returns {boolean}
38
+ */
39
+export function isVpaasMeeting(state: Object) {
40
+    const connection = state['features/base/connection'];
41
+
42
+    if (connection?.locationURL?.pathname) {
43
+        return Boolean(
44
+            extractVpaasTenantFromPath(connection?.locationURL?.pathname)
45
+        );
46
+    }
47
+
48
+    return false;
49
+}
50
+
7 51
 /**
8 52
  * Sends a request for retrieving jaas customer details.
9 53
  *

react/features/billing-counter/middleware.js → react/features/jaas/middleware.any.js Wyświetl plik

@@ -1,10 +1,8 @@
1 1
 import { sendAnalytics, createVpaasConferenceJoinedEvent } from '../analytics';
2 2
 import { CONFERENCE_JOINED } from '../base/conference/actionTypes';
3
-import { PARTICIPANT_JOINED } from '../base/participants/actionTypes';
4 3
 import { MiddlewareRegistry } from '../base/redux';
5 4
 
6
-import { countEndpoint } from './actions';
7
-import { isVpaasMeeting, extractVpaasTenantFromPath } from './functions';
5
+import { isVpaasMeeting, getVpaasTenant } from './functions';
8 6
 
9 7
 /**
10 8
  * The redux middleware for billing counter.
@@ -20,17 +18,6 @@ MiddlewareRegistry.register(store => next => async action => {
20 18
 
21 19
         break;
22 20
     }
23
-
24
-    case PARTICIPANT_JOINED: {
25
-        const shouldCount = !store.getState()['features/billing-counter'].endpointCounted
26
-              && !action.participant.local;
27
-
28
-        if (shouldCount) {
29
-            store.dispatch(countEndpoint());
30
-        }
31
-
32
-        break;
33
-    }
34 21
     }
35 22
 
36 23
     return next(action);
@@ -45,7 +32,6 @@ MiddlewareRegistry.register(store => next => async action => {
45 32
 function _maybeTrackVpaasConferenceJoin(state) {
46 33
     if (isVpaasMeeting(state)) {
47 34
         sendAnalytics(createVpaasConferenceJoinedEvent(
48
-            extractVpaasTenantFromPath(
49
-                state['features/base/connection'].locationURL.pathname)));
35
+            getVpaasTenant(state)));
50 36
     }
51 37
 }

+ 2
- 1
react/features/jaas/middleware.web.js Wyświetl plik

@@ -3,11 +3,12 @@ import { CONFERENCE_JOINED } from '../base/conference/actionTypes';
3 3
 import { CONNECTION_FAILED } from '../base/connection';
4 4
 import { JitsiConnectionErrors } from '../base/lib-jitsi-meet';
5 5
 import { MiddlewareRegistry } from '../base/redux';
6
-import { isVpaasMeeting } from '../billing-counter/functions';
6
+
7 7
 
8 8
 import { SET_DETAILS } from './actionTypes';
9 9
 import { getCustomerDetails } from './actions';
10 10
 import { STATUSES } from './constants';
11
+import { isVpaasMeeting } from './functions';
11 12
 
12 13
 /**
13 14
  * The redux middleware for jaas.

+ 1
- 1
react/features/reactions/middleware.js Wyświetl plik

@@ -2,7 +2,7 @@
2 2
 
3 3
 import { ENDPOINT_REACTION_NAME } from '../../../modules/API/constants';
4 4
 import { MiddlewareRegistry } from '../base/redux';
5
-import { isVpaasMeeting } from '../billing-counter/functions';
5
+import { isVpaasMeeting } from '../jaas/functions';
6 6
 
7 7
 import {
8 8
     SET_REACTIONS_MESSAGE,

+ 1
- 1
react/features/recording/actions.any.js Wyświetl plik

@@ -4,7 +4,7 @@ import { getMeetingRegion, getRecordingSharingUrl } from '../base/config';
4 4
 import JitsiMeetJS, { JitsiRecordingConstants } from '../base/lib-jitsi-meet';
5 5
 import { getLocalParticipant, getParticipantDisplayName } from '../base/participants';
6 6
 import { copyText } from '../base/util/helpers';
7
-import { getVpaasTenant, isVpaasMeeting } from '../billing-counter/functions';
7
+import { getVpaasTenant, isVpaasMeeting } from '../jaas/functions';
8 8
 import {
9 9
     NOTIFICATION_TIMEOUT,
10 10
     hideNotification,

+ 1
- 1
react/features/recording/components/Recording/StartRecordingDialogContent.js Wyświetl plik

@@ -21,8 +21,8 @@ import {
21 21
 } from '../../../base/react';
22 22
 import { connect } from '../../../base/redux';
23 23
 import { ColorPalette, StyleType } from '../../../base/styles';
24
-import { isVpaasMeeting } from '../../../billing-counter/functions';
25 24
 import { authorizeDropbox, updateDropboxToken } from '../../../dropbox';
25
+import { isVpaasMeeting } from '../../../jaas/functions';
26 26
 import { RECORDING_TYPES } from '../../constants';
27 27
 import { getRecordingDurationEstimation } from '../../functions';
28 28
 

+ 1
- 1
react/features/toolbox/components/DownloadButton.js Wyświetl plik

@@ -6,7 +6,7 @@ import { IconDownload } from '../../base/icons';
6 6
 import { connect } from '../../base/redux';
7 7
 import { AbstractButton, type AbstractButtonProps } from '../../base/toolbox/components';
8 8
 import { openURLInBrowser } from '../../base/util';
9
-import { isVpaasMeeting } from '../../billing-counter/functions';
9
+import { isVpaasMeeting } from '../../jaas/functions';
10 10
 
11 11
 type Props = AbstractButtonProps & {
12 12
 

+ 1
- 1
react/features/toolbox/components/HelpButton.js Wyświetl plik

@@ -7,7 +7,7 @@ import { IconHelp } from '../../base/icons';
7 7
 import { connect } from '../../base/redux';
8 8
 import { AbstractButton, type AbstractButtonProps } from '../../base/toolbox/components';
9 9
 import { openURLInBrowser } from '../../base/util';
10
-import { isVpaasMeeting } from '../../billing-counter/functions';
10
+import { isVpaasMeeting } from '../../jaas/functions';
11 11
 
12 12
 type Props = AbstractButtonProps & {
13 13
 

+ 1
- 1
react/features/toolbox/components/web/Toolbox.js Wyświetl plik

@@ -22,12 +22,12 @@ import {
22 22
 } from '../../../base/participants';
23 23
 import { connect } from '../../../base/redux';
24 24
 import { getLocalVideoTrack } from '../../../base/tracks';
25
-import { isVpaasMeeting } from '../../../billing-counter/functions';
26 25
 import { toggleChat } from '../../../chat';
27 26
 import { ChatButton } from '../../../chat/components';
28 27
 import { EmbedMeetingButton } from '../../../embed-meeting';
29 28
 import { SharedDocumentButton } from '../../../etherpad';
30 29
 import { FeedbackButton } from '../../../feedback';
30
+import { isVpaasMeeting } from '../../../jaas/functions';
31 31
 import { KeyboardShortcutsButton } from '../../../keyboard-shortcuts';
32 32
 import { LocalRecordingButton } from '../../../local-recording';
33 33
 import {

Ładowanie…
Anuluj
Zapisz