Skip to content

Commit ea2ae85

Browse files
authored
fix(releases) use external api with tenant value to get the correct release version (#26)
1 parent fc88a22 commit ea2ae85

File tree

6 files changed

+30
-10
lines changed

6 files changed

+30
-10
lines changed

example/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@jitsi/react-sdk",
3-
"version": "1.2.0",
3+
"version": "1.3.0",
44
"description": "React SDK for the Jitsi Meet IFrame",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

src/components/JitsiMeeting.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
import { DEFAULT_DOMAIN } from '../constants';
1111
import { fetchExternalApi } from '../init';
1212
import { IJitsiMeetExternalApi, IJitsiMeetingProps, JitsiMeetExternalApi } from '../types';
13-
import { generateComponentId } from '../utils';
13+
import { generateComponentId, getAppId } from '../utils';
1414

1515
/**
1616
* Returns the JitsiMeeting Component with access to a custom External API
@@ -53,7 +53,7 @@ const JitsiMeeting = ({
5353
, [ generateComponentId ]);
5454

5555
useEffect(() => {
56-
fetchExternalApi(domain, release)
56+
fetchExternalApi(domain, release, getAppId(roomName))
5757
.then((api: JitsiMeetExternalApi) => {
5858
externalApi.current = api;
5959
setApiLoaded(true);

src/init.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@ import { JitsiMeetExternalApi } from './types';
33

44
const loadExternalApi = async (
55
domain: string,
6-
release?: string
6+
release?: string,
7+
appId?: string
78
): Promise<JitsiMeetExternalApi> => new Promise((resolve, reject) => {
89
if (window.JitsiMeetExternalAPI) {
910
return resolve(window.JitsiMeetExternalAPI);
1011
}
1112

1213
const script: HTMLScriptElement = document.createElement('script');
1314
const releaseParam: string = release ? `?release=${release}` : '';
15+
const appIdPath: string = appId ? `${appId}/` : '';
1416

1517
script.async = true;
16-
script.src = `https://${domain}/external_api.js${releaseParam}`;
18+
script.src = `https://${domain}/${appIdPath}external_api.js${releaseParam}`;
1719
script.onload = () => resolve(window.JitsiMeetExternalAPI);
1820
script.onerror = () => reject(new Error(`Script load error: ${script.src}`));
1921
document.head.appendChild(script as Node);
@@ -31,17 +33,19 @@ let scriptPromise: Promise<JitsiMeetExternalApi>;
3133
*
3234
* @param {string} domain - The domain of the external API
3335
* @param {string} release - The Jitsi Meet release. Expected format: 'release-1234'
36+
* @param {string} appId - The tenant for JaaS Meetings
3437
* @returns {Promise<JitsiMeetExternalApi>} - The JitsiMeetExternalAPI or an error
3538
*/
3639
export const fetchExternalApi = (
3740
domain: string = DEFAULT_DOMAIN,
38-
release?: string
41+
release?: string,
42+
appId?: string
3943
): Promise<JitsiMeetExternalApi> => {
4044
if (scriptPromise) {
4145
return scriptPromise;
4246
}
4347

44-
scriptPromise = loadExternalApi(domain, release);
48+
scriptPromise = loadExternalApi(domain, release, appId);
4549

4650
return scriptPromise;
4751
};

src/utils/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,22 @@ export const getRoomName = (
1818
return roomName;
1919
};
2020

21+
/**
22+
* Returns the appId or tenant value
23+
*
24+
* @param {string} roomName
25+
* @returns {string|undefined}
26+
*/
27+
export const getAppId = (roomName: string): string | undefined => {
28+
const roomParts = roomName.split('/');
29+
30+
if (roomParts.length <= 1) {
31+
return;
32+
}
33+
34+
return roomParts[0];
35+
}
36+
2137
/**
2238
* Returns the JaaS domain
2339
*

0 commit comments

Comments
 (0)