@tellescope/react-components 1.246.1 → 1.247.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.
Files changed (54) hide show
  1. package/lib/cjs/Forms/forms.d.ts.map +1 -1
  2. package/lib/cjs/Forms/forms.js +14 -1
  3. package/lib/cjs/Forms/forms.js.map +1 -1
  4. package/lib/cjs/TwilioVideo/TwilioControls.d.ts +2 -0
  5. package/lib/cjs/TwilioVideo/TwilioControls.d.ts.map +1 -1
  6. package/lib/cjs/TwilioVideo/TwilioControls.js +14 -3
  7. package/lib/cjs/TwilioVideo/TwilioControls.js.map +1 -1
  8. package/lib/cjs/TwilioVideo/TwilioParticipant.d.ts +2 -0
  9. package/lib/cjs/TwilioVideo/TwilioParticipant.d.ts.map +1 -1
  10. package/lib/cjs/TwilioVideo/TwilioParticipant.js +52 -21
  11. package/lib/cjs/TwilioVideo/TwilioParticipant.js.map +1 -1
  12. package/lib/cjs/TwilioVideo/TwilioVideoContext.d.ts +5 -0
  13. package/lib/cjs/TwilioVideo/TwilioVideoContext.d.ts.map +1 -1
  14. package/lib/cjs/TwilioVideo/TwilioVideoContext.js +107 -5
  15. package/lib/cjs/TwilioVideo/TwilioVideoContext.js.map +1 -1
  16. package/lib/cjs/TwilioVideo/TwilioVideoRoom.d.ts +2 -0
  17. package/lib/cjs/TwilioVideo/TwilioVideoRoom.d.ts.map +1 -1
  18. package/lib/cjs/TwilioVideo/TwilioVideoRoom.js +49 -3
  19. package/lib/cjs/TwilioVideo/TwilioVideoRoom.js.map +1 -1
  20. package/lib/cjs/TwilioVideo/index.d.ts +1 -1
  21. package/lib/cjs/TwilioVideo/index.d.ts.map +1 -1
  22. package/lib/cjs/TwilioVideo/index.js +2 -1
  23. package/lib/cjs/TwilioVideo/index.js.map +1 -1
  24. package/lib/esm/Forms/forms.d.ts.map +1 -1
  25. package/lib/esm/Forms/forms.js +14 -1
  26. package/lib/esm/Forms/forms.js.map +1 -1
  27. package/lib/esm/TwilioVideo/TwilioControls.d.ts +2 -0
  28. package/lib/esm/TwilioVideo/TwilioControls.d.ts.map +1 -1
  29. package/lib/esm/TwilioVideo/TwilioControls.js +15 -4
  30. package/lib/esm/TwilioVideo/TwilioControls.js.map +1 -1
  31. package/lib/esm/TwilioVideo/TwilioParticipant.d.ts +2 -0
  32. package/lib/esm/TwilioVideo/TwilioParticipant.d.ts.map +1 -1
  33. package/lib/esm/TwilioVideo/TwilioParticipant.js +52 -21
  34. package/lib/esm/TwilioVideo/TwilioParticipant.js.map +1 -1
  35. package/lib/esm/TwilioVideo/TwilioVideoContext.d.ts +5 -0
  36. package/lib/esm/TwilioVideo/TwilioVideoContext.d.ts.map +1 -1
  37. package/lib/esm/TwilioVideo/TwilioVideoContext.js +83 -1
  38. package/lib/esm/TwilioVideo/TwilioVideoContext.js.map +1 -1
  39. package/lib/esm/TwilioVideo/TwilioVideoRoom.d.ts +2 -0
  40. package/lib/esm/TwilioVideo/TwilioVideoRoom.d.ts.map +1 -1
  41. package/lib/esm/TwilioVideo/TwilioVideoRoom.js +49 -3
  42. package/lib/esm/TwilioVideo/TwilioVideoRoom.js.map +1 -1
  43. package/lib/esm/TwilioVideo/index.d.ts +1 -1
  44. package/lib/esm/TwilioVideo/index.d.ts.map +1 -1
  45. package/lib/esm/TwilioVideo/index.js +1 -1
  46. package/lib/esm/TwilioVideo/index.js.map +1 -1
  47. package/lib/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +9 -9
  49. package/src/Forms/forms.tsx +34 -7
  50. package/src/TwilioVideo/TwilioControls.tsx +30 -0
  51. package/src/TwilioVideo/TwilioParticipant.tsx +51 -17
  52. package/src/TwilioVideo/TwilioVideoContext.tsx +78 -0
  53. package/src/TwilioVideo/TwilioVideoRoom.tsx +92 -2
  54. package/src/TwilioVideo/index.ts +1 -0
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
37
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
38
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -55,14 +78,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
78
  }
56
79
  return to.concat(ar || Array.prototype.slice.call(from));
57
80
  };
58
- var __importDefault = (this && this.__importDefault) || function (mod) {
59
- return (mod && mod.__esModule) ? mod : { "default": mod };
60
- };
61
81
  Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.TwilioVideoProvider = exports.useTwilioVideo = void 0;
82
+ exports.TwilioVideoProvider = exports.useTwilioVideo = exports.SCREEN_SHARE_TRACK_NAME = void 0;
63
83
  var jsx_runtime_1 = require("react/jsx-runtime");
64
84
  var react_1 = require("react");
65
- var twilio_video_1 = __importDefault(require("twilio-video"));
85
+ var twilio_video_1 = __importStar(require("twilio-video"));
86
+ exports.SCREEN_SHARE_TRACK_NAME = 'screen-share';
66
87
  var TwilioVideoContext = (0, react_1.createContext)(null);
67
88
  var useTwilioVideo = function () {
68
89
  var context = (0, react_1.useContext)(TwilioVideoContext);
@@ -83,6 +104,9 @@ var TwilioVideoProvider = function (_a) {
83
104
  var _h = (0, react_1.useState)(false), isHost = _h[0], setIsHost = _h[1];
84
105
  var _j = (0, react_1.useState)(true), isVideoEnabled = _j[0], setIsVideoEnabled = _j[1];
85
106
  var _k = (0, react_1.useState)(true), isAudioEnabled = _k[0], setIsAudioEnabled = _k[1];
107
+ var _l = (0, react_1.useState)(null), localScreenTrack = _l[0], setLocalScreenTrack = _l[1];
108
+ var _m = (0, react_1.useState)(false), isScreenSharing = _m[0], setIsScreenSharing = _m[1];
109
+ var _o = (0, react_1.useState)(null), screenSharingParticipantSid = _o[0], setScreenSharingParticipantSid = _o[1];
86
110
  var localTracksRef = (0, react_1.useRef)([]);
87
111
  var connect = (0, react_1.useCallback)(function (token, roomName) { return __awaiter(void 0, void 0, void 0, function () {
88
112
  var tracks, videoTrack, audioTrack, newRoom, existingParticipants, err_1;
@@ -125,6 +149,17 @@ var TwilioVideoProvider = function (_a) {
125
149
  newRoom.on('participantDisconnected', function (participant) {
126
150
  setParticipants(function (prev) { return prev.filter(function (p) { return p.sid !== participant.sid; }); });
127
151
  });
152
+ // Track remote screen sharing for React re-renders
153
+ newRoom.on('trackSubscribed', function (track, publication, participant) {
154
+ if (track.kind === 'video' && track.name === exports.SCREEN_SHARE_TRACK_NAME) {
155
+ setScreenSharingParticipantSid(participant.sid);
156
+ }
157
+ });
158
+ newRoom.on('trackUnsubscribed', function (track, publication, participant) {
159
+ if (track.kind === 'video' && track.name === exports.SCREEN_SHARE_TRACK_NAME) {
160
+ setScreenSharingParticipantSid(null);
161
+ }
162
+ });
128
163
  newRoom.on('disconnected', function () {
129
164
  // Stop all local tracks when disconnected
130
165
  localTracksRef.current.forEach(function (track) {
@@ -134,6 +169,9 @@ var TwilioVideoProvider = function (_a) {
134
169
  setRoom(null);
135
170
  setLocalVideoTrack(null);
136
171
  setLocalAudioTrack(null);
172
+ setLocalScreenTrack(null);
173
+ setIsScreenSharing(false);
174
+ setScreenSharingParticipantSid(null);
137
175
  setParticipants([]);
138
176
  });
139
177
  return [3 /*break*/, 6];
@@ -161,6 +199,9 @@ var TwilioVideoProvider = function (_a) {
161
199
  setRoom(null);
162
200
  setLocalVideoTrack(null);
163
201
  setLocalAudioTrack(null);
202
+ setLocalScreenTrack(null);
203
+ setIsScreenSharing(false);
204
+ setScreenSharingParticipantSid(null);
164
205
  setParticipants([]);
165
206
  }, [room]);
166
207
  var toggleVideo = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -188,6 +229,63 @@ var TwilioVideoProvider = function (_a) {
188
229
  setIsAudioEnabled(!isAudioEnabled);
189
230
  }
190
231
  }, [localAudioTrack, isAudioEnabled]);
232
+ var stopScreenShare = (0, react_1.useCallback)(function () {
233
+ if (localScreenTrack) {
234
+ if (room) {
235
+ room.localParticipant.unpublishTrack(localScreenTrack);
236
+ }
237
+ localScreenTrack.stop();
238
+ localTracksRef.current = localTracksRef.current.filter(function (t) { return t !== localScreenTrack; });
239
+ setLocalScreenTrack(null);
240
+ setIsScreenSharing(false);
241
+ }
242
+ }, [localScreenTrack, room]);
243
+ var toggleScreenShare = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
244
+ var stream, mediaStreamTrack, screenTrack_1, err_2;
245
+ return __generator(this, function (_a) {
246
+ switch (_a.label) {
247
+ case 0:
248
+ if (isScreenSharing) {
249
+ stopScreenShare();
250
+ return [2 /*return*/];
251
+ }
252
+ _a.label = 1;
253
+ case 1:
254
+ _a.trys.push([1, 5, , 6]);
255
+ return [4 /*yield*/, navigator.mediaDevices.getDisplayMedia({ video: true })];
256
+ case 2:
257
+ stream = _a.sent();
258
+ mediaStreamTrack = stream.getVideoTracks()[0];
259
+ screenTrack_1 = new twilio_video_1.LocalVideoTrack(mediaStreamTrack, { name: exports.SCREEN_SHARE_TRACK_NAME });
260
+ if (!room) return [3 /*break*/, 4];
261
+ return [4 /*yield*/, room.localParticipant.publishTrack(screenTrack_1)];
262
+ case 3:
263
+ _a.sent();
264
+ _a.label = 4;
265
+ case 4:
266
+ localTracksRef.current.push(screenTrack_1);
267
+ setLocalScreenTrack(screenTrack_1);
268
+ setIsScreenSharing(true);
269
+ // Handle browser "Stop sharing" button
270
+ mediaStreamTrack.onended = function () {
271
+ if (room) {
272
+ room.localParticipant.unpublishTrack(screenTrack_1);
273
+ }
274
+ screenTrack_1.stop();
275
+ localTracksRef.current = localTracksRef.current.filter(function (t) { return t !== screenTrack_1; });
276
+ setLocalScreenTrack(null);
277
+ setIsScreenSharing(false);
278
+ };
279
+ return [3 /*break*/, 6];
280
+ case 5:
281
+ err_2 = _a.sent();
282
+ // User cancelled the screen share picker — not an error
283
+ console.log('Screen share cancelled or failed:', err_2);
284
+ return [3 /*break*/, 6];
285
+ case 6: return [2 /*return*/];
286
+ }
287
+ });
288
+ }); }, [isScreenSharing, stopScreenShare, room]);
191
289
  // Cleanup on unmount
192
290
  (0, react_1.useEffect)(function () {
193
291
  return function () {
@@ -205,6 +303,9 @@ var TwilioVideoProvider = function (_a) {
205
303
  isConnected: !!room,
206
304
  localVideoTrack: localVideoTrack,
207
305
  localAudioTrack: localAudioTrack,
306
+ localScreenTrack: localScreenTrack,
307
+ isScreenSharing: isScreenSharing,
308
+ screenSharingParticipantSid: screenSharingParticipantSid,
208
309
  participants: participants,
209
310
  error: error,
210
311
  isHost: isHost,
@@ -214,6 +315,7 @@ var TwilioVideoProvider = function (_a) {
214
315
  disconnect: disconnect,
215
316
  toggleVideo: toggleVideo,
216
317
  toggleAudio: toggleAudio,
318
+ toggleScreenShare: toggleScreenShare,
217
319
  setIsHost: setIsHost,
218
320
  };
219
321
  return ((0, jsx_runtime_1.jsx)(TwilioVideoContext.Provider, __assign({ value: value }, { children: children })));
@@ -1 +1 @@
1
- {"version":3,"file":"TwilioVideoContext.js","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TwilioVideoContext.js","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoContext.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface TwilioVideoRoomProps {
5
5
  style?: React.CSSProperties;
6
6
  /** Resolve participant identity to a display label. Defaults to empty string. */
7
7
  resolveIdentity?: (identity: string) => string;
8
+ /** Whether to show the screen share button. Defaults to true. */
9
+ showScreenShare?: boolean;
8
10
  }
9
11
  export declare const TwilioVideoRoom: React.FC<TwilioVideoRoomProps>;
10
12
  //# sourceMappingURL=TwilioVideoRoom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TwilioVideoRoom.d.ts","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoRoom.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;CAC/C;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmF1D,CAAA"}
1
+ {"version":3,"file":"TwilioVideoRoom.d.ts","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoRoom.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9C,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0K1D,CAAA"}
@@ -10,6 +10,15 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
13
22
  Object.defineProperty(exports, "__esModule", { value: true });
14
23
  exports.TwilioVideoRoom = void 0;
15
24
  var jsx_runtime_1 = require("react/jsx-runtime");
@@ -18,12 +27,49 @@ var TwilioVideoContext_1 = require("./TwilioVideoContext");
18
27
  var TwilioParticipant_1 = require("./TwilioParticipant");
19
28
  var TwilioControls_1 = require("./TwilioControls");
20
29
  var TwilioVideoRoom = function (_a) {
21
- var onLeave = _a.onLeave, onEndForAll = _a.onEndForAll, style = _a.style, resolveIdentity = _a.resolveIdentity;
22
- var _b = (0, TwilioVideoContext_1.useTwilioVideo)(), room = _b.room, participants = _b.participants;
30
+ var onLeave = _a.onLeave, onEndForAll = _a.onEndForAll, style = _a.style, resolveIdentity = _a.resolveIdentity, _b = _a.showScreenShare, showScreenShareProp = _b === void 0 ? true : _b;
31
+ var _c = (0, TwilioVideoContext_1.useTwilioVideo)(), room = _c.room, participants = _c.participants, isScreenSharing = _c.isScreenSharing, screenSharingParticipantSid = _c.screenSharingParticipantSid;
23
32
  if (!room)
24
33
  return null;
25
34
  var localParticipant = room.localParticipant;
26
35
  var hasRemoteParticipants = participants.length > 0;
36
+ // Find who is sharing their screen (context-driven so React re-renders properly)
37
+ var screenShareParticipant = (function () {
38
+ if (isScreenSharing)
39
+ return localParticipant;
40
+ if (screenSharingParticipantSid) {
41
+ return participants.find(function (p) { return p.sid === screenSharingParticipantSid; }) || null;
42
+ }
43
+ return null;
44
+ })();
45
+ var isScreenShareActive = screenShareParticipant !== null;
46
+ // All participants for the camera strip (local + remote)
47
+ var allParticipants = __spreadArray([
48
+ localParticipant
49
+ ], participants, true);
50
+ if (isScreenShareActive) {
51
+ // Presentation layout: screen share large on top, camera strip on bottom
52
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ sx: __assign({ display: 'flex', flexDirection: 'column', height: '100%', width: '100%', backgroundColor: '#1a1a1a' }, style) }, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, __assign({ sx: {
53
+ flex: 1,
54
+ overflow: 'hidden',
55
+ minHeight: 0,
56
+ } }, { children: (0, jsx_runtime_1.jsx)(TwilioParticipant_1.TwilioParticipant, { participant: screenShareParticipant, isLocal: screenShareParticipant === localParticipant, showScreenShare: true, resolveIdentity: resolveIdentity }) })), (0, jsx_runtime_1.jsx)(material_1.Box, __assign({ sx: {
57
+ height: 120,
58
+ display: 'flex',
59
+ flexDirection: 'row',
60
+ gap: 1,
61
+ padding: 1,
62
+ overflowX: 'auto',
63
+ flexShrink: 0,
64
+ } }, { children: allParticipants.map(function (p) { return ((0, jsx_runtime_1.jsx)(material_1.Box, __assign({ sx: {
65
+ height: '100%',
66
+ aspectRatio: '4/3',
67
+ flexShrink: 0,
68
+ borderRadius: 1,
69
+ overflow: 'hidden',
70
+ } }, { children: (0, jsx_runtime_1.jsx)(TwilioParticipant_1.TwilioParticipant, { participant: p, isLocal: p === localParticipant, showScreenShare: false, resolveIdentity: resolveIdentity }) }), p.sid)); }) })), (0, jsx_runtime_1.jsx)(TwilioControls_1.TwilioControlBar, { onLeave: onLeave, onEndForAll: onEndForAll, showScreenShare: showScreenShareProp })] })));
71
+ }
72
+ // Normal layout (no screen share active)
27
73
  return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ sx: __assign({ display: 'flex', flexDirection: 'column', height: '100%', width: '100%', backgroundColor: '#1a1a1a' }, style) }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ sx: {
28
74
  flex: 1,
29
75
  position: 'relative',
@@ -43,7 +89,7 @@ var TwilioVideoRoom = function (_a) {
43
89
  borderRadius: 1,
44
90
  overflow: 'hidden',
45
91
  boxShadow: '0 2px 8px rgba(0,0,0,0.3)',
46
- } }, { children: (0, jsx_runtime_1.jsx)(TwilioParticipant_1.TwilioParticipant, { participant: localParticipant, isLocal: true, resolveIdentity: resolveIdentity }) })))] })), (0, jsx_runtime_1.jsx)(TwilioControls_1.TwilioControlBar, { onLeave: onLeave, onEndForAll: onEndForAll })] })));
92
+ } }, { children: (0, jsx_runtime_1.jsx)(TwilioParticipant_1.TwilioParticipant, { participant: localParticipant, isLocal: true, resolveIdentity: resolveIdentity }) })))] })), (0, jsx_runtime_1.jsx)(TwilioControls_1.TwilioControlBar, { onLeave: onLeave, onEndForAll: onEndForAll, showScreenShare: showScreenShareProp })] })));
47
93
  };
48
94
  exports.TwilioVideoRoom = TwilioVideoRoom;
49
95
  //# sourceMappingURL=TwilioVideoRoom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TwilioVideoRoom.js","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoRoom.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0CAAyC;AACzC,2DAAqD;AACrD,yDAAuD;AACvD,mDAAmD;AAU5C,IAAM,eAAe,GAAmC,UAAC,EAK/D;QAJC,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,KAAK,WAAA,EACL,eAAe,qBAAA;IAET,IAAA,KAAyB,IAAA,mCAAc,GAAE,EAAvC,IAAI,UAAA,EAAE,YAAY,kBAAqB,CAAA;IAE/C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,IAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;IAC9C,IAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAErD,OAAO,CACL,wBAAC,cAAG,aACF,EAAE,aACA,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,QAAQ,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,SAAS,IACvB,KAAK,kBAIV,wBAAC,cAAG,aACF,EAAE,EAAE;oBACF,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,QAAQ;iBACnB,iBAGA,qBAAqB,CAAC,CAAC,CAAC,CACvB,uBAAC,eAAI,aACH,SAAS,QACT,EAAE,EAAE;4BACF,MAAM,EAAE,MAAM;4BACd,KAAK,EAAE,MAAM;yBACd,gBAEA,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,CACjC,uBAAC,eAAI,aACH,IAAI,QAEJ,EAAE,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACtC,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,gBAEzD,uBAAC,qCAAiB,IAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,GAAI,KAJ5E,WAAW,CAAC,GAAG,CAKf,CACR,EATkC,CASlC,CAAC,IACG,CACR,CAAC,CAAC,CAAC;oBACF,sCAAsC;oBACtC,uBAAC,cAAG,aAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBACxC,uBAAC,qCAAiB,IAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,QAAC,eAAe,EAAE,eAAe,GAAI,IAC1F,CACP,EAGA,qBAAqB,IAAI,CACxB,uBAAC,cAAG,aACF,EAAE,EAAE;4BACF,QAAQ,EAAE,UAAU;4BACpB,GAAG,EAAE,EAAE;4BACP,KAAK,EAAE,EAAE;4BACT,KAAK,EAAE,GAAG;4BACV,MAAM,EAAE,GAAG;4BACX,MAAM,EAAE,EAAE;4BACV,YAAY,EAAE,CAAC;4BACf,QAAQ,EAAE,QAAQ;4BAClB,SAAS,EAAE,2BAA2B;yBACvC,gBAED,uBAAC,qCAAiB,IAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,QAAC,eAAe,EAAE,eAAe,GAAI,IAC1F,CACP,KACG,EAGN,uBAAC,iCAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAI,KAC5D,CACP,CAAA;AACH,CAAC,CAAA;AAnFY,QAAA,eAAe,mBAmF3B"}
1
+ {"version":3,"file":"TwilioVideoRoom.js","sourceRoot":"","sources":["../../../src/TwilioVideo/TwilioVideoRoom.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { TwilioVideoProvider, useTwilioVideo, type TwilioVideoState, type TwilioVideoActions, type TwilioVideoContextType, type TwilioVideoProviderProps, } from './TwilioVideoContext';
1
+ export { TwilioVideoProvider, useTwilioVideo, SCREEN_SHARE_TRACK_NAME, type TwilioVideoState, type TwilioVideoActions, type TwilioVideoContextType, type TwilioVideoProviderProps, } from './TwilioVideoContext';
2
2
  export { useStartTwilioVideoCall, useJoinTwilioVideoCall, useTwilioMeetingForCalendarEvent, } from './hooks';
3
3
  export { TwilioParticipant, type TwilioParticipantProps } from './TwilioParticipant';
4
4
  export { TwilioControlBar, type TwilioControlBarProps } from './TwilioControls';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/TwilioVideo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/TwilioVideo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TwilioLocalPreview = exports.TwilioVideoRoom = exports.TwilioControlBar = exports.TwilioParticipant = exports.useTwilioMeetingForCalendarEvent = exports.useJoinTwilioVideoCall = exports.useStartTwilioVideoCall = exports.useTwilioVideo = exports.TwilioVideoProvider = void 0;
3
+ exports.TwilioLocalPreview = exports.TwilioVideoRoom = exports.TwilioControlBar = exports.TwilioParticipant = exports.useTwilioMeetingForCalendarEvent = exports.useJoinTwilioVideoCall = exports.useStartTwilioVideoCall = exports.SCREEN_SHARE_TRACK_NAME = exports.useTwilioVideo = exports.TwilioVideoProvider = void 0;
4
4
  var TwilioVideoContext_1 = require("./TwilioVideoContext");
5
5
  Object.defineProperty(exports, "TwilioVideoProvider", { enumerable: true, get: function () { return TwilioVideoContext_1.TwilioVideoProvider; } });
6
6
  Object.defineProperty(exports, "useTwilioVideo", { enumerable: true, get: function () { return TwilioVideoContext_1.useTwilioVideo; } });
7
+ Object.defineProperty(exports, "SCREEN_SHARE_TRACK_NAME", { enumerable: true, get: function () { return TwilioVideoContext_1.SCREEN_SHARE_TRACK_NAME; } });
7
8
  var hooks_1 = require("./hooks");
8
9
  Object.defineProperty(exports, "useStartTwilioVideoCall", { enumerable: true, get: function () { return hooks_1.useStartTwilioVideoCall; } });
9
10
  Object.defineProperty(exports, "useJoinTwilioVideoCall", { enumerable: true, get: function () { return hooks_1.useJoinTwilioVideoCall; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/TwilioVideo/index.ts"],"names":[],"mappings":";;;AAAA,2DAO6B;AAN3B,yHAAA,mBAAmB,OAAA;AACnB,oHAAA,cAAc,OAAA;AAOhB,iCAIgB;AAHd,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA;AACtB,yHAAA,gCAAgC,OAAA;AAGlC,yDAAoF;AAA3E,sHAAA,iBAAiB,OAAA;AAC1B,mDAA+E;AAAtE,kHAAA,gBAAgB,OAAA;AACzB,qDAA8E;AAArE,kHAAA,eAAe,OAAA;AACxB,2DAAuF;AAA9E,wHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/TwilioVideo/index.ts"],"names":[],"mappings":";;;AAAA,2DAQ6B;AAP3B,yHAAA,mBAAmB,OAAA;AACnB,oHAAA,cAAc,OAAA;AACd,6HAAA,uBAAuB,OAAA;AAOzB,iCAIgB;AAHd,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA;AACtB,yHAAA,gCAAgC,OAAA;AAGlC,yDAAoF;AAA3E,sHAAA,iBAAiB,OAAA;AAC1B,mDAA+E;AAAtE,kHAAA,gBAAgB,OAAA;AACzB,qDAA8E;AAArE,kHAAA,eAAe,OAAA;AACxB,2DAAuF;AAA9E,wHAAA,kBAAkB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/Forms/forms.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/Forms/forms.tsx"],"names":[],"mappings":"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"}
@@ -602,9 +602,15 @@ var HistoricalDataSection = function (_a) {
602
602
  var _c = useState([]), medications = _c[0], setMedications = _c[1];
603
603
  var _d = useState(true), loading = _d[0], setLoading = _d[1];
604
604
  var _e = useState(''), error = _e[0], setError = _e[1];
605
+ var loadedKeyRef = useRef('');
605
606
  useEffect(function () {
606
607
  if (!session)
607
608
  return;
609
+ // Build a stable key from enduserId + sources to avoid re-fetching on object reference changes
610
+ var key = enduserId + ':' + JSON.stringify(sources);
611
+ if (loadedKeyRef.current === key)
612
+ return;
613
+ loadedKeyRef.current = key;
608
614
  var loadData = function () { return __awaiter(void 0, void 0, void 0, function () {
609
615
  var promises, _i, sources_1, source, err_4;
610
616
  return __generator(this, function (_a) {
@@ -660,7 +666,14 @@ var HistoricalDataSection = function (_a) {
660
666
  }
661
667
  var hasObservations = sources.some(function (s) { return s.type === 'Observations'; });
662
668
  var hasMedications = sources.some(function (s) { return s.type === 'Medications'; });
663
- return (_jsxs("div", __assign({ style: { marginTop: 10 } }, { children: [hasObservations && (_jsxs("div", __assign({ style: { marginBottom: 15 } }, { children: [_jsx(Typography, __assign({ style: { fontWeight: 'bold', marginBottom: 5 } }, { children: "Observations" })), observations.length === 0 ? (_jsx(Typography, __assign({ style: { fontStyle: 'italic', color: '#888' } }, { children: "No observations found" }))) : (_jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 14 } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { borderBottom: '2px solid #ccc', textAlign: 'left' } }, { children: [_jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Date" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Type" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Value" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Category" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Status" }))] })) }), _jsx("tbody", { children: observations.map(function (obs) { return (_jsxs("tr", __assign({ style: { borderBottom: '1px solid #eee' } }, { children: [_jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.timestamp ? formatted_date(new Date(obs.timestamp)) : '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.type || obs.code || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.measurement ? "".concat(obs.measurement.value, " ").concat(obs.measurement.unit) : obs.qualitativeResult || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.category || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.status || '-' }))] }), obs.id)); }) })] })))] }))), hasMedications && (_jsxs("div", __assign({ style: { marginBottom: 15 } }, { children: [_jsx(Typography, __assign({ style: { fontWeight: 'bold', marginBottom: 5 } }, { children: "Medications" })), medications.length === 0 ? (_jsx(Typography, __assign({ style: { fontStyle: 'italic', color: '#888' } }, { children: "No medications found" }))) : (_jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 14 } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { borderBottom: '2px solid #ccc', textAlign: 'left' } }, { children: [_jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Title" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Dosage" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Prescribed By" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Start Date" }))] })) }), _jsx("tbody", { children: medications.map(function (med) { return (_jsxs("tr", __assign({ style: { borderBottom: '1px solid #eee' } }, { children: [_jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.title || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.dosage ? "".concat(med.dosage.value, " ").concat(med.dosage.unit) : '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.prescriberName || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.startedTakingAt ? formatted_date(new Date(med.startedTakingAt)) : '-' }))] }), med.id)); }) })] })))] })))] })));
669
+ return (_jsxs("div", __assign({ style: { marginTop: 10 } }, { children: [hasObservations && (_jsxs("div", __assign({ style: { marginBottom: 15 } }, { children: [_jsx(Typography, __assign({ style: { fontWeight: 'bold', marginBottom: 5 } }, { children: "Observations" })), observations.length === 0 ? (_jsx(Typography, __assign({ style: { fontStyle: 'italic', color: '#888' } }, { children: "No observations found" }))) : (_jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 14 } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { borderBottom: '2px solid #ccc', textAlign: 'left' } }, { children: [_jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Date" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Type" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Value" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Category" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Status" }))] })) }), _jsx("tbody", { children: observations.map(function (obs) { return (_jsxs("tr", __assign({ style: { borderBottom: '1px solid #eee' } }, { children: [_jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.timestamp ? formatted_date(new Date(obs.timestamp)) : '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.type || obs.code || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.measurement ? "".concat(obs.measurement.value, " ").concat(obs.measurement.unit) : obs.qualitativeResult || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.category || '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: obs.status || '-' }))] }), obs.id)); }) })] })))] }))), hasMedications && (_jsxs("div", __assign({ style: { marginBottom: 15 } }, { children: [_jsx(Typography, __assign({ style: { fontWeight: 'bold', marginBottom: 5 } }, { children: "Medications" })), medications.length === 0 ? (_jsx(Typography, __assign({ style: { fontStyle: 'italic', color: '#888' } }, { children: "No medications found" }))) : (_jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 14 } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { borderBottom: '2px solid #ccc', textAlign: 'left' } }, { children: [_jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Medication" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Dosage" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Dispensing" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Pharmacy" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Prescriber" })), _jsx("th", __assign({ style: { padding: '6px 8px' } }, { children: "Date" }))] })) }), _jsx("tbody", { children: medications.map(function (med) {
670
+ var _a;
671
+ return (_jsxs("tr", __assign({ style: { borderBottom: '1px solid #eee' } }, { children: [_jsxs("td", __assign({ style: { padding: '6px 8px' } }, { children: [med.title || '-', med.allergyNote ? _jsxs("div", __assign({ style: { color: 'red', fontSize: 12 } }, { children: ["Allergies: ", med.allergyNote] })) : null, med.directions ? _jsxs("div", __assign({ style: { color: '#888', fontSize: 12 } }, { children: ["Directions: ", med.directions] })) : null] })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.dosage
672
+ ? med.dosage.description
673
+ ? med.dosage.description
674
+ : "".concat(med.dosage.value || '').concat(med.dosage.unit ? " ".concat(med.dosage.unit) : '').concat(med.dosage.quantity ? " ".concat(med.dosage.quantity, " units") : '').concat(med.dosage.frequency ? " ".concat(!isNaN(parseInt(med.dosage.frequency)) ? "".concat(med.dosage.frequency, "x ").concat(((_a = med.dosage) === null || _a === void 0 ? void 0 : _a.frequencyDescriptor) ? "Per ".concat(med.dosage.frequencyDescriptor) : 'daily') : med.dosage.frequency) : '')
675
+ : '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.dispensing ? "".concat(med.dispensing.quantity || '', " ").concat(med.dispensing.unit || '').trim() || '-' : '-' })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: med.pharmacyName || med.pharmacyId || '-' })), _jsxs("td", __assign({ style: { padding: '6px 8px' } }, { children: [med.prescriberName || '-', med.source ? _jsx("div", __assign({ style: { fontStyle: 'italic', fontSize: 12 } }, { children: med.source })) : null, med.notes ? _jsx("div", __assign({ style: { fontSize: 12 } }, { children: med.notes })) : null] })), _jsx("td", __assign({ style: { padding: '6px 8px' } }, { children: formatted_date(new Date(med.startedTakingAt || med.prescribedAt || med.createdAt)) }))] }), med.id));
676
+ }) })] })))] })))] })));
664
677
  };
665
678
  export var Description = function (_a) {
666
679
  var _b, _c;