@cometchat/skills 4.3.0 → 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.
- package/LICENSE +21 -0
- package/bin/install.js +27 -0
- package/package.json +14 -1
- package/skills/cometchat/SKILL.md +233 -69
- package/skills/cometchat/references/asking-questions.md +48 -0
- package/skills/cometchat-a11y/SKILL.md +3 -2
- package/skills/cometchat-android-v5/SKILL.md +2 -1
- package/skills/cometchat-android-v5-calls/SKILL.md +36 -22
- package/skills/cometchat-android-v5-calls/references/README.md +1 -1
- package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +7 -5
- package/skills/cometchat-android-v5-calls/references/audio-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/call-layouts.md +33 -25
- package/skills/cometchat-android-v5-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v5-calls/references/custom-ui.md +5 -5
- package/skills/cometchat-android-v5-calls/references/event-listeners.md +2 -2
- package/skills/cometchat-android-v5-calls/references/idle-timeout.md +20 -14
- package/skills/cometchat-android-v5-calls/references/in-call-chat.md +1 -1
- package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +43 -27
- package/skills/cometchat-android-v5-calls/references/participant-management.md +3 -3
- package/skills/cometchat-android-v5-calls/references/raise-hand.md +25 -19
- package/skills/cometchat-android-v5-calls/references/recording.md +2 -2
- package/skills/cometchat-android-v5-calls/references/ringing-integration.md +1 -1
- package/skills/cometchat-android-v5-calls/references/screen-sharing.md +5 -9
- package/skills/cometchat-android-v5-calls/references/session-settings.md +3 -3
- package/skills/cometchat-android-v5-calls/references/setup.md +1 -1
- package/skills/cometchat-android-v5-calls/references/share-invite.md +9 -4
- package/skills/cometchat-android-v5-calls/references/video-controls.md +4 -4
- package/skills/cometchat-android-v5-calls/references/voip-calling.md +2 -2
- package/skills/cometchat-android-v5-components/SKILL.md +4 -3
- package/skills/cometchat-android-v5-core/SKILL.md +5 -3
- package/skills/cometchat-android-v5-customization/SKILL.md +171 -7
- package/skills/cometchat-android-v5-extensions/SKILL.md +7 -4
- package/skills/cometchat-android-v5-features/SKILL.md +5 -4
- package/skills/cometchat-android-v5-placement/SKILL.md +2 -1
- package/skills/cometchat-android-v5-production/SKILL.md +2 -1
- package/skills/cometchat-android-v5-push/SKILL.md +2 -3
- package/skills/cometchat-android-v5-testing/SKILL.md +2 -1
- package/skills/cometchat-android-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-android-v5-troubleshooting/SKILL.md +3 -2
- package/skills/cometchat-android-v6/SKILL.md +2 -1
- package/skills/cometchat-android-v6-builder-settings/SKILL.md +11 -7
- package/skills/cometchat-android-v6-calls/SKILL.md +79 -18
- package/skills/cometchat-android-v6-calls/references/advanced-features.md +87 -0
- package/skills/cometchat-android-v6-calls/references/call-layouts.md +24 -15
- package/skills/cometchat-android-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-android-v6-calls/references/device-management.md +17 -16
- package/skills/cometchat-android-v6-calls/references/idle-timeout.md +7 -4
- package/skills/cometchat-android-v6-calls/references/in-call-chat.md +13 -8
- package/skills/cometchat-android-v6-calls/references/raise-hand.md +6 -4
- package/skills/cometchat-android-v6-compose-components/SKILL.md +52 -29
- package/skills/cometchat-android-v6-compose-customization/SKILL.md +156 -1
- package/skills/cometchat-android-v6-compose-placement/SKILL.md +129 -40
- package/skills/cometchat-android-v6-compose-theming/SKILL.md +27 -1
- package/skills/cometchat-android-v6-core/SKILL.md +208 -28
- package/skills/cometchat-android-v6-events/SKILL.md +4 -1
- package/skills/cometchat-android-v6-extensions/SKILL.md +2 -1
- package/skills/cometchat-android-v6-features/SKILL.md +26 -2
- package/skills/cometchat-android-v6-kotlin-components/SKILL.md +31 -1
- package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +172 -1
- package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +20 -5
- package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +36 -5
- package/skills/cometchat-android-v6-migration/SKILL.md +44 -42
- package/skills/cometchat-android-v6-production/SKILL.md +6 -3
- package/skills/cometchat-android-v6-push/SKILL.md +43 -2
- package/skills/cometchat-android-v6-testing/SKILL.md +11 -8
- package/skills/cometchat-android-v6-troubleshooting/SKILL.md +26 -5
- package/skills/cometchat-angular-calls/SKILL.md +256 -389
- package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +3 -2
- package/skills/cometchat-angular-calls/references/call-layouts.md +29 -12
- package/skills/cometchat-angular-calls/references/call-session.md +2 -2
- package/skills/cometchat-angular-calls/references/custom-ui.md +18 -10
- package/skills/cometchat-angular-calls/references/device-management.md +53 -34
- package/skills/cometchat-angular-calls/references/group-calls.md +45 -24
- package/skills/cometchat-angular-calls/references/idle-timeout.md +31 -15
- package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +7 -6
- package/skills/cometchat-angular-calls/references/raise-hand.md +9 -4
- package/skills/cometchat-angular-calls/references/recording-screen-share.md +32 -39
- package/skills/cometchat-angular-calls/references/ringing-integration.md +3 -1
- package/skills/cometchat-angular-calls/references/share-invite.md +11 -5
- package/skills/cometchat-angular-calls/references/virtual-background.md +29 -0
- package/skills/cometchat-angular-components/SKILL.md +149 -620
- package/skills/cometchat-angular-core/SKILL.md +232 -312
- package/skills/cometchat-angular-customization/SKILL.md +415 -223
- package/skills/cometchat-angular-features/SKILL.md +216 -334
- package/skills/cometchat-angular-patterns/SKILL.md +168 -359
- package/skills/cometchat-angular-placement/SKILL.md +189 -560
- package/skills/cometchat-angular-production/SKILL.md +241 -92
- package/skills/cometchat-angular-push/SKILL.md +280 -294
- package/skills/cometchat-angular-testing/SKILL.md +430 -158
- package/skills/cometchat-angular-theming/SKILL.md +190 -265
- package/skills/cometchat-angular-troubleshooting/SKILL.md +192 -157
- package/skills/cometchat-astro-patterns/SKILL.md +2 -1
- package/skills/cometchat-calls/SKILL.md +25 -19
- package/skills/cometchat-calls/references/use-case-broadcast.md +15 -10
- package/skills/cometchat-calls/references/use-case-marketplace.md +2 -3
- package/skills/cometchat-calls/references/use-case-support.md +3 -4
- package/skills/cometchat-calls/references/use-case-team.md +23 -12
- package/skills/cometchat-calls/references/use-case-telehealth.md +3 -4
- package/skills/cometchat-components/SKILL.md +163 -25
- package/skills/cometchat-core/SKILL.md +255 -19
- package/skills/cometchat-customization/SKILL.md +50 -25
- package/skills/cometchat-features/SKILL.md +313 -34
- package/skills/cometchat-flutter-v5/SKILL.md +10 -4
- package/skills/cometchat-flutter-v5-calls/SKILL.md +188 -158
- package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +48 -24
- package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +20 -15
- package/skills/cometchat-flutter-v5-calls/references/call-session.md +100 -145
- package/skills/cometchat-flutter-v5-calls/references/device-management.md +12 -8
- package/skills/cometchat-flutter-v5-calls/references/group-calls.md +30 -36
- package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +15 -13
- package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +12 -9
- package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +115 -65
- package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +41 -30
- package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +17 -14
- package/skills/cometchat-flutter-v5-calls/references/share-invite.md +8 -2
- package/skills/cometchat-flutter-v5-conversations/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-core/SKILL.md +5 -4
- package/skills/cometchat-flutter-v5-customization/SKILL.md +136 -5
- package/skills/cometchat-flutter-v5-events/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-messages/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-production/SKILL.md +15 -6
- package/skills/cometchat-flutter-v5-push/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-testing/SKILL.md +17 -6
- package/skills/cometchat-flutter-v5-theming/SKILL.md +2 -1
- package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +7 -6
- package/skills/cometchat-flutter-v5-users-groups/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6/SKILL.md +17 -16
- package/skills/cometchat-flutter-v6-calls/SKILL.md +72 -57
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +5 -3
- package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +89 -0
- package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +15 -12
- package/skills/cometchat-flutter-v6-calls/references/call-session.md +2 -2
- package/skills/cometchat-flutter-v6-calls/references/device-management.md +9 -3
- package/skills/cometchat-flutter-v6-calls/references/group-calls.md +10 -10
- package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +15 -7
- package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +6 -3
- package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +23 -16
- package/skills/cometchat-flutter-v6-components/SKILL.md +32 -11
- package/skills/cometchat-flutter-v6-conversations/SKILL.md +39 -11
- package/skills/cometchat-flutter-v6-core/SKILL.md +182 -21
- package/skills/cometchat-flutter-v6-customization/SKILL.md +97 -25
- package/skills/cometchat-flutter-v6-events/SKILL.md +3 -2
- package/skills/cometchat-flutter-v6-features/SKILL.md +15 -6
- package/skills/cometchat-flutter-v6-messages/SKILL.md +111 -60
- package/skills/cometchat-flutter-v6-migration/SKILL.md +18 -25
- package/skills/cometchat-flutter-v6-placement/SKILL.md +79 -50
- package/skills/cometchat-flutter-v6-production/SKILL.md +13 -12
- package/skills/cometchat-flutter-v6-push/SKILL.md +41 -19
- package/skills/cometchat-flutter-v6-testing/SKILL.md +4 -4
- package/skills/cometchat-flutter-v6-theming/SKILL.md +38 -5
- package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +182 -17
- package/skills/cometchat-flutter-v6-users-groups/SKILL.md +12 -4
- package/skills/cometchat-i18n/SKILL.md +139 -78
- package/skills/cometchat-ios/SKILL.md +4 -2
- package/skills/cometchat-ios-calls/SKILL.md +225 -95
- package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +11 -9
- package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +45 -0
- package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +6 -7
- package/skills/cometchat-ios-calls/references/call-layouts.md +31 -91
- package/skills/cometchat-ios-calls/references/call-session.md +51 -54
- package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +33 -29
- package/skills/cometchat-ios-calls/references/custom-ui.md +38 -38
- package/skills/cometchat-ios-calls/references/group-calls.md +33 -70
- package/skills/cometchat-ios-calls/references/idle-timeout.md +24 -25
- package/skills/cometchat-ios-calls/references/in-call-chat.md +19 -23
- package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +128 -70
- package/skills/cometchat-ios-calls/references/picture-in-picture.md +20 -20
- package/skills/cometchat-ios-calls/references/raise-hand.md +14 -227
- package/skills/cometchat-ios-calls/references/recording-screen-share.md +35 -122
- package/skills/cometchat-ios-calls/references/ringing-integration.md +17 -16
- package/skills/cometchat-ios-calls/references/share-invite.md +8 -12
- package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +4 -4
- package/skills/cometchat-ios-components/SKILL.md +200 -12
- package/skills/cometchat-ios-core/SKILL.md +173 -45
- package/skills/cometchat-ios-customization/SKILL.md +276 -110
- package/skills/cometchat-ios-features/SKILL.md +64 -36
- package/skills/cometchat-ios-placement/SKILL.md +15 -12
- package/skills/cometchat-ios-production/SKILL.md +12 -4
- package/skills/cometchat-ios-push/SKILL.md +53 -19
- package/skills/cometchat-ios-testing/SKILL.md +14 -9
- package/skills/cometchat-ios-theming/SKILL.md +39 -3
- package/skills/cometchat-ios-troubleshooting/SKILL.md +41 -21
- package/skills/cometchat-native-bare-patterns/SKILL.md +34 -17
- package/skills/cometchat-native-calls/SKILL.md +28 -16
- package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +2 -2
- package/skills/cometchat-native-calls/references/call-layouts.md +15 -14
- package/skills/cometchat-native-calls/references/call-session.md +2 -2
- package/skills/cometchat-native-calls/references/custom-ui.md +12 -8
- package/skills/cometchat-native-calls/references/device-management.md +53 -30
- package/skills/cometchat-native-calls/references/group-calls.md +35 -30
- package/skills/cometchat-native-calls/references/idle-timeout.md +6 -6
- package/skills/cometchat-native-calls/references/in-call-chat.md +10 -8
- package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +2 -2
- package/skills/cometchat-native-calls/references/raise-hand.md +15 -13
- package/skills/cometchat-native-calls/references/recording-screen-share.md +49 -170
- package/skills/cometchat-native-calls/references/share-invite.md +7 -5
- package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +4 -2
- package/skills/cometchat-native-components/SKILL.md +84 -52
- package/skills/cometchat-native-core/SKILL.md +101 -32
- package/skills/cometchat-native-customization/SKILL.md +150 -28
- package/skills/cometchat-native-expo-patterns/SKILL.md +57 -26
- package/skills/cometchat-native-features/SKILL.md +23 -16
- package/skills/cometchat-native-placement/SKILL.md +19 -10
- package/skills/cometchat-native-production/SKILL.md +9 -3
- package/skills/cometchat-native-push/SKILL.md +2 -1
- package/skills/cometchat-native-testing/SKILL.md +1 -2
- package/skills/cometchat-native-theming/SKILL.md +54 -29
- package/skills/cometchat-native-troubleshooting/SKILL.md +9 -3
- package/skills/cometchat-nextjs-patterns/SKILL.md +20 -6
- package/skills/cometchat-placement/SKILL.md +42 -3
- package/skills/cometchat-production/SKILL.md +12 -5
- package/skills/cometchat-react-calls/SKILL.md +220 -10
- package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +4 -3
- package/skills/cometchat-react-calls/references/call-layouts.md +5 -6
- package/skills/cometchat-react-calls/references/call-session.md +1 -1
- package/skills/cometchat-react-calls/references/custom-ui.md +61 -15
- package/skills/cometchat-react-calls/references/device-management.md +55 -51
- package/skills/cometchat-react-calls/references/group-calls.md +18 -23
- package/skills/cometchat-react-calls/references/idle-timeout.md +25 -12
- package/skills/cometchat-react-calls/references/in-call-chat.md +7 -7
- package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +9 -11
- package/skills/cometchat-react-calls/references/raise-hand.md +14 -14
- package/skills/cometchat-react-calls/references/recording-screen-share.md +39 -38
- package/skills/cometchat-react-calls/references/ringing-integration.md +2 -2
- package/skills/cometchat-react-calls/references/share-invite.md +4 -5
- package/skills/cometchat-react-calls/references/testing-calls-on-web.md +20 -2
- package/skills/cometchat-react-calls/references/virtual-background.md +32 -0
- package/skills/cometchat-react-patterns/SKILL.md +44 -4
- package/skills/cometchat-react-push/SKILL.md +258 -72
- package/skills/cometchat-react-router-patterns/SKILL.md +10 -4
- package/skills/cometchat-react-testing/SKILL.md +14 -5
- package/skills/cometchat-theming/SKILL.md +181 -18
- 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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
.
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
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
|
-
|
|
107
|
+
CometChatCalls.stopScreenSharing(); // sync, void — not awaitable
|
|
109
108
|
this.sharing = false;
|
|
110
109
|
this.shareEnded.emit();
|
|
111
110
|
} else {
|
|
112
111
|
try {
|
|
113
|
-
|
|
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
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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 `
|
|
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
|
-
- [ ] `
|
|
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` / `
|
|
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:
|
|
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
|
-
|
|
29
|
-
return
|
|
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
|
|
85
|
-
|
|
86
|
-
|
|
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`).
|