{"_id":"@andrkenya/react-native-jitsi-meet","name":"@andrkenya/react-native-jitsi-meet","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@andrkenya/react-native-jitsi-meet","version":"1.0.0","description":"React native Wrapper for Jitsi Meet SDK","main":"lib/commonjs/index","module":"lib/module/index","types":"lib/typescript/index.d.ts","react-native":"src/index","source":"src/index","scripts":{"test":"jest","typescript":"tsc --noEmit","lint":"eslint \"**/*.{js,ts,tsx}\"","prepare":"bob build","release":"release-it","example":"yarn --cwd example","pods":"cd example && pod-install --quiet","local-publish":"yalc publish","bootstrap":"yarn example && yarn && yarn pods"},"keywords":["react-native","ios","android","jitsi","meet","sdk"],"repository":{"type":"git","url":"git+https://github.com/vidit-me/react-native-jitsi-meet.git"},"author":{"name":"Dor Perez","email":"dorperezx@gmail.com","url":"https://github.com/vidit-me"},"license":"MIT","bugs":{"url":"https://github.com/vidit-me/react-native-jitsi-meet/issues"},"homepage":"https://github.com/vidit-me/react-native-jitsi-meet#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","@release-it/conventional-changelog":"^2.0.0","@types/jest":"^26.0.0","@types/react":"^16.9.19","@types/react-native":"0.62.13","commitlint":"^11.0.0","eslint":"^7.2.0","eslint-config-prettier":"^7.0.0","eslint-plugin-prettier":"^3.1.3","husky":"^4.2.5","jest":"^26.0.1","pod-install":"^0.1.0","prettier":"^2.0.5","react":"16.13.1","react-native":"0.63.4","react-native-builder-bob":"^0.18.0","release-it":"^14.2.2","typescript":"^4.1.3"},"peerDependencies":{"react":"*","react-native":"*"},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"yarn lint && yarn typescript"}},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"eslintConfig":{"root":true,"extends":["@react-native-community","prettier"],"rules":{"prettier/prettier":["error",{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false}]}},"eslintIgnore":["node_modules/","lib/"],"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"directories":{"example":"example","lib":"lib"},"gitHead":"f144b94d4a87bdd5a1ad08108a1ae02bab4afb52","_id":"@andrkenya/react-native-jitsi-meet@1.0.0","_nodeVersion":"16.14.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-1TKvQzbKA+gddaqqenGrT4gn5NcXEn/S46lJdoV11VE6z7bneItkVsU+DZWluxgK27Z1ul4Pl+Dyc8zXjyGxVw==","shasum":"128035a9fe9f2861b27d05815fc414bf67e7dfff","tarball":"https://registry.npmjs.org/@andrkenya/react-native-jitsi-meet/-/react-native-jitsi-meet-1.0.0.tgz","fileCount":35,"unpackedSize":76934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGICAAMYvTB5HTOx5dJ6tFr7JyK6CwEITmrNtT7bsXonAiEAhb31r8tFCHDyHJElPObPxg8Ms61lpb82xfV5G4SX88M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP753ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQlQ/9E2lny4+n+vbRrGK77LJZSjTfDoumKjTrxIBLIDhP6Om5OR8A\r\nR7Gzh2SUE1sxUjgSkDf0fzgMQrtNSnan/m/hMiiadtnZH5y+9/f9gUy3QQC5\r\nNmWPivlwX6CaFb6lenVrKrUSbWI/GcMNhZJ25NMxXw9ZjWtDsY6EDmBcspTl\r\nEw//WLxEZ9yi/0jgPZ3Ahf8nz8w6MdVcTxaW/oXlX2ZkOkddki0Gh8GH40G4\r\nwNtm2Uz3AS/MBnsY5zqZquwB+D3bwwPGelNF5IWHLixBa8zJKWT9+DV6b8sK\r\nXiLnLfHUU1DVgKIiMdCY9i9JGhiW5i76/rtBUSOSn0mddlwmW2G5+Wja7YUC\r\ndFr1klPUI5AX0w+k+1VqwkXFfFS2VVYGDRcmtYlYWVV0OBSR/8JuneV1BAuh\r\nEOORRXS8t/Vs0UzgzFAQsS/hf62BVQuCqqdQ3UVJBwYEsr30wSU8KqW0RZGZ\r\nAOWhgZRGJEkpz78hs/eER9ZenhPGrmN4H68yUP3bqBRySJTe92D3Gc9dochn\r\nxaPOrNeI0uAN83bysdh0npZACfRFgrgysslkiZsnZRjIZwp92mN6TK6iwKpV\r\n+sMHkWH5pwK0VexhQYE2GqwuCvmWuvWEmZOuTLPXd1aqVit7I1PfI0xjWgUM\r\nqMKuDOxI5BWfDqfyWjXMY1TQRcdj+5qocNE=\r\n=gs6d\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"andrkenya","email":"andrew.buk10@gmail.com"},"maintainers":[{"name":"andrkenya","email":"andrew.buk10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-native-jitsi-meet_1.0.0_1681899126875_0.6360204075641136"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-19T10:12:06.803Z","1.0.0":"2023-04-19T10:12:07.039Z","modified":"2023-04-19T10:12:07.228Z"},"maintainers":[{"name":"andrkenya","email":"andrew.buk10@gmail.com"}],"description":"React native Wrapper for Jitsi Meet SDK","homepage":"https://github.com/vidit-me/react-native-jitsi-meet#readme","keywords":["react-native","ios","android","jitsi","meet","sdk"],"repository":{"type":"git","url":"git+https://github.com/vidit-me/react-native-jitsi-meet.git"},"author":{"name":"Dor Perez","email":"dorperezx@gmail.com","url":"https://github.com/vidit-me"},"bugs":{"url":"https://github.com/vidit-me/react-native-jitsi-meet/issues"},"license":"MIT","readme":"\r\n# React Native JitsiMeet\r\n\r\nReact Native Wrapper for Jitsi Meet SDK.\r\n\r\nHow this wrapper is different:\r\n1. We have implemented broadcast actions.\r\n2. Maintained by a startup that uses Jitsi solutions.\r\n\r\nJitsiSDK version: 5.1.0\r\nReact Native support: 0.68.1\r\n\r\n## Install\r\n\r\n```sh\r\nyarn add @vidit-me/react-native-jitsi-meet\r\n\r\nor\r\n\r\nnpm i --save @vidit-me/react-native-jitsi-meet\r\n```\r\n\r\n## Usage\r\n\r\nThe package can be invoked in two modes\r\n\r\n1. As a new Activity/UIViewController on top of RN Application\r\n2. As a RN View\r\n\r\n```jsx\r\nimport JitsiMeet, { JitsiMeetView } from '@vidit-me/react-native-jitsi-meet';\r\nimport React, { useState } from 'react';\r\nimport { StyleSheet, View, Pressable, Text } from 'react-native';\r\n\r\nconst conferenceOptions = {\r\n  room: 'ReactNativeJitsiRoom',\r\n  userInfo: {\r\n    displayName: 'React Native Jitsi Meet Example',\r\n    email: 'example@test.com',\r\n    avatar: 'https://picsum.photos/200',\r\n  },\r\n  featureFlags: {\r\n    'live-streaming.enabled': false,\r\n  },\r\n};\r\n\r\nfunction App() {\r\n  const [showJitsiView, setShowJitsiView] = useState(false);\r\n  const [muted, setMuted] = React.useState(true);\r\n  const startJitsiAsNativeController = async () => {\r\n    /* \r\n      Mode 1 - Starts a new Jitsi Activity/UIViewController on top of RN Application (outside of JS).\r\n      It doesn't require rendering JitsiMeetView Component.\r\n    */\r\n\r\n    await JitsiMeet.launchJitsiMeetView(conferenceOptions);\r\n\r\n    /*\r\n      Note:\r\n        JitsiMeet.launchJitsiMeetView will return a promise, which is resolved once the conference is terminated and the JitsiMeetView is dismissed.\r\n    */\r\n  };\r\n\r\n  /*\r\n    The localParticipant leaves the current conference.\r\n  */\r\n\r\n  if (showJitsiView) {\r\n    /* Mode 2 - Starts Jitsi as a RN View */\r\n\r\n    return (\r\n      <JitsiMeetView\r\n        style={styles.jitsiMeetView}\r\n        options={conferenceOptions}\r\n        onConferenceTerminated={(_) => setShowJitsiView(false)}\r\n        onConferenceJoined={(e) => console.log(e.nativeEvent)}\r\n        onConferenceWillJoin={(e) => console.log(e.nativeEvent)}\r\n      />\r\n    );\r\n  }\r\n\r\n  return (\r\n    <View style={styles.container}>\r\n      <Pressable\r\n        onPress={startJitsiAsNativeController}\r\n        style={({ pressed }) => [\r\n          styles.pressable,\r\n          { opacity: pressed ? 0.5 : 1 },\r\n        ]}\r\n      >\r\n        <Text style={styles.pressableText}>\r\n          Start Jitsi on top of RN Application\r\n        </Text>\r\n      </Pressable>\r\n       <Pressable\r\n        onPress={() => {\r\n\t        JitsiMeet.sendActions({SET_VIDEO_MUTED: { muted: !muted}});\r\n\t        setMuted(!muted);\r\n\t        }\r\n        }\r\n        style={({ pressed }) => [\r\n          styles.pressable,\r\n          { opacity: pressed ? 0.5 : 1 },\r\n        ]}\r\n      >\r\n        <Text style={styles.pressableText}>\r\n          Toggle some controller\r\n        </Text>\r\n      </Pressable>\r\n      <Pressable\r\n        onPress={() => setShowJitsiView(true)}\r\n        style={({ pressed }) => [\r\n          styles.pressable,\r\n          { opacity: pressed ? 0.5 : 1 },\r\n        ]}\r\n      >\r\n        <Text style={styles.pressableText}>Start Jitsi as a RN View</Text>\r\n      </Pressable>\r\n    </View>\r\n  );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n  container: {\r\n    flex: 1,\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n  },\r\n  pressable: {\r\n    width: '80%',\r\n    borderRadius: 15,\r\n    height: 50,\r\n    marginVertical: 10,\r\n    justifyContent: 'center',\r\n    alignItems: 'center',\r\n    backgroundColor: 'blue',\r\n  },\r\n  pressableText: {\r\n    fontSize: 17,\r\n    fontWeight: 'bold',\r\n    textAlign: 'center',\r\n    color: '#fff',\r\n  },\r\n  jitsiMeetView: {\r\n    flex: 1,\r\n  },\r\n});\r\n\r\nexport default App;\r\n```\r\n\r\nSee [Options](#options) for further information.\r\n\r\n## iOS install\r\n\r\n1.) This library uses Swift code, so make sure that you have created the `Objective-C bridging header file`.\r\n\r\nIf not, open your project in Xcode and create an empty Swift file.\r\n\r\nXcode will ask if you wish to create the bridging header file, please choose yes.\r\n\r\nFor more information check [Create Objective-C bridging header file](https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_objective-c_into_swift).\r\n\r\n2.) Replace the following code in AppDelegate.m (ONLY required for mode 1. If you're using mode 2, skip this step):\r\n\r\n```objective-c\r\nUIViewController *rootViewController = [UIViewController new];\r\nrootViewController.view = rootView;\r\nself.window.rootViewController = rootViewController;\r\n```\r\n\r\nwith this one\r\n\r\n```objective-c\r\nUIViewController *rootViewController = [UIViewController new];\r\nUINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:rootViewController];\r\nnavigationController.navigationBarHidden = YES;\r\nrootViewController.view = rootView;\r\nself.window.rootViewController = navigationController;\r\n```\r\n\r\nThis will create a navigation controller to be able to navigate between the Jitsi component and your react native screens.\r\n\r\n3.) Add the following lines to your `Info.plist`\r\n\r\n```xml\r\n<key>NSCameraUsageDescription</key>\r\n<string>Camera Permission</string>\r\n<key>NSMicrophoneUsageDescription</key>\r\n<string>Microphone Permission</string>\r\n<key>NSCalendarUsageDescription</key>\r\n<string>Calendar Permission</string>\r\n```\r\n\r\n4.) Modify your platform version in Podfile and Xcode to have platform version `12.0` or above.\r\n\r\n![](https://firebasestorage.googleapis.com/v0/b/react-native-jitsi-meet.appspot.com/o/Captura%20de%20Tela%202021-12-16%20a%CC%80s%2016.44.57.png?alt=media&token=c653bdbb-f08b-4e6a-a571-0f0894a12997)\r\n\r\n![](https://firebasestorage.googleapis.com/v0/b/react-native-jitsi-meet.appspot.com/o/Captura%20de%20Tela%202021-12-16%20a%CC%80s%2016.45.25.png?alt=media&token=d97bfa72-d583-4046-88fd-a3d1c290834d)\r\n\r\n5.) In Xcode, under `Build settings` set `Enable Bitcode` to `No` and `Always Embed Swift Standard Libraries` to `Yes`.\r\n\r\n6.) In Xcode, under `Signing & Capabilities` add the capability `Background Modes` and check `Voice over IP`. Otherwise, it won't work well in background.\r\n\r\n7.) Clean your project and run `npx pod-install`.\r\n\r\n## Android install\r\n\r\n1.) In `android/app/build.gradle`, add/replace the following lines:\r\n\r\n```groovy\r\nproject.ext.react = [\r\n    entryFile: \"index.js\",\r\n    bundleAssetName: \"app.bundle\",\r\n    ...\r\n]\r\n```\r\n\r\n2.) In `android/app/src/main/java/com/xxx/MainApplication.java` add/replace the following methods:\r\n\r\n```java\r\n  import androidx.annotation.Nullable; // <--- Add this line if not already existing\r\n  ...\r\n    @Override\r\n    protected String getJSMainModuleName() {\r\n      return \"index\";\r\n    }\r\n\r\n    @Override\r\n    protected @Nullable String getBundleAssetName() {\r\n      return \"app.bundle\";\r\n    }\r\n```\r\n\r\n3.) In `android/build.gradle`, add the following code\r\n\r\n```groovy\r\nallprojects {\r\n    repositories {\r\n        mavenLocal()\r\n        jcenter()\r\n        maven {\r\n            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm\r\n            url \"$rootDir/../node_modules/react-native/android\"\r\n        }\r\n        maven {\r\n            url \"https://maven.google.com\"\r\n        }\r\n        maven { // <---- Add this block\r\n            url \"https://github.com/jitsi/jitsi-maven-repository/raw/master/releases\"\r\n        }\r\n        maven { url \"https://jitpack.io\" }\r\n    }\r\n}\r\n```\r\n\r\n4.) In the `<application>` section of `android/app/src/main/AndroidManifest.xml`, add (ONLY required for mode 1. If you're using mode 2, skip this step)\r\n\r\n```xml\r\n<activity\r\n    android:configChanges=\"keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize\"\r\n    android:launchMode=\"singleTask\"\r\n    android:resizeableActivity=\"true\"\r\n    android:supportsPictureInPicture=\"true\"\r\n    android:windowSoftInputMode=\"adjustResize\"\r\n    android:name=\"com.reactnativejitsimeet.JitsiMeetActivityExtended\">\r\n</activity>\r\n```\r\n\r\n5.) And set your minSdkVersion to be at least 24.\r\n\r\n```groovy\r\nbuildscript {\r\n    ext {\r\n        buildToolsVersion = \"29.0.3\"\r\n        minSdkVersion = 24 // <-- this line\r\n        compileSdkVersion = 29\r\n        targetSdkVersion = 29\r\n        ndkVersion = \"20.1.5948944\"\r\n    }\r\n    ...\r\n}\r\n```\r\n\r\n6.) Remove allow back up from Androidmanifest.xml\r\n\r\n```xml\r\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n  package=\"com.sdktest\">\r\n\r\n    <uses-permission android:name=\"android.permission.INTERNET\" />\r\n\r\n    <application\r\n      android:name=\".MainApplication\"\r\n      android:label=\"@string/app_name\"\r\n      android:icon=\"@mipmap/ic_launcher\"\r\n      android:roundIcon=\"@mipmap/ic_launcher_round\"\r\n      android:allowBackup=\"false\" <-- this line\r\n      android:theme=\"@style/AppTheme\">\r\n      <activity\r\n        android:name=\".MainActivity\"\r\n        android:label=\"@string/app_name\"\r\n        android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|uiMode\"\r\n        android:launchMode=\"singleTask\"\r\n        android:windowSoftInputMode=\"adjustResize\">\r\n        <intent-filter>\r\n            <action android:name=\"android.intent.action.MAIN\" />\r\n            <category android:name=\"android.intent.category.LAUNCHER\" />\r\n        </intent-filter>\r\n      </activity>\r\n    </application>\r\n</manifest>\r\n```\r\n\r\n## Meeting Options\r\n\r\n| key          | Data type | Default             | Description                                                                                                     |\r\n| ------------ | --------- | ------------------- | --------------------------------------------------------------------------------------------------------------- |\r\n| room         | string    | required            | Room name for Jitsi Meet                                                                                        |\r\n| serverUrl    | string    | https://meet.jit.si | Valid server URL                                                                                                |\r\n| token        | string    | \"\"                  | JWT token                                                                                                       |\r\n| subject      | string    | \"\"                  | Conference subject (will change the global subject for all participants)                                        |\r\n| audioOnly    | boolean   | false               | Controls whether the participant will join the conference in audio-only mode (no video is sent or recieved)     |\r\n| audioMuted   | boolean   | false               | Controls whether the participant will join the conference with the microphone muted                             |\r\n| videoMuted   | boolean   | false               | Controls whether the participant will join the conference with the camera muted                                 |\r\n| userInfo     | object    | {}                  | Object that contains information about the participant starting the meeting. See [UserInfo](#userinfo)          |\r\n| featureFlags | object    | {}                  | Object that contains information about which feature flags should be set. See below for more info.              |\r\n\r\n### Broadcast Actions - (Android only for the moment)\r\nSee the [Jitsi Docs](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk/#broadcasting-actions).\r\n\r\nFor examples on how to set feature flags, see the [usage example](#usage) above.\r\n\r\n| Key          | Value | Default             | Description                                                                                                     |\r\n| ------------ | --------- | ------------------- | --------------------------------------------------------------------------------------------------------------- |\r\n| SET_AUDIO_MUTED         | Object: { muted: boolean }    | false            | Sets the state of the localParticipant audio muted according to the  `muted`  parameter. Expects a  `muted`  key on the intent extra with a boolean value.                                                                                   |\r\n| SET_VIDEO_MUTED         | Object: { muted: boolean  }    | false            | Sets the state of the localParticipant audio muted according to the  `muted`  parameter. Expects a  `muted`  key on the intent extra with a boolean value.                                                                                   |\r\n| HANG_UP         | null   | -            | The localParticipant leaves the current conference. Expect null value.                                                                 |\r\n| SEND_ENDPOINT_TEXT_MESSAGE         | Object: { to?: ParticipantId; message: string; }    | false            | Sends a message via the data channel to one particular participant or to all of them. Expects a  `to`  key on the intent extra with the id of the participant to which the message is meant and a  `message`  key with a string value, the actual content of the message. If the  `to`  key is not present or it's value is empty, the message will be sent to all the participants in the conference. In order to get the participantId, the  `PARTICIPANT_JOINED`  event should be listened for, which  `data`  includes the id and this should be stored somehow.                                                                             |\r\n| TOGGLE_SCREEN_SHARE         | Object: { enabled: boolean  }    | false            | Sets the state of the localParticipant screen share according to the  `enabled`  parameter. Expects a  `enabled`  key on the intent extra with a boolean value.                                                                                  |\r\n| RETRIEVE_PARTICIPANTS_INFO         | Object: { requestId: string  }    | false            | Signals the SDK to retrieve a list with the participants information. The SDK will emit a PARTICIPANTS_INFO_RETRIEVED event. Expects a  `requestId`  key on the intent extra with a string value, this parameter will be present on the PARTICIPANTS_INFO_RETRIEVED event.                                                                                  |\r\n| OPEN_CHAT         | Object: { to: ParticipantId  }    | {}            | Opens the chat dialog. If a `to` key is present with a valid participantId, the private chat for that particular participant will be opened.                                                                                  |\r\n| CLOSE_CHAT         | null   | -            | Closes the chat dialog. Expect null value.                                                  |\r\n\r\n\r\n## User Info\r\n\r\n| key         | Data type | Default | Description              |\r\n| ----------- | --------- | ------- | ------------------------ |\r\n| displayName | string    | \"\"      | Participant's name       |\r\n| email       | string    | \"\"      | Participant's e-mail     |\r\n| avatar      | string    | \"\"      | Participant's avatar URL |\r\n\r\n## Screen Sharing\r\n\r\nIt is already enabled by default on Android.\r\n\r\nOn iOS it requires a few extra steps. Set the flag `screenSharingEnabled` to true and follow this tutorial [Screen Sharing iOS](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-ios-sdk#screen-sharing-integration) to get it working.\r\n\r\n## Instructions to run the example app\r\n\r\n1.) Clone this project\r\n\r\n```bash\r\ngit clone https://github.com/vidit-me/react-native-jitsi-meet.git\r\n```\r\n\r\n2.) Navigate to the project folder\r\n\r\n```bash\r\ncd react-native-jitsi-meet\r\n```\r\n\r\n3.) Install dependencies\r\n\r\n```bash\r\nyarn\r\n```\r\n\r\n4.) Run app\r\n\r\n```bash\r\nyarn example ios\r\n\r\nor\r\n\r\nyarn example android\r\n```\r\n\r\n## Troubleshooting\r\n\r\nAndroid - If your having problems with `duplicate_classes` errors, try exclude them from the react-native-jitsi-meet project implementation with the following code:\r\n\r\n```groovy\r\nimplementation(project(':vidit-me_react-native-jitsi-meet')) {\r\n  // Un-comment below if using hermes\r\n  exclude group: 'com.facebook',module:'hermes'\r\n  // Un-comment any packages below that you have added to your project to prevent `duplicate_classes` errors\r\n  exclude group: 'com.facebook.react',module:'react-native-locale-detector'\r\n  exclude group: 'com.facebook.react',module:'react-native-vector-icons'\r\n  // exclude group: 'com.facebook.react',module:'react-native-community-async-storage'\r\n  // exclude group: 'com.facebook.react',module:'react-native-community_netinfo'\r\n  // exclude group: 'com.facebook.react',module:'react-native-svg'\r\n  // exclude group: 'com.facebook.react',module:'react-native-fetch-blob'\r\n  // exclude group: 'com.facebook.react',module:'react-native-webview'\r\n  // exclude group: 'com.facebook.react',module:'react-native-linear-gradient'\r\n  // exclude group: 'com.facebook.react',module:'react-native-sound'\r\n}\r\n```\r\n\r\n-  Another problem is with the react-native-reanimated v2, for the moment the main Jitsi SDK doesn't support this version.\r\n\r\n## TODO\r\n1. IOS broadcast actions support\r\n2. Add invoke feature to broadcast actions.\r\n3. Update example project\r\n\r\n","readmeFilename":"README.md"}