@cloudflare/realtimekit-react-native 1.1.0-staging.0 → 1.2.0-staging.0
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.
- package/README.md +2 -2
- package/lib/commonjs/ReactContext.js +33 -33
- package/lib/commonjs/ReactContext.js.map +1 -1
- package/lib/commonjs/ReactHooks.js +44 -6
- package/lib/commonjs/ReactHooks.js.map +1 -1
- package/lib/commonjs/utils/version.js +1 -1
- package/lib/commonjs/utils/version.js.map +1 -1
- package/lib/module/ReactContext.js +33 -33
- package/lib/module/ReactContext.js.map +1 -1
- package/lib/module/ReactHooks.js +45 -8
- package/lib/module/ReactHooks.js.map +1 -1
- package/lib/module/utils/version.js +1 -1
- package/lib/module/utils/version.js.map +1 -1
- package/lib/typescript/ReactHooks.d.ts +4 -1
- package/lib/typescript/utils/version.d.ts +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -74,7 +74,7 @@ export default function App() {
|
|
|
74
74
|
});
|
|
75
75
|
};
|
|
76
76
|
init();
|
|
77
|
-
if (meeting) meeting.
|
|
77
|
+
if (meeting) meeting.join();
|
|
78
78
|
}, []);
|
|
79
79
|
|
|
80
80
|
if (meeting)
|
|
@@ -90,7 +90,7 @@ export default function App() {
|
|
|
90
90
|
The `meeting` object is used for all interaction with Cloudflare's servers. For example, the following code snippet is used for a user to join a room.
|
|
91
91
|
|
|
92
92
|
```ts
|
|
93
|
-
await meeting.
|
|
93
|
+
await meeting.join();
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
_For more examples, please refer to the [Documentation](https://docs.realtime.cloudflare.com/rn-core)._
|
|
@@ -13,40 +13,45 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
13
13
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // @ts-nocheck
|
|
14
14
|
class RealtimeKitUpdates {
|
|
15
15
|
constructor(meeting) {
|
|
16
|
-
var _this$meeting$self, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$
|
|
16
|
+
var _this$meeting$self, _this$meeting$connect, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$recordi, _this$meeting$stage, _this$meeting$livestr;
|
|
17
17
|
_defineProperty(this, "meeting", void 0);
|
|
18
18
|
_defineProperty(this, "l", void 0);
|
|
19
|
+
_defineProperty(this, "update", () => {
|
|
20
|
+
this.l.forEach(l => {
|
|
21
|
+
l();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
19
24
|
this.meeting = meeting;
|
|
20
25
|
this.l = new Set();
|
|
21
|
-
(_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update
|
|
22
|
-
(_this$meeting$
|
|
23
|
-
(_this$meeting$
|
|
24
|
-
(_this$meeting$
|
|
25
|
-
(_this$meeting$
|
|
26
|
-
(_this$meeting$
|
|
27
|
-
(_this$meeting$
|
|
28
|
-
(_this$meeting$
|
|
29
|
-
(_this$meeting$
|
|
30
|
-
(_this$meeting$
|
|
31
|
-
(_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update
|
|
32
|
-
(_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update
|
|
33
|
-
(_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update
|
|
26
|
+
(_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update);
|
|
27
|
+
(_this$meeting$connect = this.meeting.connectedMeetings) === null || _this$meeting$connect === void 0 || _this$meeting$connect.addListener('*', this.update);
|
|
28
|
+
(_this$meeting$meta = this.meeting.meta) === null || _this$meeting$meta === void 0 || _this$meeting$meta.addListener('*', this.update);
|
|
29
|
+
(_this$meeting$partici = this.meeting.participants) === null || _this$meeting$partici === void 0 || _this$meeting$partici.addListener('*', this.update);
|
|
30
|
+
(_this$meeting$partici2 = this.meeting.participants) === null || _this$meeting$partici2 === void 0 || (_this$meeting$partici2 = _this$meeting$partici2.joined) === null || _this$meeting$partici2 === void 0 || _this$meeting$partici2.addListener('*', this.update);
|
|
31
|
+
(_this$meeting$partici3 = this.meeting.participants) === null || _this$meeting$partici3 === void 0 || (_this$meeting$partici3 = _this$meeting$partici3.active) === null || _this$meeting$partici3 === void 0 || _this$meeting$partici3.addListener('*', this.update);
|
|
32
|
+
(_this$meeting$partici4 = this.meeting.participants) === null || _this$meeting$partici4 === void 0 || (_this$meeting$partici4 = _this$meeting$partici4.waitlisted) === null || _this$meeting$partici4 === void 0 || _this$meeting$partici4.addListener('*', this.update);
|
|
33
|
+
(_this$meeting$chat = this.meeting.chat) === null || _this$meeting$chat === void 0 || _this$meeting$chat.addListener('*', this.update);
|
|
34
|
+
(_this$meeting$polls = this.meeting.polls) === null || _this$meeting$polls === void 0 || _this$meeting$polls.addListener('*', this.update);
|
|
35
|
+
(_this$meeting$plugins = this.meeting.plugins) === null || _this$meeting$plugins === void 0 || (_this$meeting$plugins = _this$meeting$plugins.all) === null || _this$meeting$plugins === void 0 || _this$meeting$plugins.addListener('*', this.update);
|
|
36
|
+
(_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update);
|
|
37
|
+
(_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update);
|
|
38
|
+
(_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update);
|
|
34
39
|
}
|
|
35
40
|
clean() {
|
|
36
|
-
var _this$meeting$self2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$
|
|
37
|
-
(_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update
|
|
38
|
-
(_this$meeting$
|
|
39
|
-
(_this$meeting$
|
|
40
|
-
(_this$meeting$
|
|
41
|
-
(_this$meeting$
|
|
42
|
-
(_this$meeting$
|
|
43
|
-
(_this$meeting$
|
|
44
|
-
(_this$meeting$
|
|
45
|
-
(_this$meeting$
|
|
46
|
-
(_this$meeting$
|
|
47
|
-
(_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update
|
|
48
|
-
(_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update
|
|
49
|
-
(_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update
|
|
41
|
+
var _this$meeting$self2, _this$meeting$connect2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$plugins2, _this$meeting$recordi2, _this$meeting$stage2, _this$meeting$livestr2;
|
|
42
|
+
(_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update);
|
|
43
|
+
(_this$meeting$connect2 = this.meeting.connectedMeetings) === null || _this$meeting$connect2 === void 0 || _this$meeting$connect2.removeListener('*', this.update);
|
|
44
|
+
(_this$meeting$meta2 = this.meeting.meta) === null || _this$meeting$meta2 === void 0 || _this$meeting$meta2.removeListener('*', this.update);
|
|
45
|
+
(_this$meeting$partici5 = this.meeting.participants) === null || _this$meeting$partici5 === void 0 || _this$meeting$partici5.removeListener('*', this.update);
|
|
46
|
+
(_this$meeting$partici6 = this.meeting.participants) === null || _this$meeting$partici6 === void 0 || (_this$meeting$partici6 = _this$meeting$partici6.joined) === null || _this$meeting$partici6 === void 0 || _this$meeting$partici6.removeListener('*', this.update);
|
|
47
|
+
(_this$meeting$partici7 = this.meeting.participants) === null || _this$meeting$partici7 === void 0 || (_this$meeting$partici7 = _this$meeting$partici7.active) === null || _this$meeting$partici7 === void 0 || _this$meeting$partici7.removeListener('*', this.update);
|
|
48
|
+
(_this$meeting$partici8 = this.meeting.participants) === null || _this$meeting$partici8 === void 0 || (_this$meeting$partici8 = _this$meeting$partici8.waitlisted) === null || _this$meeting$partici8 === void 0 || _this$meeting$partici8.removeListener('*', this.update);
|
|
49
|
+
(_this$meeting$chat2 = this.meeting.chat) === null || _this$meeting$chat2 === void 0 || _this$meeting$chat2.removeListener('*', this.update);
|
|
50
|
+
(_this$meeting$polls2 = this.meeting.polls) === null || _this$meeting$polls2 === void 0 || _this$meeting$polls2.removeListener('*', this.update);
|
|
51
|
+
(_this$meeting$plugins2 = this.meeting.plugins) === null || _this$meeting$plugins2 === void 0 || (_this$meeting$plugins2 = _this$meeting$plugins2.all) === null || _this$meeting$plugins2 === void 0 || _this$meeting$plugins2.removeListener('*', this.update);
|
|
52
|
+
(_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update);
|
|
53
|
+
(_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update);
|
|
54
|
+
(_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update);
|
|
50
55
|
}
|
|
51
56
|
addListener(listener) {
|
|
52
57
|
this.l.add(listener);
|
|
@@ -54,11 +59,6 @@ class RealtimeKitUpdates {
|
|
|
54
59
|
removeListener(listener) {
|
|
55
60
|
this.l.delete(listener);
|
|
56
61
|
}
|
|
57
|
-
update() {
|
|
58
|
-
this.l.forEach(l => {
|
|
59
|
-
l();
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
62
|
}
|
|
63
63
|
const RealtimeKitContext = exports.RealtimeKitContext = /*#__PURE__*/(0, _react.createContext)({
|
|
64
64
|
meeting: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$plugins2","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","l","Set","self","addListener","update","bind","meta","participants","joined","active","pinned","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins3","_this$meeting$plugins4","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","forEach","RealtimeKitContext","exports","createContext","undefined","updates","RealtimeKitProvider","children","fallback","setUpdates","useState","updatesRef","useRef","useEffect","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","useContext","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update.bind(this));\n this.meeting.meta?.addListener('*', this.update.bind(this));\n this.meeting.participants?.addListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.addListener('*', this.update.bind(this));\n this.meeting.participants?.active?.addListener('*', this.update.bind(this));\n this.meeting.participants?.pinned?.addListener('*', this.update.bind(this));\n this.meeting.chat?.addListener('*', this.update.bind(this));\n this.meeting.polls?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.addListener('*', this.update.bind(this));\n this.meeting.recording?.addListener('*', this.update.bind(this));\n this.meeting.stage?.addListener('*', this.update.bind(this));\n this.meeting.livestream?.addListener('*', this.update.bind(this));\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update.bind(this));\n this.meeting.meta?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.active?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.pinned?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.chat?.removeListener('*', this.update.bind(this));\n this.meeting.polls?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.removeListener('*', this.update.bind(this));\n this.meeting.recording?.removeListener('*', this.update.bind(this));\n this.meeting.stage?.removeListener('*', this.update.bind(this));\n this.meeting.livestream?.removeListener('*', this.update.bind(this));\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update() {\n this.l.forEach((l) => {\n l();\n });\n }\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$connect","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","l","forEach","Set","self","addListener","update","connectedMeetings","meta","participants","joined","active","waitlisted","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$connect2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins2","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","RealtimeKitContext","exports","createContext","undefined","updates","RealtimeKitProvider","children","fallback","setUpdates","useState","updatesRef","useRef","useEffect","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","useContext","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update);\n this.meeting.connectedMeetings?.addListener('*', this.update);\n this.meeting.meta?.addListener('*', this.update);\n this.meeting.participants?.addListener('*', this.update);\n this.meeting.participants?.joined?.addListener('*', this.update);\n this.meeting.participants?.active?.addListener('*', this.update);\n this.meeting.participants?.waitlisted?.addListener('*', this.update);\n this.meeting.chat?.addListener('*', this.update);\n this.meeting.polls?.addListener('*', this.update);\n this.meeting.plugins?.all?.addListener('*', this.update);\n this.meeting.recording?.addListener('*', this.update);\n this.meeting.stage?.addListener('*', this.update);\n this.meeting.livestream?.addListener('*', this.update);\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update);\n this.meeting.connectedMeetings?.removeListener('*', this.update);\n this.meeting.meta?.removeListener('*', this.update);\n this.meeting.participants?.removeListener('*', this.update);\n this.meeting.participants?.joined?.removeListener('*', this.update);\n this.meeting.participants?.active?.removeListener('*', this.update);\n this.meeting.participants?.waitlisted?.removeListener('*', this.update);\n this.meeting.chat?.removeListener('*', this.update);\n this.meeting.polls?.removeListener('*', this.update);\n this.meeting.plugins?.all?.removeListener('*', this.update);\n this.meeting.recording?.removeListener('*', this.update);\n this.meeting.stage?.removeListener('*', this.update);\n this.meeting.livestream?.removeListener('*', this.update);\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update = () => {\n this.l.forEach((l) => {\n l();\n });\n };\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,14 +32,52 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
32
32
|
/**
|
|
33
33
|
* Hook which manages a RealtimeKitClient instance
|
|
34
34
|
*/
|
|
35
|
-
const useRealtimeKitClient =
|
|
35
|
+
const useRealtimeKitClient = clientParams => {
|
|
36
|
+
const isRunning = (0, _react.useRef)(false);
|
|
36
37
|
const [client, setClient] = (0, _react.useState)();
|
|
37
|
-
const
|
|
38
|
+
const resetOnLeave = clientParams === null || clientParams === void 0 ? void 0 : clientParams.resetOnLeave;
|
|
39
|
+
const initClient = (0, _react.useCallback)(async options => {
|
|
40
|
+
if (isRunning.current) return undefined;
|
|
41
|
+
isRunning.current = true;
|
|
38
42
|
cleanUpEvents();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
return _realtimekit.default.init(options).then(meeting => {
|
|
44
|
+
setClient(meeting);
|
|
45
|
+
return meeting;
|
|
46
|
+
}).finally(() => {
|
|
47
|
+
isRunning.current = false;
|
|
48
|
+
});
|
|
49
|
+
}, []);
|
|
50
|
+
(0, _react.useEffect)(() => {
|
|
51
|
+
if (!client || !resetOnLeave) return () => {};
|
|
52
|
+
const onLeave = ({
|
|
53
|
+
state
|
|
54
|
+
}) => {
|
|
55
|
+
if (state !== 'connected-meeting' && state !== 'disconnected') {
|
|
56
|
+
setClient(undefined);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
client.self.on('roomLeft', onLeave);
|
|
60
|
+
return () => {
|
|
61
|
+
client.self.removeListener('roomLeft', onLeave);
|
|
62
|
+
};
|
|
63
|
+
}, [client, resetOnLeave]);
|
|
64
|
+
(0, _react.useEffect)(() => {
|
|
65
|
+
if (!client || !client.connectedMeetings) return () => {};
|
|
66
|
+
const onMeetingChanged = newClient => {
|
|
67
|
+
// NOTE: do NOT clear this timeout in the effect cleanup. `setClient(
|
|
68
|
+
// undefined)` re-runs this effect (client is a dependency) and its
|
|
69
|
+
// cleanup fires *before* the timeout — clearing it would drop the new
|
|
70
|
+
// client and leave the UI stuck on the loading screen.
|
|
71
|
+
setClient(undefined);
|
|
72
|
+
setTimeout(() => {
|
|
73
|
+
setClient(newClient);
|
|
74
|
+
}, 100);
|
|
75
|
+
};
|
|
76
|
+
client.connectedMeetings.on('meetingChanged', onMeetingChanged);
|
|
77
|
+
return () => {
|
|
78
|
+
client.connectedMeetings.removeListener('meetingChanged', onMeetingChanged);
|
|
79
|
+
};
|
|
80
|
+
}, [client]);
|
|
43
81
|
return [client, initClient];
|
|
44
82
|
};
|
|
45
83
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_realtimekit","_interopRequireDefault","_ReactContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BackgroundHandler","_AudioSampleHandler","_LocalMediaUtils","_LocalMediaHandler","e","__esModule","default","useRealtimeKitClient","client","setClient","useState","initClient","options","cleanUpEvents","cli","RealtimeKitClient","init","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","meeting","updates","useContext","RealtimeKitContext","Error","state","useRef","forceUpdate","useReducer","c","useEffect","currentState","listener","newStateSlice","current","addListener","removeListener","RTKHelper","NativeModules","webRTCModuleEmitter","removeAllListeners","deviceChangeListener","BackgroundTimer","stop","Platform","OS","isForegroundServiceRunning","then","val","stopService","broadcastEmitter","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useReducer, useContext } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, { RTKClientOptions } from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient>\n] => {\n const [client, setClient] = useState<RealtimeKitClient>();\n const initClient = async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient> => {\n cleanUpEvents();\n const cli = await RealtimeKitClient.init(options);\n setClient(cli);\n return cli;\n };\n return [client, initClient];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n const { RTKHelper } = NativeModules;\n\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n RTKHelper.isForegroundServiceRunning().then((val) => {\n if (val) {\n RTKHelper.stopService();\n }\n });\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_realtimekit","_interopRequireDefault","_ReactContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BackgroundHandler","_AudioSampleHandler","_LocalMediaUtils","_LocalMediaHandler","e","__esModule","default","useRealtimeKitClient","clientParams","isRunning","useRef","client","setClient","useState","resetOnLeave","initClient","useCallback","options","current","undefined","cleanUpEvents","RealtimeKitClient","init","then","meeting","finally","useEffect","onLeave","state","self","on","removeListener","connectedMeetings","onMeetingChanged","newClient","setTimeout","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","updates","useContext","RealtimeKitContext","Error","forceUpdate","useReducer","c","currentState","listener","newStateSlice","addListener","RTKHelper","NativeModules","webRTCModuleEmitter","removeAllListeners","deviceChangeListener","BackgroundTimer","stop","Platform","OS","isForegroundServiceRunning","val","stopService","broadcastEmitter","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import {\n useState,\n useEffect,\n useRef,\n useReducer,\n useContext,\n useCallback,\n} from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, {\n RTKClientOptions,\n LeaveRoomState,\n} from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\n\ninterface RealtimeKitClientParams {\n resetOnLeave?: boolean;\n}\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (\n clientParams?: RealtimeKitClientParams\n): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n] => {\n const isRunning = useRef(false);\n const [client, setClient] = useState<RealtimeKitClient>();\n const resetOnLeave = clientParams?.resetOnLeave;\n\n const initClient = useCallback(\n async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient | undefined> => {\n if (isRunning.current) return undefined;\n isRunning.current = true;\n cleanUpEvents();\n return RealtimeKitClient.init(options)\n .then((meeting: RealtimeKitClient) => {\n setClient(meeting);\n return meeting;\n })\n .finally(() => {\n isRunning.current = false;\n });\n },\n []\n );\n\n useEffect(() => {\n if (!client || !resetOnLeave) return () => {};\n const onLeave = ({ state }: { state: LeaveRoomState }) => {\n if (state !== 'connected-meeting' && state !== 'disconnected') {\n setClient(undefined);\n }\n };\n\n client.self.on('roomLeft', onLeave);\n return () => {\n client.self.removeListener('roomLeft', onLeave);\n };\n }, [client, resetOnLeave]);\n\n useEffect(() => {\n if (!client || !client.connectedMeetings) return () => {};\n const onMeetingChanged = (newClient: RealtimeKitClient) => {\n // NOTE: do NOT clear this timeout in the effect cleanup. `setClient(\n // undefined)` re-runs this effect (client is a dependency) and its\n // cleanup fires *before* the timeout — clearing it would drop the new\n // client and leave the UI stuck on the loading screen.\n setClient(undefined);\n setTimeout(() => {\n setClient(newClient);\n }, 100);\n };\n client.connectedMeetings.on('meetingChanged', onMeetingChanged);\n return () => {\n client.connectedMeetings.removeListener(\n 'meetingChanged',\n onMeetingChanged\n );\n };\n }, [client]);\n\n return [client, initClient] as [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n ];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n const { RTKHelper } = NativeModules;\n\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n RTKHelper.isForegroundServiceRunning().then((val) => {\n if (val) {\n RTKHelper.stopService();\n }\n });\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AAIA,IAAAI,aAAA,GAAAJ,OAAA;AAgLAK,MAAA,CAAAC,IAAA,CAAAF,aAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,aAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,aAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AA/KA,IAAAS,kBAAA,GAAAd,sBAAA,CAAAH,OAAA;AACA,IAAAkB,mBAAA,GAAAlB,OAAA;AACA,IAAAmB,gBAAA,GAAAnB,OAAA;AACA,IAAAoB,kBAAA,GAAApB,OAAA;AAAuD,SAAAG,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMvD;AACA;AACA;AACO,MAAMG,oBAAoB,GAC/BC,YAAsC,IAInC;EACH,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAC/B,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAoB,CAAC;EACzD,MAAMC,YAAY,GAAGN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEM,YAAY;EAE/C,MAAMC,UAAU,GAAG,IAAAC,kBAAW,EAC5B,MACEC,OAAyB,IACkB;IAC3C,IAAIR,SAAS,CAACS,OAAO,EAAE,OAAOC,SAAS;IACvCV,SAAS,CAACS,OAAO,GAAG,IAAI;IACxBE,aAAa,CAAC,CAAC;IACf,OAAOC,oBAAiB,CAACC,IAAI,CAACL,OAAO,CAAC,CACnCM,IAAI,CAAEC,OAA0B,IAAK;MACpCZ,SAAS,CAACY,OAAO,CAAC;MAClB,OAAOA,OAAO;IAChB,CAAC,CAAC,CACDC,OAAO,CAAC,MAAM;MACbhB,SAAS,CAACS,OAAO,GAAG,KAAK;IAC3B,CAAC,CAAC;EACN,CAAC,EACD,EACF,CAAC;EAED,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAI,CAACf,MAAM,IAAI,CAACG,YAAY,EAAE,OAAO,MAAM,CAAC,CAAC;IAC7C,MAAMa,OAAO,GAAGA,CAAC;MAAEC;IAAiC,CAAC,KAAK;MACxD,IAAIA,KAAK,KAAK,mBAAmB,IAAIA,KAAK,KAAK,cAAc,EAAE;QAC7DhB,SAAS,CAACO,SAAS,CAAC;MACtB;IACF,CAAC;IAEDR,MAAM,CAACkB,IAAI,CAACC,EAAE,CAAC,UAAU,EAAEH,OAAO,CAAC;IACnC,OAAO,MAAM;MACXhB,MAAM,CAACkB,IAAI,CAACE,cAAc,CAAC,UAAU,EAAEJ,OAAO,CAAC;IACjD,CAAC;EACH,CAAC,EAAE,CAAChB,MAAM,EAAEG,YAAY,CAAC,CAAC;EAE1B,IAAAY,gBAAS,EAAC,MAAM;IACd,IAAI,CAACf,MAAM,IAAI,CAACA,MAAM,CAACqB,iBAAiB,EAAE,OAAO,MAAM,CAAC,CAAC;IACzD,MAAMC,gBAAgB,GAAIC,SAA4B,IAAK;MACzD;MACA;MACA;MACA;MACAtB,SAAS,CAACO,SAAS,CAAC;MACpBgB,UAAU,CAAC,MAAM;QACfvB,SAAS,CAACsB,SAAS,CAAC;MACtB,CAAC,EAAE,GAAG,CAAC;IACT,CAAC;IACDvB,MAAM,CAACqB,iBAAiB,CAACF,EAAE,CAAC,gBAAgB,EAAEG,gBAAgB,CAAC;IAC/D,OAAO,MAAM;MACXtB,MAAM,CAACqB,iBAAiB,CAACD,cAAc,CACrC,gBAAgB,EAChBE,gBACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACtB,MAAM,CAAC,CAAC;EAEZ,OAAO,CAACA,MAAM,EAAEI,UAAU,CAAC;AAI7B,CAAC;;AAED;AACA;AACA;AAFAnB,OAAA,CAAAW,oBAAA,GAAAA,oBAAA;AAGA,MAAM6B,YAAY,GAAGA,CACnBC,KAAiB,EACjBC,QAAoB,KACR;EACZ,IAAID,KAAK,KAAKC,QAAQ,EAAE;IACtB,OAAO,IAAI;EACb;EACA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IAAIE,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IACnD,IAAID,KAAK,CAACI,MAAM,KAAKH,QAAQ,CAACG,MAAM,EAAE;MACpC,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAID;AACA;AACA;AACA;AACO,MAAMC,cAAc,GACzBC,QAAsD,IACnD;EACH,OAAOC,sBAAsB,CAACD,QAAQ,CAAC;AACzC,CAAC;;AAED;AACA;AACA;AAFA/C,OAAA,CAAA8C,cAAA,GAAAA,cAAA;AAGO,MAAME,sBAAsB,GACjCD,QAAsD,IACnD;EACH,MAAM;IAAEnB,OAAO;IAAEqB;EAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACC,gCAAkB,CAAC;EAC3D,IAAI,CAACvB,OAAO,EACV,MAAM,IAAIwB,KAAK,CACb,oEACF,CAAC;EACH,MAAMpB,KAAK,GAAG,IAAAlB,aAAM,EAACiC,QAAQ,CAACnB,OAAO,CAAC,CAAC;EACvC,MAAM,GAAGyB,WAAW,CAAC,GAAG,IAAAC,iBAAU,EAAEC,CAAC,IAAKA,CAAC,GAAG,CAAC,EAAE,CAAC,CAAwB;EAE1E,IAAAzB,gBAAS,EAAC,MAAM;IACd,MAAM0B,YAAY,GAAG5B,OAAO,IAAImB,QAAQ,CAACnB,OAAO,CAAC;IACjD,MAAM6B,QAAQ,GAAGA,CAAA,KAAM;MACrB,MAAMC,aAAa,GAAG9B,OAAO,IAAImB,QAAQ,CAACnB,OAAO,CAAC;MAClD,IAAIY,YAAY,CAACR,KAAK,CAACV,OAAO,EAAEoC,aAAa,CAAC,EAAE;QAC9C1B,KAAK,CAACV,OAAO,GAAGoC,aAAa;QAC7BL,WAAW,CAAC,CAAC;MACf;IACF,CAAC;IACD,IACEG,YAAY,IACZ,OAAOA,YAAY,KAAK,QAAQ,IAChC,aAAa,IAAIA,YAAY,EAC7B;MACCA,YAAY,CAASG,WAAW,CAAC,GAAG,EAAEN,WAAW,CAAC;MACnD,OAAO,MAAM;QACVG,YAAY,CAASrB,cAAc,CAAC,GAAG,EAAEkB,WAAW,CAAC;MACxD,CAAC;IACH;IACAJ,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEU,WAAW,CAACF,QAAQ,CAAC;IAC9B,OAAO,MAAM;MACXR,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEd,cAAc,CAACsB,QAAQ,CAAC;IACnC,CAAC;IACD;EACF,CAAC,EAAE,CAAC7B,OAAO,EAAEqB,OAAO,CAAC,CAAC;EACtB,OAAOjB,KAAK,CAACV,OAAO;AACtB,CAAC;AAACtB,OAAA,CAAAgD,sBAAA,GAAAA,sBAAA;AAEF,SAASxB,aAAaA,CAAA,EAAG;EACvB,MAAM;IAAEoC;EAAU,CAAC,GAAGC,0BAAa;EAEnCC,uCAAmB,CAACC,kBAAkB,CAAC,cAAc,CAAC;EACtDC,qCAAoB,CAACD,kBAAkB,CAAC,sBAAsB,CAAC;EAC/DE,0BAAe,CAACC,IAAI,CAAC,CAAC;EAEtB,IAAI;IACF,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BR,SAAS,CAACS,0BAA0B,CAAC,CAAC,CAAC1C,IAAI,CAAE2C,GAAG,IAAK;QACnD,IAAIA,GAAG,EAAE;UACPV,SAAS,CAACW,WAAW,CAAC,CAAC;QACzB;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACLC,mCAAgB,CAACT,kBAAkB,CAAC,sBAAsB,CAAC;MAC3DS,mCAAgB,CAACT,kBAAkB,CAAC,sBAAsB,CAAC;IAC7D;EACF,CAAC,CAAC,OAAOU,IAAI,EAAE,CAAC;AAClB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDK_VERSION","exports"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.
|
|
1
|
+
{"version":3,"names":["SDK_VERSION","exports"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.2.0';\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
|
|
@@ -5,40 +5,45 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
5
5
|
import React, { createContext, useContext, useEffect, useRef, useState } from 'react';
|
|
6
6
|
class RealtimeKitUpdates {
|
|
7
7
|
constructor(meeting) {
|
|
8
|
-
var _this$meeting$self, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$
|
|
8
|
+
var _this$meeting$self, _this$meeting$connect, _this$meeting$meta, _this$meeting$partici, _this$meeting$partici2, _this$meeting$partici3, _this$meeting$partici4, _this$meeting$chat, _this$meeting$polls, _this$meeting$plugins, _this$meeting$recordi, _this$meeting$stage, _this$meeting$livestr;
|
|
9
9
|
_defineProperty(this, "meeting", void 0);
|
|
10
10
|
_defineProperty(this, "l", void 0);
|
|
11
|
+
_defineProperty(this, "update", () => {
|
|
12
|
+
this.l.forEach(l => {
|
|
13
|
+
l();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
11
16
|
this.meeting = meeting;
|
|
12
17
|
this.l = new Set();
|
|
13
|
-
(_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update
|
|
14
|
-
(_this$meeting$
|
|
15
|
-
(_this$meeting$
|
|
16
|
-
(_this$meeting$
|
|
17
|
-
(_this$meeting$
|
|
18
|
-
(_this$meeting$
|
|
19
|
-
(_this$meeting$
|
|
20
|
-
(_this$meeting$
|
|
21
|
-
(_this$meeting$
|
|
22
|
-
(_this$meeting$
|
|
23
|
-
(_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update
|
|
24
|
-
(_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update
|
|
25
|
-
(_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update
|
|
18
|
+
(_this$meeting$self = this.meeting.self) === null || _this$meeting$self === void 0 || _this$meeting$self.addListener('*', this.update);
|
|
19
|
+
(_this$meeting$connect = this.meeting.connectedMeetings) === null || _this$meeting$connect === void 0 || _this$meeting$connect.addListener('*', this.update);
|
|
20
|
+
(_this$meeting$meta = this.meeting.meta) === null || _this$meeting$meta === void 0 || _this$meeting$meta.addListener('*', this.update);
|
|
21
|
+
(_this$meeting$partici = this.meeting.participants) === null || _this$meeting$partici === void 0 || _this$meeting$partici.addListener('*', this.update);
|
|
22
|
+
(_this$meeting$partici2 = this.meeting.participants) === null || _this$meeting$partici2 === void 0 || (_this$meeting$partici2 = _this$meeting$partici2.joined) === null || _this$meeting$partici2 === void 0 || _this$meeting$partici2.addListener('*', this.update);
|
|
23
|
+
(_this$meeting$partici3 = this.meeting.participants) === null || _this$meeting$partici3 === void 0 || (_this$meeting$partici3 = _this$meeting$partici3.active) === null || _this$meeting$partici3 === void 0 || _this$meeting$partici3.addListener('*', this.update);
|
|
24
|
+
(_this$meeting$partici4 = this.meeting.participants) === null || _this$meeting$partici4 === void 0 || (_this$meeting$partici4 = _this$meeting$partici4.waitlisted) === null || _this$meeting$partici4 === void 0 || _this$meeting$partici4.addListener('*', this.update);
|
|
25
|
+
(_this$meeting$chat = this.meeting.chat) === null || _this$meeting$chat === void 0 || _this$meeting$chat.addListener('*', this.update);
|
|
26
|
+
(_this$meeting$polls = this.meeting.polls) === null || _this$meeting$polls === void 0 || _this$meeting$polls.addListener('*', this.update);
|
|
27
|
+
(_this$meeting$plugins = this.meeting.plugins) === null || _this$meeting$plugins === void 0 || (_this$meeting$plugins = _this$meeting$plugins.all) === null || _this$meeting$plugins === void 0 || _this$meeting$plugins.addListener('*', this.update);
|
|
28
|
+
(_this$meeting$recordi = this.meeting.recording) === null || _this$meeting$recordi === void 0 || _this$meeting$recordi.addListener('*', this.update);
|
|
29
|
+
(_this$meeting$stage = this.meeting.stage) === null || _this$meeting$stage === void 0 || _this$meeting$stage.addListener('*', this.update);
|
|
30
|
+
(_this$meeting$livestr = this.meeting.livestream) === null || _this$meeting$livestr === void 0 || _this$meeting$livestr.addListener('*', this.update);
|
|
26
31
|
}
|
|
27
32
|
clean() {
|
|
28
|
-
var _this$meeting$self2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$
|
|
29
|
-
(_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update
|
|
30
|
-
(_this$meeting$
|
|
31
|
-
(_this$meeting$
|
|
32
|
-
(_this$meeting$
|
|
33
|
-
(_this$meeting$
|
|
34
|
-
(_this$meeting$
|
|
35
|
-
(_this$meeting$
|
|
36
|
-
(_this$meeting$
|
|
37
|
-
(_this$meeting$
|
|
38
|
-
(_this$meeting$
|
|
39
|
-
(_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update
|
|
40
|
-
(_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update
|
|
41
|
-
(_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update
|
|
33
|
+
var _this$meeting$self2, _this$meeting$connect2, _this$meeting$meta2, _this$meeting$partici5, _this$meeting$partici6, _this$meeting$partici7, _this$meeting$partici8, _this$meeting$chat2, _this$meeting$polls2, _this$meeting$plugins2, _this$meeting$recordi2, _this$meeting$stage2, _this$meeting$livestr2;
|
|
34
|
+
(_this$meeting$self2 = this.meeting.self) === null || _this$meeting$self2 === void 0 || _this$meeting$self2.removeListener('*', this.update);
|
|
35
|
+
(_this$meeting$connect2 = this.meeting.connectedMeetings) === null || _this$meeting$connect2 === void 0 || _this$meeting$connect2.removeListener('*', this.update);
|
|
36
|
+
(_this$meeting$meta2 = this.meeting.meta) === null || _this$meeting$meta2 === void 0 || _this$meeting$meta2.removeListener('*', this.update);
|
|
37
|
+
(_this$meeting$partici5 = this.meeting.participants) === null || _this$meeting$partici5 === void 0 || _this$meeting$partici5.removeListener('*', this.update);
|
|
38
|
+
(_this$meeting$partici6 = this.meeting.participants) === null || _this$meeting$partici6 === void 0 || (_this$meeting$partici6 = _this$meeting$partici6.joined) === null || _this$meeting$partici6 === void 0 || _this$meeting$partici6.removeListener('*', this.update);
|
|
39
|
+
(_this$meeting$partici7 = this.meeting.participants) === null || _this$meeting$partici7 === void 0 || (_this$meeting$partici7 = _this$meeting$partici7.active) === null || _this$meeting$partici7 === void 0 || _this$meeting$partici7.removeListener('*', this.update);
|
|
40
|
+
(_this$meeting$partici8 = this.meeting.participants) === null || _this$meeting$partici8 === void 0 || (_this$meeting$partici8 = _this$meeting$partici8.waitlisted) === null || _this$meeting$partici8 === void 0 || _this$meeting$partici8.removeListener('*', this.update);
|
|
41
|
+
(_this$meeting$chat2 = this.meeting.chat) === null || _this$meeting$chat2 === void 0 || _this$meeting$chat2.removeListener('*', this.update);
|
|
42
|
+
(_this$meeting$polls2 = this.meeting.polls) === null || _this$meeting$polls2 === void 0 || _this$meeting$polls2.removeListener('*', this.update);
|
|
43
|
+
(_this$meeting$plugins2 = this.meeting.plugins) === null || _this$meeting$plugins2 === void 0 || (_this$meeting$plugins2 = _this$meeting$plugins2.all) === null || _this$meeting$plugins2 === void 0 || _this$meeting$plugins2.removeListener('*', this.update);
|
|
44
|
+
(_this$meeting$recordi2 = this.meeting.recording) === null || _this$meeting$recordi2 === void 0 || _this$meeting$recordi2.removeListener('*', this.update);
|
|
45
|
+
(_this$meeting$stage2 = this.meeting.stage) === null || _this$meeting$stage2 === void 0 || _this$meeting$stage2.removeListener('*', this.update);
|
|
46
|
+
(_this$meeting$livestr2 = this.meeting.livestream) === null || _this$meeting$livestr2 === void 0 || _this$meeting$livestr2.removeListener('*', this.update);
|
|
42
47
|
}
|
|
43
48
|
addListener(listener) {
|
|
44
49
|
this.l.add(listener);
|
|
@@ -46,11 +51,6 @@ class RealtimeKitUpdates {
|
|
|
46
51
|
removeListener(listener) {
|
|
47
52
|
this.l.delete(listener);
|
|
48
53
|
}
|
|
49
|
-
update() {
|
|
50
|
-
this.l.forEach(l => {
|
|
51
|
-
l();
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
54
|
}
|
|
55
55
|
export const RealtimeKitContext = /*#__PURE__*/createContext({
|
|
56
56
|
meeting: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","useEffect","useRef","useState","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$plugins2","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","_defineProperty","l","Set","self","addListener","update","bind","meta","participants","joined","active","pinned","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins3","_this$meeting$plugins4","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","forEach","RealtimeKitContext","undefined","updates","RealtimeKitProvider","value","children","fallback","setUpdates","updatesRef","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update.bind(this));\n this.meeting.meta?.addListener('*', this.update.bind(this));\n this.meeting.participants?.addListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.addListener('*', this.update.bind(this));\n this.meeting.participants?.active?.addListener('*', this.update.bind(this));\n this.meeting.participants?.pinned?.addListener('*', this.update.bind(this));\n this.meeting.chat?.addListener('*', this.update.bind(this));\n this.meeting.polls?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.addListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.addListener('*', this.update.bind(this));\n this.meeting.recording?.addListener('*', this.update.bind(this));\n this.meeting.stage?.addListener('*', this.update.bind(this));\n this.meeting.livestream?.addListener('*', this.update.bind(this));\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update.bind(this));\n this.meeting.meta?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.removeListener('*', this.update.bind(this));\n this.meeting.participants?.joined?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.active?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.participants?.pinned?.removeListener(\n '*',\n this.update.bind(this)\n );\n this.meeting.chat?.removeListener('*', this.update.bind(this));\n this.meeting.polls?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.all?.removeListener('*', this.update.bind(this));\n this.meeting.plugins?.active?.removeListener('*', this.update.bind(this));\n this.meeting.recording?.removeListener('*', this.update.bind(this));\n this.meeting.stage?.removeListener('*', this.update.bind(this));\n this.meeting.livestream?.removeListener('*', this.update.bind(this));\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update() {\n this.l.forEach((l) => {\n l();\n });\n }\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useEffect","useRef","useState","RealtimeKitUpdates","constructor","meeting","_this$meeting$self","_this$meeting$connect","_this$meeting$meta","_this$meeting$partici","_this$meeting$partici2","_this$meeting$partici3","_this$meeting$partici4","_this$meeting$chat","_this$meeting$polls","_this$meeting$plugins","_this$meeting$recordi","_this$meeting$stage","_this$meeting$livestr","_defineProperty","l","forEach","Set","self","addListener","update","connectedMeetings","meta","participants","joined","active","waitlisted","chat","polls","plugins","all","recording","stage","livestream","clean","_this$meeting$self2","_this$meeting$connect2","_this$meeting$meta2","_this$meeting$partici5","_this$meeting$partici6","_this$meeting$partici7","_this$meeting$partici8","_this$meeting$chat2","_this$meeting$polls2","_this$meeting$plugins2","_this$meeting$recordi2","_this$meeting$stage2","_this$meeting$livestr2","removeListener","listener","add","delete","RealtimeKitContext","undefined","updates","RealtimeKitProvider","value","children","fallback","setUpdates","updatesRef","newUpdate","current","_updatesRef$current","createElement","Provider","useRealtimeKitMeeting","Error"],"sources":["ReactContext.tsx"],"sourcesContent":["// @ts-nocheck\nimport React, {\n createContext,\n useContext,\n ReactChild,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport RealtimeKitClient from '@cloudflare/realtimekit';\n\ntype Listener = () => void;\nclass RealtimeKitUpdates {\n private meeting: RealtimeKitClient;\n\n private l: Set<Listener>;\n\n constructor(meeting: RealtimeKitClient) {\n this.meeting = meeting;\n this.l = new Set();\n this.meeting.self?.addListener('*', this.update);\n this.meeting.connectedMeetings?.addListener('*', this.update);\n this.meeting.meta?.addListener('*', this.update);\n this.meeting.participants?.addListener('*', this.update);\n this.meeting.participants?.joined?.addListener('*', this.update);\n this.meeting.participants?.active?.addListener('*', this.update);\n this.meeting.participants?.waitlisted?.addListener('*', this.update);\n this.meeting.chat?.addListener('*', this.update);\n this.meeting.polls?.addListener('*', this.update);\n this.meeting.plugins?.all?.addListener('*', this.update);\n this.meeting.recording?.addListener('*', this.update);\n this.meeting.stage?.addListener('*', this.update);\n this.meeting.livestream?.addListener('*', this.update);\n }\n\n clean() {\n this.meeting.self?.removeListener('*', this.update);\n this.meeting.connectedMeetings?.removeListener('*', this.update);\n this.meeting.meta?.removeListener('*', this.update);\n this.meeting.participants?.removeListener('*', this.update);\n this.meeting.participants?.joined?.removeListener('*', this.update);\n this.meeting.participants?.active?.removeListener('*', this.update);\n this.meeting.participants?.waitlisted?.removeListener('*', this.update);\n this.meeting.chat?.removeListener('*', this.update);\n this.meeting.polls?.removeListener('*', this.update);\n this.meeting.plugins?.all?.removeListener('*', this.update);\n this.meeting.recording?.removeListener('*', this.update);\n this.meeting.stage?.removeListener('*', this.update);\n this.meeting.livestream?.removeListener('*', this.update);\n }\n\n addListener(listener: Listener) {\n this.l.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.l.delete(listener);\n }\n\n private update = () => {\n this.l.forEach((l) => {\n l();\n });\n };\n}\n\nexport const RealtimeKitContext = createContext<{\n meeting: RealtimeKitClient | undefined;\n updates: RealtimeKitUpdates | undefined;\n}>({\n meeting: undefined,\n updates: undefined,\n});\n\n/**\n * Provider component which makes the RealtimeKitClient object\n * available to nested components\n * @component\n * @param value The RealtimeKitClient instance from `useRealtimeKitClient()`\n * @param renderBeforeLoad The provider will not render children by default\n * until it gets a client object, renderBeforeLoad can be used to override that\n */\nexport function RealtimeKitProvider({\n value,\n children,\n fallback = null,\n}: {\n value: RealtimeKitClient | undefined;\n children: ReactChild | ReactChild[];\n fallback?: ReactChild | ReactChild[];\n}) {\n const [updates, setUpdates] = useState<RealtimeKitUpdates>();\n const updatesRef = useRef<RealtimeKitUpdates>();\n\n useEffect(() => {\n if (value) {\n const newUpdate = new RealtimeKitUpdates(value);\n setUpdates(newUpdate);\n updatesRef.current = newUpdate;\n }\n return () => {\n updatesRef.current?.clean();\n };\n }, [value]);\n\n return (\n <RealtimeKitContext.Provider\n value={{\n meeting: value,\n updates,\n }}\n >\n {value ? children : fallback}\n </RealtimeKitContext.Provider>\n );\n}\n\n/**\n * Hook which returns the reference to the RealtimeKitClient object\n * @returns meeting instance from `useRealtimeKitClient()`\n */\nexport const useRealtimeKitMeeting = () => {\n const { meeting } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitMeeting must be used within the RealtimeKitProvider'\n );\n\n return { meeting };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/ReactHooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useEffect, useRef, useReducer, useContext } from 'react';
|
|
1
|
+
import { useState, useEffect, useRef, useReducer, useContext, useCallback } from 'react';
|
|
2
2
|
import { NativeModules, Platform } from 'react-native';
|
|
3
3
|
import RealtimeKitClient from '@cloudflare/realtimekit';
|
|
4
4
|
import { RealtimeKitContext } from './ReactContext';
|
|
@@ -6,18 +6,55 @@ import BackgroundTimer from './BackgroundHandler';
|
|
|
6
6
|
import { webRTCModuleEmitter } from './AudioSampleHandler';
|
|
7
7
|
import { deviceChangeListener } from './LocalMediaUtils';
|
|
8
8
|
import { broadcastEmitter } from './LocalMediaHandler';
|
|
9
|
-
|
|
10
9
|
/**
|
|
11
10
|
* Hook which manages a RealtimeKitClient instance
|
|
12
11
|
*/
|
|
13
|
-
export const useRealtimeKitClient =
|
|
12
|
+
export const useRealtimeKitClient = clientParams => {
|
|
13
|
+
const isRunning = useRef(false);
|
|
14
14
|
const [client, setClient] = useState();
|
|
15
|
-
const
|
|
15
|
+
const resetOnLeave = clientParams === null || clientParams === void 0 ? void 0 : clientParams.resetOnLeave;
|
|
16
|
+
const initClient = useCallback(async options => {
|
|
17
|
+
if (isRunning.current) return undefined;
|
|
18
|
+
isRunning.current = true;
|
|
16
19
|
cleanUpEvents();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
return RealtimeKitClient.init(options).then(meeting => {
|
|
21
|
+
setClient(meeting);
|
|
22
|
+
return meeting;
|
|
23
|
+
}).finally(() => {
|
|
24
|
+
isRunning.current = false;
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!client || !resetOnLeave) return () => {};
|
|
29
|
+
const onLeave = ({
|
|
30
|
+
state
|
|
31
|
+
}) => {
|
|
32
|
+
if (state !== 'connected-meeting' && state !== 'disconnected') {
|
|
33
|
+
setClient(undefined);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
client.self.on('roomLeft', onLeave);
|
|
37
|
+
return () => {
|
|
38
|
+
client.self.removeListener('roomLeft', onLeave);
|
|
39
|
+
};
|
|
40
|
+
}, [client, resetOnLeave]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!client || !client.connectedMeetings) return () => {};
|
|
43
|
+
const onMeetingChanged = newClient => {
|
|
44
|
+
// NOTE: do NOT clear this timeout in the effect cleanup. `setClient(
|
|
45
|
+
// undefined)` re-runs this effect (client is a dependency) and its
|
|
46
|
+
// cleanup fires *before* the timeout — clearing it would drop the new
|
|
47
|
+
// client and leave the UI stuck on the loading screen.
|
|
48
|
+
setClient(undefined);
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
setClient(newClient);
|
|
51
|
+
}, 100);
|
|
52
|
+
};
|
|
53
|
+
client.connectedMeetings.on('meetingChanged', onMeetingChanged);
|
|
54
|
+
return () => {
|
|
55
|
+
client.connectedMeetings.removeListener('meetingChanged', onMeetingChanged);
|
|
56
|
+
};
|
|
57
|
+
}, [client]);
|
|
21
58
|
return [client, initClient];
|
|
22
59
|
};
|
|
23
60
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useRef","useReducer","useContext","NativeModules","Platform","RealtimeKitClient","RealtimeKitContext","BackgroundTimer","webRTCModuleEmitter","deviceChangeListener","broadcastEmitter","useRealtimeKitClient","client","setClient","initClient","options","cleanUpEvents","cli","init","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","meeting","updates","Error","state","forceUpdate","c","currentState","listener","newStateSlice","current","addListener","removeListener","RTKHelper","removeAllListeners","stop","OS","isForegroundServiceRunning","then","val","stopService","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import { useState, useEffect, useRef, useReducer, useContext } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, { RTKClientOptions } from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient>\n] => {\n const [client, setClient] = useState<RealtimeKitClient>();\n const initClient = async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient> => {\n cleanUpEvents();\n const cli = await RealtimeKitClient.init(options);\n setClient(cli);\n return cli;\n };\n return [client, initClient];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n const { RTKHelper } = NativeModules;\n\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n RTKHelper.isForegroundServiceRunning().then((val) => {\n if (val) {\n RTKHelper.stopService();\n }\n });\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useRef","useReducer","useContext","useCallback","NativeModules","Platform","RealtimeKitClient","RealtimeKitContext","BackgroundTimer","webRTCModuleEmitter","deviceChangeListener","broadcastEmitter","useRealtimeKitClient","clientParams","isRunning","client","setClient","resetOnLeave","initClient","options","current","undefined","cleanUpEvents","init","then","meeting","finally","onLeave","state","self","on","removeListener","connectedMeetings","onMeetingChanged","newClient","setTimeout","shouldUpdate","slice","newSlice","Array","isArray","length","useRTKSelector","selector","useRealtimeKitSelector","updates","Error","forceUpdate","c","currentState","listener","newStateSlice","addListener","RTKHelper","removeAllListeners","stop","OS","isForegroundServiceRunning","val","stopService","_err"],"sources":["ReactHooks.tsx"],"sourcesContent":["import {\n useState,\n useEffect,\n useRef,\n useReducer,\n useContext,\n useCallback,\n} from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport RealtimeKitClient, {\n RTKClientOptions,\n LeaveRoomState,\n} from '@cloudflare/realtimekit';\nimport { RealtimeKitContext } from './ReactContext';\nimport BackgroundTimer from './BackgroundHandler';\nimport { webRTCModuleEmitter } from './AudioSampleHandler';\nimport { deviceChangeListener } from './LocalMediaUtils';\nimport { broadcastEmitter } from './LocalMediaHandler';\n\ninterface RealtimeKitClientParams {\n resetOnLeave?: boolean;\n}\n\n/**\n * Hook which manages a RealtimeKitClient instance\n */\nexport const useRealtimeKitClient = (\n clientParams?: RealtimeKitClientParams\n): [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n] => {\n const isRunning = useRef(false);\n const [client, setClient] = useState<RealtimeKitClient>();\n const resetOnLeave = clientParams?.resetOnLeave;\n\n const initClient = useCallback(\n async (\n options: RTKClientOptions\n ): Promise<RealtimeKitClient | undefined> => {\n if (isRunning.current) return undefined;\n isRunning.current = true;\n cleanUpEvents();\n return RealtimeKitClient.init(options)\n .then((meeting: RealtimeKitClient) => {\n setClient(meeting);\n return meeting;\n })\n .finally(() => {\n isRunning.current = false;\n });\n },\n []\n );\n\n useEffect(() => {\n if (!client || !resetOnLeave) return () => {};\n const onLeave = ({ state }: { state: LeaveRoomState }) => {\n if (state !== 'connected-meeting' && state !== 'disconnected') {\n setClient(undefined);\n }\n };\n\n client.self.on('roomLeft', onLeave);\n return () => {\n client.self.removeListener('roomLeft', onLeave);\n };\n }, [client, resetOnLeave]);\n\n useEffect(() => {\n if (!client || !client.connectedMeetings) return () => {};\n const onMeetingChanged = (newClient: RealtimeKitClient) => {\n // NOTE: do NOT clear this timeout in the effect cleanup. `setClient(\n // undefined)` re-runs this effect (client is a dependency) and its\n // cleanup fires *before* the timeout — clearing it would drop the new\n // client and leave the UI stuck on the loading screen.\n setClient(undefined);\n setTimeout(() => {\n setClient(newClient);\n }, 100);\n };\n client.connectedMeetings.on('meetingChanged', onMeetingChanged);\n return () => {\n client.connectedMeetings.removeListener(\n 'meetingChanged',\n onMeetingChanged\n );\n };\n }, [client]);\n\n return [client, initClient] as [\n RealtimeKitClient | undefined,\n (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>\n ];\n};\n\n/**\n * Utility function which determines whether to trigger update or not\n */\nconst shouldUpdate = <StateSlice,>(\n slice: StateSlice,\n newSlice: StateSlice\n): boolean => {\n if (slice !== newSlice) {\n return true;\n }\n if (Array.isArray(slice) && Array.isArray(newSlice)) {\n if (slice.length !== newSlice.length) {\n return true;\n }\n }\n\n return false;\n};\n\ntype StateSelector<T extends object, U> = (state: T) => U;\n\n/**\n * @deprecated Use `useRealtimeKitSelector` instead.\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRTKSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n return useRealtimeKitSelector(selector);\n};\n\n/**\n * Hook which extracts data from the RealtimeKitClient object\n */\nexport const useRealtimeKitSelector = <StateSlice,>(\n selector: StateSelector<RealtimeKitClient, StateSlice>\n) => {\n const { meeting, updates } = useContext(RealtimeKitContext);\n if (!meeting)\n throw new Error(\n 'useRealtimeKitSelector must be used within the RealtimeKitProvider'\n );\n const state = useRef(selector(meeting));\n const [, forceUpdate] = useReducer((c) => c + 1, 0) as [never, () => void];\n\n useEffect(() => {\n const currentState = meeting && selector(meeting);\n const listener = () => {\n const newStateSlice = meeting && selector(meeting);\n if (shouldUpdate(state.current, newStateSlice)) {\n state.current = newStateSlice;\n forceUpdate();\n }\n };\n if (\n currentState &&\n typeof currentState === 'object' &&\n 'addListener' in currentState\n ) {\n (currentState as any).addListener('*', forceUpdate);\n return () => {\n (currentState as any).removeListener('*', forceUpdate);\n };\n }\n updates?.addListener(listener);\n return () => {\n updates?.removeListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [meeting, updates]);\n return state.current;\n};\n\nfunction cleanUpEvents() {\n const { RTKHelper } = NativeModules;\n\n webRTCModuleEmitter.removeAllListeners('audioSamples');\n deviceChangeListener.removeAllListeners('onAudioDeviceChanged');\n BackgroundTimer.stop();\n\n try {\n if (Platform.OS === 'android') {\n RTKHelper.isForegroundServiceRunning().then((val) => {\n if (val) {\n RTKHelper.stopService();\n }\n });\n } else {\n broadcastEmitter.removeAllListeners('iOS_BroadcastStarted');\n broadcastEmitter.removeAllListeners('iOS_BroadcastStopped');\n }\n } catch (_err) {}\n}\nexport * from './ReactContext';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SDK_VERSION = '1.
|
|
1
|
+
export const SDK_VERSION = '1.2.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDK_VERSION"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.
|
|
1
|
+
{"version":3,"names":["SDK_VERSION"],"sources":["version.ts"],"sourcesContent":["export const SDK_VERSION = '1.2.0';\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,OAAO","ignoreList":[]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import RealtimeKitClient, { RTKClientOptions } from '@cloudflare/realtimekit';
|
|
2
|
+
interface RealtimeKitClientParams {
|
|
3
|
+
resetOnLeave?: boolean;
|
|
4
|
+
}
|
|
2
5
|
/**
|
|
3
6
|
* Hook which manages a RealtimeKitClient instance
|
|
4
7
|
*/
|
|
5
|
-
export declare const useRealtimeKitClient: () => [RealtimeKitClient | undefined, (options: RTKClientOptions) => Promise<RealtimeKitClient>];
|
|
8
|
+
export declare const useRealtimeKitClient: (clientParams?: RealtimeKitClientParams) => [RealtimeKitClient | undefined, (options: RTKClientOptions) => Promise<RealtimeKitClient | undefined>];
|
|
6
9
|
type StateSelector<T extends object, U> = (state: T) => U;
|
|
7
10
|
/**
|
|
8
11
|
* @deprecated Use `useRealtimeKitSelector` instead.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.
|
|
1
|
+
export declare const SDK_VERSION = "1.2.0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/realtimekit-react-native",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-staging.0",
|
|
4
4
|
"description": "Cloudflare RealtimeKit SDK for react native",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"author": "Cloudflare",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"private": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@cloudflare/realtimekit": "
|
|
29
|
+
"@cloudflare/realtimekit": "2.0.0",
|
|
30
30
|
"base-64": "^1.0.0",
|
|
31
31
|
"events": "^3.3.0",
|
|
32
32
|
"react-native-url-polyfill": "1.3.0",
|