agora-appbuilder-core 2.3.0-beta.2 → 2.3.0-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/Readme.md +11 -6
  2. package/package.json +2 -2
  3. package/template/Gulpfile.js +100 -12
  4. package/template/_package-lock.json +122 -49
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +2 -0
  6. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +4 -5
  7. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +3 -1
  8. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +3 -1
  9. package/template/agora-rn-uikit/src/Rtc/Create.tsx +64 -33
  10. package/template/agora-rn-uikit/src/Rtc/Join.tsx +11 -2
  11. package/template/agora-rn-uikit/src/RtcConfigure.tsx +23 -4
  12. package/template/agora-rn-uikit/src/Utils/permission.ts +17 -6
  13. package/template/bridge/rtc/webNg/RtcEngine.ts +31 -21
  14. package/template/esbuild.rsdk.go +20 -6
  15. package/template/fpe-api/components.ts +15 -0
  16. package/template/fpe-api/context.ts +2 -3
  17. package/template/fpe-api/install.ts +19 -9
  18. package/template/fpe-api/typeDefinition.ts +7 -6
  19. package/template/fpe-api/utils.ts +32 -25
  20. package/template/global.d.ts +3 -2
  21. package/template/package.json +5 -2
  22. package/template/react-native-toast-message/src/index.js +3 -7
  23. package/template/react-native-toast-message/src/{index.wsdk.js → index.sdk.tsx} +1 -1
  24. package/template/react-native-toast-message/src/styles.sdk.ts +17 -0
  25. package/template/src/components/Chat.tsx +23 -5
  26. package/template/src/components/ChatContext.ts +15 -4
  27. package/template/src/components/Controls.native.tsx +10 -6
  28. package/template/src/components/Controls.tsx +6 -4
  29. package/template/src/components/HostControlView.tsx +5 -3
  30. package/template/src/components/RTMConfigure.tsx +20 -50
  31. package/template/src/components/chat-messages/useChatMessages.tsx +369 -70
  32. package/template/src/components/contexts/LiveStreamDataContext.tsx +3 -3
  33. package/template/src/components/contexts/ScreenShareContext.tsx +2 -0
  34. package/template/src/components/livestream/LiveStreamContext.tsx +9 -6
  35. package/template/src/components/participants/MeParticipant.tsx +5 -3
  36. package/template/src/components/participants/RemoteParticipants.tsx +9 -7
  37. package/template/src/components/precall/LocalMute.native.tsx +12 -8
  38. package/template/src/components/precall/LocalMute.tsx +5 -3
  39. package/template/src/components/precall/textInput.tsx +1 -1
  40. package/template/src/components/useShareLink.tsx +37 -39
  41. package/template/src/components/useUserPreference.tsx +125 -0
  42. package/template/src/custom-events/CustomEvents.ts +39 -23
  43. package/template/src/custom-events/types.ts +3 -3
  44. package/template/src/language/default-labels/videoCallScreenLabels.ts +4 -2
  45. package/template/src/pages/Create.tsx +5 -1
  46. package/template/src/pages/Join.tsx +4 -1
  47. package/template/src/pages/VideoCall.tsx +61 -56
  48. package/template/src/pages/video-call/CustomUserContextHolder.tsx +13 -5
  49. package/template/src/pages/video-call/VideoCallScreen.tsx +18 -15
  50. package/template/src/rtm/RTMEngine.ts +13 -0
  51. package/template/src/rtm/utils.ts +1 -1
  52. package/template/src/rtm-events/EventUtils.ts +3 -0
  53. package/template/src/rtm-events/EventsQueue.ts +9 -3
  54. package/template/src/rtm-events/constants.ts +3 -1
  55. package/template/src/subComponents/ChatBubble.tsx +22 -4
  56. package/template/src/subComponents/ChatContainer.tsx +30 -19
  57. package/template/src/subComponents/ChatInput.tsx +38 -26
  58. package/template/src/subComponents/SelectDevice.tsx +1 -1
  59. package/template/src/subComponents/recording/useRecording.tsx +15 -4
  60. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +11 -5
  61. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +35 -26
  62. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +83 -33
  63. package/template/src/utils/getMeetingInvite.ts +38 -15
  64. package/template/src/utils/getUniqueID.native.ts +6 -0
  65. package/template/src/utils/getUniqueID.ts +5 -0
  66. package/template/src/utils/useDeleteMessage.ts +36 -0
  67. package/template/src/utils/useEditMessage.ts +41 -0
  68. package/template/src/utils/useGetName.ts +2 -3
  69. package/template/src/utils/useJoinMeeting.ts +22 -14
  70. package/template/src/utils/useLocalShareScreenUid.ts +19 -0
  71. package/template/src/utils/useSendMessage.ts +4 -5
  72. package/template/src/utils/useSetName.ts +2 -4
package/Readme.md CHANGED
@@ -1,18 +1,23 @@
1
1
  # App builder core
2
+
2
3
  This repository is a part of [RTE app builder](https://appbuilder.agora.io).
3
4
 
4
5
  ## Development instructions
6
+
5
7
  1. Clone the repo
6
8
 
7
9
  2. Navigate into project directory and run:
8
- ```
9
- npm run dev-setup -- meeting
10
- npm run dev-setup -- live-streaming
11
- ```
12
- This command will automatically set everything up for development
10
+ ```
11
+ npm run dev-setup -- meeting
12
+ npm run dev-setup -- live-streaming
13
+ npm run dev-setup -- voice-chat
14
+ npm run dev-setup -- audio-livecast
15
+ ```
16
+ This command will automatically set everything up for development
13
17
 
14
18
  To build react sdk using esbuild,
19
+
15
20
  1. Install the go compiler from https://go.dev/doc/install
16
21
  2. Run `go mod tidy` to download dependencies
17
22
 
18
- You can now build react sdk using esbuild through npm script
23
+ You can now build react sdk using esbuild through npm script
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-appbuilder-core",
3
- "version": "2.3.0-beta.2",
3
+ "version": "2.3.0-beta.20",
4
4
  "description": "React Native template for RTE app builder",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -13,7 +13,7 @@
13
13
  "deps": "cd template && npm i",
14
14
  "dev-setup": "npm run uikit && npm run deps && node devSetup.js",
15
15
  "web-build": "cd template && npm run web:build && cd .. && npm run copy-vercel",
16
- "copy-vercel": "cp vercel.json Builds/web",
16
+ "copy-vercel": "cp -r Builds/web template/dist && cp vercel.json template/dist",
17
17
  "pre-release": "cd template && cp package-lock.json _package-lock.json"
18
18
  },
19
19
  "author": {
@@ -24,14 +24,33 @@ const WebpackDevServer = require('webpack-dev-server');
24
24
  const webpackConfig = require('./webpack.renderer.config');
25
25
  const webpackRsdkConfig = require('./webpack.rsdk.config');
26
26
 
27
- const BUILD_PATH =
28
- process.env.TARGET === 'wsdk'
27
+ const outPathArg = process.argv.indexOf('--outpath')
28
+ getBuildPath = () => {
29
+ if (outPathArg == -1) {
30
+ return process.env.TARGET === 'wsdk'
29
31
  ? path.join(__dirname, '../Builds/web-sdk')
30
32
  : process.env.TARGET === 'rsdk'
31
33
  ? path.join(__dirname, '../Builds/react-sdk')
32
34
  : process.env.TARGET === 'android'
33
35
  ? path.join(__dirname, '../Builds/android')
34
36
  : path.join(__dirname, '../Builds/.electron');
37
+ } else {
38
+ return process.argv[outPathArg+1].split('/').slice(0, -1).join('/')
39
+ }
40
+ }
41
+ const BUILD_PATH = getBuildPath();
42
+ const TS_DEFS_BUILD_PATH = process.env.TARGET === 'wsdk'
43
+ ? path.join(__dirname, '../Builds/ts-defs/web-sdk')
44
+ : process.env.TARGET === 'rsdk'
45
+ ? path.join(__dirname, '../Builds/ts-defs/react-sdk')
46
+ : process.env.TARGET === 'android'
47
+ ? path.join(__dirname, '../Builds/ts-defs/android')
48
+ : path.join(__dirname, '../Builds/ts-defs/.electron');
49
+
50
+ const pkgNameArg = process.argv.indexOf('--pkgname')
51
+ const PACKAGE_NAME = pkgNameArg == -1
52
+ ? 'agora-app-builder-sdk'
53
+ : process.argv[pkgNameArg+1]
35
54
 
36
55
  let PRODUCT_NAME;
37
56
 
@@ -73,7 +92,7 @@ const general = {
73
92
  });
74
93
 
75
94
  let newPackage = {
76
- name: 'agora-app-builder-sdk',
95
+ name: PACKAGE_NAME,
77
96
  version,
78
97
  private,
79
98
  author,
@@ -129,6 +148,15 @@ const general = {
129
148
  typescriptClean: () => {
130
149
  return del([`${path.join(BUILD_PATH, '../', '/')}*.d.ts`], {force: true});
131
150
  },
151
+ genTsDefs: (cb) => {
152
+ runCli(`mkdir -p ${TS_DEFS_BUILD_PATH} && cp ${BUILD_PATH}/index.d.ts ${TS_DEFS_BUILD_PATH}/index.d.ts`, cb);
153
+ },
154
+ useTsDefs: (cb) => {
155
+ runCli(`cp ${TS_DEFS_BUILD_PATH}/index.d.ts ${BUILD_PATH}/index.d.ts`, cb)
156
+ },
157
+ npmPack: (cb) => {
158
+ runCli(`cd ${BUILD_PATH} && npm pack`, cb)
159
+ }
132
160
  };
133
161
 
134
162
  const electron = {
@@ -167,7 +195,18 @@ const reactSdk = {
167
195
  runCli('webpack --config ./webpack.rsdk.config.js', cb);
168
196
  },
169
197
  esbuild: (cb) => {
170
- runCli('go build -o ../esbuild-bin/rsdk ./esbuild.rsdk.go && ../esbuild-bin/rsdk', cb);
198
+ let outPath = '';
199
+ if (outPathArg != -1) {
200
+ outPath = ` --outpath ${process.argv[outPathArg+1]}`
201
+ }
202
+ let configTransformerPath = '';
203
+ const configTransformerPathArg = process.argv.indexOf('--configtransformerpath')
204
+ if (configTransformerPathArg != -1) {
205
+ configTransformerPath = ` --configtransformerpath ${process.argv[configTransformerPathArg+1]}`
206
+ }
207
+ let esbuildCmd = `go build -o ../esbuild-bin/rsdk ./esbuild.rsdk.go && ../esbuild-bin/rsdk${outPath}${configTransformerPath}`
208
+ console.log(esbuildCmd)
209
+ runCli(esbuildCmd, cb);
171
210
  },
172
211
  typescript: (cb) => {
173
212
  runCli(
@@ -189,9 +228,6 @@ const reactSdk = {
189
228
  .pipe(replace('"fpe-api"', '"fpe-api/index"'))
190
229
  .pipe(header('// @ts-nocheck\n'))
191
230
  .pipe(dest(BUILD_PATH));
192
- },
193
- npmPack: (cb) => {
194
- runCli('cd ../Builds/react-sdk && npm pack',cb)
195
231
  }
196
232
  };
197
233
 
@@ -284,7 +320,7 @@ module.exports.reactSdk = series(
284
320
  reactSdk.typescript,
285
321
  reactSdk.typescriptFix,
286
322
  general.typescriptClean,
287
- reactSdk.npmPack,
323
+ general.npmPack,
288
324
  );
289
325
 
290
326
  // react-sdk-esbuild
@@ -298,7 +334,31 @@ module.exports.reactSdkEsbuild = series (
298
334
  reactSdk.typescript,
299
335
  reactSdk.typescriptFix,
300
336
  general.typescriptClean,
301
- reactSdk.npmPack,
337
+ general.npmPack,
338
+ )
339
+
340
+ // generate typescript definitions
341
+ module.exports.makeRsdkTsDefs = series (
342
+ general.clean,
343
+ general.createBuildDirectory,
344
+ general.packageJson,
345
+ reactSdk.esbuild,
346
+ general.typescript,
347
+ general.typescriptFix,
348
+ reactSdk.typescript,
349
+ reactSdk.typescriptFix,
350
+ general.typescriptClean,
351
+ general.genTsDefs,
352
+ )
353
+
354
+ // react-sdk-esbuild with cached type definitions
355
+ module.exports.reactSdkEsbuildCachedTsc = series (
356
+ general.clean,
357
+ general.createBuildDirectory,
358
+ general.packageJson,
359
+ reactSdk.esbuild,
360
+ general.useTsDefs,
361
+ general.npmPack,
302
362
  )
303
363
 
304
364
  // web-sdk
@@ -316,13 +376,41 @@ module.exports.webSdk = series(
316
376
  general.typescriptClean,
317
377
  ),
318
378
  ),
319
- webSdk.npmPack,
379
+ general.npmPack,
380
+ );
381
+
382
+ module.exports.makeWsdkTsDefs = series(
383
+ general.clean,
384
+ general.createBuildDirectory,
385
+ general.packageJson,
386
+ parallel(
387
+ webSdk.webpack,
388
+ series(
389
+ general.typescript,
390
+ general.typescriptFix,
391
+ webSdk.typescript,
392
+ webSdk.typescriptFix,
393
+ general.typescriptClean,
394
+ ),
395
+ ),
396
+ general.genTsDefs,
397
+ );
398
+
399
+ module.exports.webSdkCachedTsc = series(
400
+ general.clean,
401
+ general.createBuildDirectory,
402
+ general.packageJson,
403
+ parallel(
404
+ webSdk.webpack,
405
+ general.useTsDefs,
406
+ ),
407
+ general.npmPack,
320
408
  );
321
409
 
322
410
  module.exports.androidUnix = series(
323
411
  general.clean,
324
412
  general.createBuildDirectory,
325
- // android.gradleBuildUnix,
413
+ android.gradleBuildUnix,
326
414
  android.copyBuild,
327
415
  );
328
416
 
@@ -334,7 +422,7 @@ module.exports.androidWin = series(
334
422
  );
335
423
 
336
424
  module.exports.test = series(
337
- reactSdk.npmPack,
425
+ general.npmPack,
338
426
  // general.typescript,
339
427
  // general.typescriptFix,
340
428
  // reactSdk.typescript,
@@ -23,12 +23,14 @@
23
23
  "electron-updater": "4.3.9",
24
24
  "exponential-backoff": "3.1.0",
25
25
  "graphql": "15.5.0",
26
+ "nanoid": "4.0.0",
26
27
  "nosleep.js": "0.12.0",
27
28
  "react": "16.13.1",
28
29
  "react-dom": "16.13.1",
29
30
  "react-is": "18.0.0",
30
31
  "react-native": "0.63.3",
31
32
  "react-native-agora": "3.4.2",
33
+ "react-native-get-random-values": "1.8.0",
32
34
  "react-native-hyperlink": "0.0.19",
33
35
  "react-native-inappbrowser-reborn": "3.5.1",
34
36
  "react-native-keep-awake": "4.0.0",
@@ -6631,9 +6633,9 @@
6631
6633
  }
6632
6634
  },
6633
6635
  "node_modules/acorn": {
6634
- "version": "7.4.1",
6635
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
6636
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
6636
+ "version": "8.8.0",
6637
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
6638
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
6637
6639
  "dev": true,
6638
6640
  "bin": {
6639
6641
  "acorn": "bin/acorn"
@@ -12231,6 +12233,18 @@
12231
12233
  "node": ">=6.0.0"
12232
12234
  }
12233
12235
  },
12236
+ "node_modules/espree/node_modules/acorn": {
12237
+ "version": "7.4.1",
12238
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
12239
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
12240
+ "dev": true,
12241
+ "bin": {
12242
+ "acorn": "bin/acorn"
12243
+ },
12244
+ "engines": {
12245
+ "node": ">=0.4.0"
12246
+ }
12247
+ },
12234
12248
  "node_modules/esprima": {
12235
12249
  "version": "4.0.1",
12236
12250
  "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -12928,6 +12942,11 @@
12928
12942
  "node": ">= 0.10"
12929
12943
  }
12930
12944
  },
12945
+ "node_modules/fast-base64-decode": {
12946
+ "version": "1.0.0",
12947
+ "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz",
12948
+ "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q=="
12949
+ },
12931
12950
  "node_modules/fast-deep-equal": {
12932
12951
  "version": "3.1.3",
12933
12952
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -20243,6 +20262,18 @@
20243
20262
  }
20244
20263
  }
20245
20264
  },
20265
+ "node_modules/jsdom/node_modules/acorn": {
20266
+ "version": "7.4.1",
20267
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
20268
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
20269
+ "dev": true,
20270
+ "bin": {
20271
+ "acorn": "bin/acorn"
20272
+ },
20273
+ "engines": {
20274
+ "node": ">=0.4.0"
20275
+ }
20276
+ },
20246
20277
  "node_modules/jsdom/node_modules/tough-cookie": {
20247
20278
  "version": "3.0.1",
20248
20279
  "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
@@ -22116,6 +22147,17 @@
22116
22147
  "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
22117
22148
  "optional": true
22118
22149
  },
22150
+ "node_modules/nanoid": {
22151
+ "version": "4.0.0",
22152
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
22153
+ "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==",
22154
+ "bin": {
22155
+ "nanoid": "bin/nanoid.js"
22156
+ },
22157
+ "engines": {
22158
+ "node": "^14 || ^16 || >=18"
22159
+ }
22160
+ },
22119
22161
  "node_modules/nanomatch": {
22120
22162
  "version": "1.2.13",
22121
22163
  "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -23960,6 +24002,17 @@
23960
24002
  "react-native": "*"
23961
24003
  }
23962
24004
  },
24005
+ "node_modules/react-native-get-random-values": {
24006
+ "version": "1.8.0",
24007
+ "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.8.0.tgz",
24008
+ "integrity": "sha512-H/zghhun0T+UIJLmig3+ZuBCvF66rdbiWUfRSNS6kv5oDSpa1ZiVyvRWtuPesQpT8dXj+Bv7WJRQOUP+5TB1sA==",
24009
+ "dependencies": {
24010
+ "fast-base64-decode": "^1.0.0"
24011
+ },
24012
+ "peerDependencies": {
24013
+ "react-native": ">=0.56"
24014
+ }
24015
+ },
23963
24016
  "node_modules/react-native-hyperlink": {
23964
24017
  "version": "0.0.19",
23965
24018
  "resolved": "https://registry.npmjs.org/react-native-hyperlink/-/react-native-hyperlink-0.0.19.tgz",
@@ -26213,6 +26266,14 @@
26213
26266
  "node": ">=6"
26214
26267
  }
26215
26268
  },
26269
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
26270
+ "version": "0.7.1",
26271
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
26272
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
26273
+ "engines": {
26274
+ "node": ">=8"
26275
+ }
26276
+ },
26216
26277
  "node_modules/stat-mode": {
26217
26278
  "version": "1.0.0",
26218
26279
  "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
@@ -26770,18 +26831,6 @@
26770
26831
  }
26771
26832
  }
26772
26833
  },
26773
- "node_modules/terser-webpack-plugin/node_modules/acorn": {
26774
- "version": "8.8.0",
26775
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
26776
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
26777
- "dev": true,
26778
- "bin": {
26779
- "acorn": "bin/acorn"
26780
- },
26781
- "engines": {
26782
- "node": ">=0.4.0"
26783
- }
26784
- },
26785
26834
  "node_modules/terser-webpack-plugin/node_modules/has-flag": {
26786
26835
  "version": "4.0.0",
26787
26836
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -27325,11 +27374,17 @@
27325
27374
  }
27326
27375
  },
27327
27376
  "node_modules/type-fest": {
27328
- "version": "0.7.1",
27329
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
27330
- "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
27377
+ "version": "2.18.0",
27378
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.18.0.tgz",
27379
+ "integrity": "sha512-pRS+/yrW5TjPPHNOvxhbNZexr2bS63WjrMU8a+VzEBhUi9Tz1pZeD+vQz3ut0svZ46P+SRqMEPnJmk2XnvNzTw==",
27380
+ "dev": true,
27381
+ "optional": true,
27382
+ "peer": true,
27331
27383
  "engines": {
27332
- "node": ">=8"
27384
+ "node": ">=12.20"
27385
+ },
27386
+ "funding": {
27387
+ "url": "https://github.com/sponsors/sindresorhus"
27333
27388
  }
27334
27389
  },
27335
27390
  "node_modules/type-is": {
@@ -28750,18 +28805,6 @@
28750
28805
  "node": ">=10.13.0"
28751
28806
  }
28752
28807
  },
28753
- "node_modules/webpack/node_modules/acorn": {
28754
- "version": "8.8.0",
28755
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
28756
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
28757
- "dev": true,
28758
- "bin": {
28759
- "acorn": "bin/acorn"
28760
- },
28761
- "engines": {
28762
- "node": ">=0.4.0"
28763
- }
28764
- },
28765
28808
  "node_modules/webpack/node_modules/enhanced-resolve": {
28766
28809
  "version": "5.10.0",
28767
28810
  "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
@@ -34323,9 +34366,9 @@
34323
34366
  }
34324
34367
  },
34325
34368
  "acorn": {
34326
- "version": "7.4.1",
34327
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
34328
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
34369
+ "version": "8.8.0",
34370
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
34371
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
34329
34372
  "dev": true
34330
34373
  },
34331
34374
  "acorn-globals": {
@@ -38670,6 +38713,14 @@
38670
38713
  "acorn": "^7.1.1",
38671
38714
  "acorn-jsx": "^5.2.0",
38672
38715
  "eslint-visitor-keys": "^1.1.0"
38716
+ },
38717
+ "dependencies": {
38718
+ "acorn": {
38719
+ "version": "7.4.1",
38720
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
38721
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
38722
+ "dev": true
38723
+ }
38673
38724
  }
38674
38725
  },
38675
38726
  "esprima": {
@@ -39225,6 +39276,11 @@
39225
39276
  "time-stamp": "^1.0.0"
39226
39277
  }
39227
39278
  },
39279
+ "fast-base64-decode": {
39280
+ "version": "1.0.0",
39281
+ "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz",
39282
+ "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q=="
39283
+ },
39228
39284
  "fast-deep-equal": {
39229
39285
  "version": "3.1.3",
39230
39286
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -44861,6 +44917,12 @@
44861
44917
  "xml-name-validator": "^3.0.0"
44862
44918
  },
44863
44919
  "dependencies": {
44920
+ "acorn": {
44921
+ "version": "7.4.1",
44922
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
44923
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
44924
+ "dev": true
44925
+ },
44864
44926
  "tough-cookie": {
44865
44927
  "version": "3.0.1",
44866
44928
  "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
@@ -46396,6 +46458,11 @@
46396
46458
  "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
46397
46459
  "optional": true
46398
46460
  },
46461
+ "nanoid": {
46462
+ "version": "4.0.0",
46463
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
46464
+ "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg=="
46465
+ },
46399
46466
  "nanomatch": {
46400
46467
  "version": "1.2.13",
46401
46468
  "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -48130,6 +48197,14 @@
48130
48197
  "integrity": "sha512-zY2BIDCG9vEGQMW9oggsom9XHZJqETG/nafLsZx4z52TzHw9bipNypL/jXpE50Ofg+bS9YKYJaSZGy8M9dgKSA==",
48131
48198
  "requires": {}
48132
48199
  },
48200
+ "react-native-get-random-values": {
48201
+ "version": "1.8.0",
48202
+ "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.8.0.tgz",
48203
+ "integrity": "sha512-H/zghhun0T+UIJLmig3+ZuBCvF66rdbiWUfRSNS6kv5oDSpa1ZiVyvRWtuPesQpT8dXj+Bv7WJRQOUP+5TB1sA==",
48204
+ "requires": {
48205
+ "fast-base64-decode": "^1.0.0"
48206
+ }
48207
+ },
48133
48208
  "react-native-hyperlink": {
48134
48209
  "version": "0.0.19",
48135
48210
  "resolved": "https://registry.npmjs.org/react-native-hyperlink/-/react-native-hyperlink-0.0.19.tgz",
@@ -49666,6 +49741,13 @@
49666
49741
  "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
49667
49742
  "requires": {
49668
49743
  "type-fest": "^0.7.1"
49744
+ },
49745
+ "dependencies": {
49746
+ "type-fest": {
49747
+ "version": "0.7.1",
49748
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
49749
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
49750
+ }
49669
49751
  }
49670
49752
  },
49671
49753
  "stat-mode": {
@@ -50094,12 +50176,6 @@
50094
50176
  "terser": "^5.7.2"
50095
50177
  },
50096
50178
  "dependencies": {
50097
- "acorn": {
50098
- "version": "8.8.0",
50099
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
50100
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
50101
- "dev": true
50102
- },
50103
50179
  "has-flag": {
50104
50180
  "version": "4.0.0",
50105
50181
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -50515,9 +50591,12 @@
50515
50591
  "dev": true
50516
50592
  },
50517
50593
  "type-fest": {
50518
- "version": "0.7.1",
50519
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
50520
- "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
50594
+ "version": "2.18.0",
50595
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.18.0.tgz",
50596
+ "integrity": "sha512-pRS+/yrW5TjPPHNOvxhbNZexr2bS63WjrMU8a+VzEBhUi9Tz1pZeD+vQz3ut0svZ46P+SRqMEPnJmk2XnvNzTw==",
50597
+ "dev": true,
50598
+ "optional": true,
50599
+ "peer": true
50521
50600
  },
50522
50601
  "type-is": {
50523
50602
  "version": "1.6.18",
@@ -51167,12 +51246,6 @@
51167
51246
  "webpack-sources": "^3.2.3"
51168
51247
  },
51169
51248
  "dependencies": {
51170
- "acorn": {
51171
- "version": "8.8.0",
51172
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
51173
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
51174
- "dev": true
51175
- },
51176
51249
  "enhanced-resolve": {
51177
51250
  "version": "5.10.0",
51178
51251
  "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
@@ -106,6 +106,7 @@ export interface RtcPropsInterface {
106
106
  // useBeforeCreate?: () => () => Promise<void>;
107
107
  // };
108
108
  geoFencing?: boolean;
109
+ audioRoom?: boolean;
109
110
  }
110
111
 
111
112
  export interface CallbacksInterface {
@@ -142,6 +143,7 @@ const initialValue: PropsInterface = {
142
143
  appId: '',
143
144
  channel: '',
144
145
  geoFencing: true,
146
+ audioRoom: false,
145
147
  },
146
148
  };
147
149
 
@@ -62,11 +62,10 @@ const BtnTemplate: React.FC<BtnTemplateInterface> = (props) => {
62
62
  tintColor: disabled ? 'grey' : props.color || theme || '#fff',
63
63
  }}
64
64
  resizeMode={'contain'}
65
- source={
66
- props.name && icons[props.name]
67
- ? {uri: icons[props.name]}
68
- : props.icon
69
- }
65
+ source={{
66
+ uri:
67
+ props.name && icons[props.name] ? icons[props.name] : props.icon,
68
+ }}
70
69
  />
71
70
  </View>
72
71
  <Text
@@ -49,7 +49,9 @@ const ImageIcon: React.FC<ImageIconInterface> = (props) => {
49
49
  props.style as object,
50
50
  ]}
51
51
  resizeMode={'contain'}
52
- source={props.name && icons[props.name] ? {uri: icons[props.name] } : props.icon}
52
+ source={{
53
+ uri: props.name && icons[props.name] ? icons[props.name] : props.icon,
54
+ }}
53
55
  />
54
56
  );
55
57
  };
@@ -32,7 +32,9 @@ export default function UserJoined(
32
32
  ...typeData,
33
33
  },
34
34
  };
35
- let renderPosition = [...state.renderPosition, newUid];
35
+ let renderPosition = state.renderPosition.filter((i) => i === newUid).length
36
+ ? [...state.renderPosition]
37
+ : [...state.renderPosition, newUid];
36
38
  const [maxUid] = renderPosition;
37
39
  if (renderPosition.length === 2 && maxUid === localUid) {
38
40
  //Only one remote and local is maximized