@cometchat/skills 4.2.1 → 4.4.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 (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -12
  3. package/bin/install.js +59 -4
  4. package/package.json +14 -1
  5. package/skills/cometchat/SKILL.md +460 -77
  6. package/skills/cometchat/references/asking-questions.md +48 -0
  7. package/skills/cometchat-a11y/SKILL.md +3 -2
  8. package/skills/cometchat-android-v5/SKILL.md +2 -1
  9. package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
  10. package/skills/cometchat-android-v5-calls/references/README.md +1 -1
  11. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
  12. package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
  13. package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
  14. package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
  15. package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
  16. package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
  17. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
  18. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
  19. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
  20. package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
  21. package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
  22. package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
  23. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
  24. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
  25. package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
  26. package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
  27. package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
  28. package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
  29. package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
  30. package/skills/cometchat-android-v5-components/SKILL.md +4 -3
  31. package/skills/cometchat-android-v5-core/SKILL.md +20 -2
  32. package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
  33. package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
  34. package/skills/cometchat-android-v5-features/SKILL.md +5 -4
  35. package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
  36. package/skills/cometchat-android-v5-production/SKILL.md +2 -1
  37. package/skills/cometchat-android-v5-push/SKILL.md +2 -3
  38. package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
  39. package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
  40. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
  41. package/skills/cometchat-android-v6/SKILL.md +2 -1
  42. package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
  43. package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
  44. package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
  45. package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
  46. package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
  47. package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
  48. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
  49. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
  50. package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
  51. package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
  52. package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
  53. package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
  54. package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
  55. package/skills/cometchat-android-v6-core/SKILL.md +389 -9
  56. package/skills/cometchat-android-v6-events/SKILL.md +4 -1
  57. package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
  58. package/skills/cometchat-android-v6-features/SKILL.md +26 -2
  59. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
  60. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
  61. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
  62. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
  63. package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
  64. package/skills/cometchat-android-v6-production/SKILL.md +6 -3
  65. package/skills/cometchat-android-v6-push/SKILL.md +43 -2
  66. package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
  67. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
  68. package/skills/cometchat-angular-calls/SKILL.md +256 -389
  69. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
  70. package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
  71. package/skills/cometchat-angular-calls/references/call-session.md +2 -2
  72. package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
  73. package/skills/cometchat-angular-calls/references/device-management.md +53 -34
  74. package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
  75. package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
  76. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
  77. package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
  78. package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
  79. package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
  80. package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
  81. package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
  82. package/skills/cometchat-angular-components/SKILL.md +149 -620
  83. package/skills/cometchat-angular-core/SKILL.md +235 -293
  84. package/skills/cometchat-angular-customization/SKILL.md +415 -223
  85. package/skills/cometchat-angular-features/SKILL.md +216 -334
  86. package/skills/cometchat-angular-patterns/SKILL.md +168 -359
  87. package/skills/cometchat-angular-placement/SKILL.md +189 -560
  88. package/skills/cometchat-angular-production/SKILL.md +241 -92
  89. package/skills/cometchat-angular-push/SKILL.md +280 -294
  90. package/skills/cometchat-angular-testing/SKILL.md +430 -158
  91. package/skills/cometchat-angular-theming/SKILL.md +190 -265
  92. package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
  93. package/skills/cometchat-astro-patterns/SKILL.md +22 -1
  94. package/skills/cometchat-calls/SKILL.md +25 -19
  95. package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
  96. package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
  97. package/skills/cometchat-calls/references/use-case-support.md +3 -4
  98. package/skills/cometchat-calls/references/use-case-team.md +23 -12
  99. package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
  100. package/skills/cometchat-components/SKILL.md +163 -25
  101. package/skills/cometchat-core/SKILL.md +412 -13
  102. package/skills/cometchat-customization/SKILL.md +50 -25
  103. package/skills/cometchat-features/SKILL.md +313 -34
  104. package/skills/cometchat-flutter-v5/SKILL.md +10 -4
  105. package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
  106. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
  107. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
  108. package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
  109. package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
  110. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
  111. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
  112. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
  113. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
  114. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
  115. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
  116. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
  117. package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
  118. package/skills/cometchat-flutter-v5-core/SKILL.md +20 -2
  119. package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
  120. package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
  121. package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
  122. package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
  123. package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
  124. package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
  125. package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
  126. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
  127. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
  128. package/skills/cometchat-flutter-v6/SKILL.md +17 -16
  129. package/skills/cometchat-flutter-v6-calls/SKILL.md +78 -63
  130. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
  131. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
  132. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
  133. package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
  134. package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
  135. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
  136. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
  137. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
  138. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
  139. package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
  140. package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
  141. package/skills/cometchat-flutter-v6-core/SKILL.md +348 -10
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
  145. package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
  146. package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
  147. package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
  148. package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
  149. package/skills/cometchat-flutter-v6-push/SKILL.md +43 -21
  150. package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
  151. package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
  153. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
  154. package/skills/cometchat-i18n/SKILL.md +139 -78
  155. package/skills/cometchat-ios/SKILL.md +4 -2
  156. package/skills/cometchat-ios-calls/SKILL.md +225 -95
  157. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
  158. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
  159. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
  160. package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
  161. package/skills/cometchat-ios-calls/references/call-session.md +51 -54
  162. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
  163. package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
  164. package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
  165. package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
  166. package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
  167. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
  168. package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
  169. package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
  170. package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
  171. package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
  172. package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
  173. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
  174. package/skills/cometchat-ios-components/SKILL.md +200 -12
  175. package/skills/cometchat-ios-core/SKILL.md +281 -11
  176. package/skills/cometchat-ios-customization/SKILL.md +276 -110
  177. package/skills/cometchat-ios-features/SKILL.md +64 -36
  178. package/skills/cometchat-ios-placement/SKILL.md +15 -12
  179. package/skills/cometchat-ios-production/SKILL.md +12 -4
  180. package/skills/cometchat-ios-push/SKILL.md +53 -19
  181. package/skills/cometchat-ios-testing/SKILL.md +14 -9
  182. package/skills/cometchat-ios-theming/SKILL.md +39 -3
  183. package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
  184. package/skills/cometchat-native-bare-patterns/SKILL.md +56 -18
  185. package/skills/cometchat-native-calls/SKILL.md +89 -19
  186. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
  187. package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
  188. package/skills/cometchat-native-calls/references/call-session.md +2 -2
  189. package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
  190. package/skills/cometchat-native-calls/references/device-management.md +53 -30
  191. package/skills/cometchat-native-calls/references/group-calls.md +35 -30
  192. package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
  193. package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
  194. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
  195. package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
  196. package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
  197. package/skills/cometchat-native-calls/references/share-invite.md +7 -5
  198. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
  199. package/skills/cometchat-native-components/SKILL.md +91 -57
  200. package/skills/cometchat-native-core/SKILL.md +281 -9
  201. package/skills/cometchat-native-customization/SKILL.md +150 -28
  202. package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
  203. package/skills/cometchat-native-features/SKILL.md +79 -49
  204. package/skills/cometchat-native-placement/SKILL.md +19 -10
  205. package/skills/cometchat-native-production/SKILL.md +9 -3
  206. package/skills/cometchat-native-push/SKILL.md +2 -1
  207. package/skills/cometchat-native-testing/SKILL.md +1 -2
  208. package/skills/cometchat-native-theming/SKILL.md +54 -29
  209. package/skills/cometchat-native-troubleshooting/SKILL.md +71 -3
  210. package/skills/cometchat-nextjs-patterns/SKILL.md +48 -6
  211. package/skills/cometchat-placement/SKILL.md +42 -3
  212. package/skills/cometchat-production/SKILL.md +12 -5
  213. package/skills/cometchat-react-calls/SKILL.md +220 -10
  214. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
  215. package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
  216. package/skills/cometchat-react-calls/references/call-session.md +1 -1
  217. package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
  218. package/skills/cometchat-react-calls/references/device-management.md +55 -51
  219. package/skills/cometchat-react-calls/references/group-calls.md +18 -23
  220. package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
  221. package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
  222. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
  223. package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
  224. package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
  225. package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
  226. package/skills/cometchat-react-calls/references/share-invite.md +4 -5
  227. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
  228. package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
  229. package/skills/cometchat-react-patterns/SKILL.md +57 -4
  230. package/skills/cometchat-react-push/SKILL.md +258 -72
  231. package/skills/cometchat-react-router-patterns/SKILL.md +43 -4
  232. package/skills/cometchat-react-testing/SKILL.md +14 -5
  233. package/skills/cometchat-theming/SKILL.md +181 -18
  234. package/skills/cometchat-troubleshooting/SKILL.md +40 -20
@@ -15,12 +15,14 @@ import { CometChatCalls } from "@cometchat/calls-sdk-javascript";
15
15
  @Injectable({ providedIn: "root" })
16
16
  export class CallService {
17
17
  buildSettings(sessionId: string, opts: { recording?: boolean; isAudioOnly?: boolean }) {
18
- return new CometChatCalls.CallSettingsBuilder()
19
- .setSessionID(sessionId)
20
- .setIsAudioOnly(opts.isAudioOnly ?? false)
21
- .enableRecording(opts.recording ?? false)
22
- .setShowRecordingButton(opts.recording ?? false)
23
- .build();
18
+ // SessionSettings OBJECT for joinSession(token, settings, container). These are
19
+ // object fields — NOT CallSettingsBuilder methods. On the v5 SDK there is no
20
+ // setSessionID / setIsAudioOnly / enableRecording / setShowRecordingButton.
21
+ return {
22
+ sessionType: (opts.isAudioOnly ?? false) ? "VOICE" : "VIDEO",
23
+ autoStartRecording: opts.recording ?? false,
24
+ hideRecordingButton: !(opts.recording ?? false),
25
+ };
24
26
  }
25
27
  }
26
28
  ```
@@ -59,20 +61,17 @@ In the parent component:
59
61
 
60
62
  ```ts
61
63
  ngOnInit() {
62
- const listener = new CometChatCalls.OngoingCallListener({
63
- onRecordingStarted: () => {
64
- this.zone.run(() => { this.recording = true; this.cd.markForCheck(); });
65
- },
66
- onRecordingStopped: () => {
67
- this.zone.run(() => { this.recording = false; this.cd.markForCheck(); });
68
- },
69
- onRecordingFailed: (error: { message: string }) => {
70
- this.zone.run(() => {
71
- this.snackBar.open(`Recording failed: ${error.message}`, "Dismiss", { duration: 5000 });
72
- });
73
- },
64
+ // v5 uses the static event bus; addEventListener returns an unsubscribe fn.
65
+ const offStarted = CometChatCalls.addEventListener("onRecordingStarted", () => {
66
+ this.zone.run(() => { this.recording = true; this.cd.markForCheck(); });
74
67
  });
75
- // ... build settings, startSession ...
68
+ const offStopped = CometChatCalls.addEventListener("onRecordingStopped", () => {
69
+ this.zone.run(() => { this.recording = false; this.cd.markForCheck(); });
70
+ });
71
+ // Clean up in ngOnDestroy: offStarted(); offStopped();
72
+ // NOTE: there is no onRecordingFailed event/callback in v5 — surface plan/quota
73
+ // errors from the joinSession promise rejection instead.
74
+ // ... build settings, joinSession ...
76
75
  }
77
76
  ```
78
77
 
@@ -105,12 +104,12 @@ export class ScreenShareButtonComponent {
105
104
  async onClick() {
106
105
  if (!this.supported) return;
107
106
  if (this.sharing) {
108
- await CometChatCalls.endScreenShare();
107
+ CometChatCalls.stopScreenSharing(); // sync, void — not awaitable
109
108
  this.sharing = false;
110
109
  this.shareEnded.emit();
111
110
  } else {
112
111
  try {
113
- await CometChatCalls.startScreenShare();
112
+ CometChatCalls.startScreenSharing(); // sync, void
114
113
  this.sharing = true;
115
114
  this.shareStarted.emit();
116
115
  } catch (err) {
@@ -156,23 +155,17 @@ export class ScreenShareViewComponent implements AfterViewInit {
156
155
  Listen for screen-share events at the parent component level and pass the stream down:
157
156
 
158
157
  ```ts
158
+ // ⚠️ v5 bus callbacks take NO arguments — they're notifications, not stream
159
+ // handoffs. The SDK renders the presenter's screen as a tile in its own layout;
160
+ // you don't receive a MediaStream to attach yourself (that was the v4 model).
159
161
  ngOnInit() {
160
- const listener = new CometChatCalls.OngoingCallListener({
161
- onScreenShareStarted: (presenterUid: string, stream: MediaStream) => {
162
- this.zone.run(() => {
163
- this.screenSharePresenterUid = presenterUid;
164
- this.screenShareStream = stream;
165
- this.cd.markForCheck();
166
- });
167
- },
168
- onScreenShareEnded: () => {
169
- this.zone.run(() => {
170
- this.screenSharePresenterUid = null;
171
- this.screenShareStream = null;
172
- this.cd.markForCheck();
173
- });
174
- },
162
+ const offStart = CometChatCalls.addEventListener("onScreenShareStarted", () => {
163
+ this.zone.run(() => { this.someoneSharing = true; this.cd.markForCheck(); });
164
+ });
165
+ const offStop = CometChatCalls.addEventListener("onScreenShareStopped", () => {
166
+ this.zone.run(() => { this.someoneSharing = false; this.cd.markForCheck(); });
175
167
  });
168
+ // Clean up in ngOnDestroy: offStart(); offStop();
176
169
  }
177
170
  ```
178
171
 
@@ -236,7 +229,7 @@ The skill scaffolds this proxy layer for projects with a backend; for serverless
236
229
 
237
230
  ## Anti-patterns
238
231
 
239
- 1. **Calling `startScreenShare()` from a non-click handler.** Browsers reject — must be in a user-gesture stack. `(click)` works; `ngOnInit` doesn't.
232
+ 1. **Calling `startScreenSharing()` from a non-click handler.** Browsers reject — must be in a user-gesture stack. `(click)` works; `ngOnInit` doesn't.
240
233
  2. **No NgZone wrap on `onRecordingStarted` / `onScreenShareStarted`.** UI doesn't update.
241
234
  3. **Hardcoding the dashboard bearer token in `environment.ts`** to fetch recordings. Wrong — bearer is server-only. Always proxy.
242
235
  4. **No "REC" indicator.** Compliance violation.
@@ -247,12 +240,12 @@ The skill scaffolds this proxy layer for projects with a backend; for serverless
247
240
 
248
241
  ## Verification checklist
249
242
 
250
- - [ ] `enableRecording(true)` opt-in via parent input (not always-on)
243
+ - [ ] `autoStartRecording: true` (SessionSettings object field) opt-in via parent input (not always-on)
251
244
  - [ ] REC indicator visible to all participants when active
252
245
  - [ ] Recording lifecycle handlers wrapped in `NgZone.run` + `cd.markForCheck()`
253
246
  - [ ] Screen-share button feature-detects `getDisplayMedia`
254
247
  - [ ] Screen-share button triggered from `(click)`, not `ngOnInit`
255
- - [ ] `onScreenShareStarted` / `onScreenShareEnded` wrapped in NgZone
248
+ - [ ] `onScreenShareStarted` / `onScreenShareStopped` wrapped in NgZone
256
249
  - [ ] Layout swap renders screen-share view + thumbnail strip
257
250
  - [ ] `trackBy` on `*ngFor` for participant tiles
258
251
  - [ ] Recordings retrieved via server-side proxy, NOT direct dashboard API call from Angular
@@ -4,6 +4,8 @@ Same SDK API as web. Angular-specific deltas: NgZone-wrapped listener callbacks,
4
4
 
5
5
  **Read first:** `cometchat-react-calls/references/ringing-integration.md` — full architecture, hard rules, anti-patterns.
6
6
 
7
+ > ⚠️ **Testing ringing needs TWO ISOLATED browser contexts — not two tabs.** The Chat SDK keeps **one session per origin** (login persists in IndexedDB/localStorage keyed by `appId`, one WebSocket shared across all tabs). Two tabs of the same browser can't hold two different logins — the second overwrites the shared session, so there's no independent callee and `onIncomingCallReceived` never fires (the classic "Accept never appears"). Use a normal window for the caller + an **Incognito/private window** (or a different browser, or a second device) for the callee. *(Session/meeting mode — both sides `joinSession` a shared id — works fine in two same-browser tabs; only ringing needs isolated contexts.)*
8
+
7
9
  ---
8
10
 
9
11
  ## CallSignalingService
@@ -119,7 +121,7 @@ Web sister rules apply, plus Angular-specific:
119
121
  - [ ] All callbacks wrapped in `NgZone.run`
120
122
  - [ ] `IncomingCallComponent` mounted in `app.component.html`, not a route
121
123
  - [ ] `removeCallListener` in `ngOnDestroy`
122
- - [ ] Smoke: 2 tabs, caller initiates, recipient sees alertdialog, accept opens session
124
+ - [ ] Smoke: **two ISOLATED browser contexts** (normal + Incognito window, or two browsers/devices — NOT two tabs of one browser; the Chat SDK is a single shared session per origin), caller initiates, recipient sees alertdialog, accept opens session
123
125
 
124
126
  ---
125
127
 
@@ -25,8 +25,8 @@ export class ShareInviteService {
25
25
 
26
26
  bind(sessionId: string): () => void {
27
27
  const handler = () => this.zone.run(() => this.share(sessionId));
28
- CometChatCalls.addEventListener("onShareInviteButtonClicked", handler);
29
- return () => CometChatCalls.removeEventListener("onShareInviteButtonClicked", handler);
28
+ // addEventListener returns its own unsubscribe fn — there is no removeEventListener.
29
+ return CometChatCalls.addEventListener("onShareInviteButtonClicked", handler);
30
30
  }
31
31
 
32
32
  async share(sessionId: string): Promise<void> {
@@ -80,10 +80,16 @@ export class CallComponent implements OnInit, OnDestroy {
80
80
 
81
81
  ## Pass the kit setting
82
82
 
83
+ The share-invite button visibility is a **`SessionSettings` object field** (`hideShareInviteButton`)
84
+ passed to `joinSession` — there is NO `setHideShareInviteButton` builder method.
85
+
83
86
  ```ts
84
- const callSettings = new CallSettingsBuilder()
85
- .setHideShareInviteButton(false)
86
- .build();
87
+ const sessionSettings = {
88
+ sessionType: "VIDEO",
89
+ hideShareInviteButton: false, // default false; set true to hide the kit's own button
90
+ } as const;
91
+
92
+ await CometChatCalls.joinSession(callToken, sessionSettings, container);
87
93
  ```
88
94
 
89
95
  ---
@@ -0,0 +1,29 @@
1
+ # Virtual Background (Angular)
2
+
3
+ Angular calls run on the same `@cometchat/calls-sdk-javascript@5` as React — reached via the kit's `CometChatUIKitCalls` alias (exported from `@cometchat/chat-uikit-angular`). Web supports virtual background; native iOS/Android do not.
4
+
5
+ ## A. Built-in setting (recommended)
6
+
7
+ Turn on the kit's own Virtual Background control via the call settings builder — it renders the blur/image/clear picker inside the call UI:
8
+
9
+ ```ts
10
+ import { CometChatUIKitCalls } from "@cometchat/chat-uikit-angular";
11
+
12
+ const settings = new CometChatUIKitCalls.CallSettingsBuilder()
13
+ .enableDefaultLayout(true)
14
+ .showVirtualBackgroundSetting(true) // built-in VB control
15
+ .build();
16
+ // pass the UNBUILT builder to <cometchat-ongoing-call [callSettingsBuilder]="…"> per §3
17
+ ```
18
+
19
+ ## B. Apply programmatically (custom surface)
20
+
21
+ ```ts
22
+ CometChatUIKitCalls.setVirtualBackgroundBlurLevel(50); // blur 0–100
23
+ CometChatUIKitCalls.setVirtualBackgroundImage("https://…/bg.jpg"); // custom image
24
+ CometChatUIKitCalls.clearVirtualBackground(); // remove
25
+ ```
26
+
27
+ Run these from a method on your call component (e.g. a toolbar button handler); under OnPush, mutating component state in the handler is fine — use signals for any state you render (see §1.5).
28
+
29
+ Verified: `CallSettingsBuilder.showVirtualBackgroundSetting(boolean)`, static `setVirtualBackgroundBlurLevel(number)` / `setVirtualBackgroundImage(string)` / `clearVirtualBackground()` (deprecated aliases: `setBackgroundBlur`/`setBackgroundImage`).