@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
|
@@ -3,7 +3,6 @@ name: cometchat-native-components
|
|
|
3
3
|
description: "Component catalog for the CometChat React Native UI Kit v5 — names, props, slot views, request builders, hide flags, style shape. Always loaded before writing CometChat* JSX."
|
|
4
4
|
license: "MIT"
|
|
5
5
|
compatibility: "Node.js >=18; React Native >=0.70; @cometchat/chat-uikit-react-native ^5"
|
|
6
|
-
allowed-tools: "shell, file-read, file-search, file-list, ask-user"
|
|
7
6
|
metadata:
|
|
8
7
|
author: "CometChat"
|
|
9
8
|
version: "3.0.0"
|
|
@@ -16,7 +15,7 @@ Teaches Claude every component the React Native UI Kit exports, with the props,
|
|
|
16
15
|
|
|
17
16
|
**Read this skill before writing any `<CometChat*>` JSX.**
|
|
18
17
|
|
|
19
|
-
Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/ui-kit/react-native/components-overview.mdx` + per-component doc pages.
|
|
18
|
+
Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/ui-kit/react-native/components-overview.mdx` + per-component doc pages. **Official docs:** https://www.cometchat.com/docs/ui-kit/react-native/components-overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP).
|
|
20
19
|
|
|
21
20
|
---
|
|
22
21
|
|
|
@@ -24,6 +23,8 @@ Ground truth: `packages/ChatUiKit/src/index.ts` from the UI Kit source + `docs/u
|
|
|
24
23
|
|
|
25
24
|
The React Native UI Kit is a set of independent components that you compose into chat layouts. Three patterns cover almost every use case:
|
|
26
25
|
|
|
26
|
+
> ⛔ **Only the components in THIS catalog exist — do not invent or recall names from v4/older memory.** Before emitting ANY `CometChat*` component, confirm it's in this catalog; if it's not here, it doesn't exist (→ unresolved-import build failure). **There is no all-in-one component:** the v4 composites `CometChatConversationsWithMessages`, `CometChatUsersWithMessages`, `CometChatGroupsWithMessages`, the `CometChatMessages` composite, and the `CometChatUI` god-component are all **absent in this RN kit** (verified against its exports) — compose the panes yourself per the table below. This is the #1 v4-memory hallucination.
|
|
27
|
+
|
|
27
28
|
| Pattern | Components |
|
|
28
29
|
|---|---|
|
|
29
30
|
| **Two-pane** (inbox) | `CometChatConversations` + `CometChatMessageHeader` + `CometChatMessageList` + `CometChatMessageComposer` |
|
|
@@ -44,13 +45,13 @@ Four prop families you'll see across the catalog:
|
|
|
44
45
|
|---|---|---|
|
|
45
46
|
| **Callback** | `on<Event>={(param) => void}` | `onItemPress={(conv) => ...}` • `onError={(err) => ...}` • `onSendButtonPress={(msg) => ...}` |
|
|
46
47
|
| **Request builder** | `<entity>RequestBuilder={new CometChat.<Entity>RequestBuilder()}` | `conversationsRequestBuilder={new CometChat.ConversationsRequestBuilder().setLimit(20)}` |
|
|
47
|
-
| **Hide / visibility toggle** | `hide<Feature>={boolean}` \| `<feature>Visibility={boolean}` | `
|
|
48
|
-
| **View slot (replace a section)** | `<Slot>View={(params) => JSX}` — **PascalCase**, returns JSX | `TitleView={(user, group) => <MyTitle />}` • `LeadingView={(
|
|
49
|
-
| **Style** | `style={{ containerStyle: {}, itemStyle: { ... } }}` | see §
|
|
48
|
+
| **Hide / visibility toggle** | `hide<Feature>={boolean}` \| `<feature>Visibility={boolean}` | `receiptsVisibility={true}` • `hideReplyInThreadOption={true}` |
|
|
49
|
+
| **View slot (replace a section)** | `<Slot>View={(params) => JSX}` — **PascalCase**, returns JSX | `TitleView={({ user, group }) => <MyTitle />}` • `LeadingView={({ user, group }) => <MyAvatar />}` |
|
|
50
|
+
| **Style** | `style={{ containerStyle: {}, itemStyle: { ... } }}` | see § 14 Style shape |
|
|
50
51
|
|
|
51
52
|
**On-events take positional args, not an event object.** `onItemPress={(conversation) => ...}` receives the `CometChat.Conversation` directly — no `event.target`.
|
|
52
53
|
|
|
53
|
-
**Slot views are capitalized**: `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `
|
|
54
|
+
**Slot views are capitalized**: `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyView`, `ErrorView`, `LoadingView`, `AuxiliaryButtonView`, `ItemView`. Each slot function receives a **single destructured object** — typically `({ user, group }) => JSX` — NOT positional `(user, group)` args.
|
|
54
55
|
|
|
55
56
|
**Style is nested objects.** Top-level `style` accepts `containerStyle` (outermost wrapper) then component-specific keys. Each inner style is a regular React Native `StyleSheet` object.
|
|
56
57
|
|
|
@@ -79,12 +80,12 @@ import { CometChat } from "@cometchat/chat-sdk-react-native";
|
|
|
79
80
|
}}
|
|
80
81
|
onError={(err) => console.error(err)}
|
|
81
82
|
hideHeader={false}
|
|
82
|
-
|
|
83
|
+
receiptsVisibility={true}
|
|
83
84
|
style={{ containerStyle: { backgroundColor: "#fff" } }}
|
|
84
85
|
/>
|
|
85
86
|
```
|
|
86
87
|
|
|
87
|
-
Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onError`, `onEmpty`, `
|
|
88
|
+
Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onError`, `onEmpty`, `receiptsVisibility` (default `true`), `hideHeader`, `showSearchBar` (default `false`), `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `EmptyView`, `ErrorView`, `LoadingView`, `style`.
|
|
88
89
|
|
|
89
90
|
### CometChatUsers
|
|
90
91
|
|
|
@@ -93,11 +94,11 @@ Key props: `conversationsRequestBuilder`, `onItemPress`, `onItemLongPress`, `onE
|
|
|
93
94
|
usersRequestBuilder={new CometChat.UsersRequestBuilder().setLimit(30)}
|
|
94
95
|
onItemPress={(user) => openChatWith(user)}
|
|
95
96
|
searchKeyword=""
|
|
96
|
-
|
|
97
|
+
usersStatusVisibility={true}
|
|
97
98
|
/>
|
|
98
99
|
```
|
|
99
100
|
|
|
100
|
-
Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKeyword`, `
|
|
101
|
+
Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKeyword`, `usersStatusVisibility` (default `true`), `LeadingView`, `TitleView`, `SubtitleView`, `EmptyView`, `ErrorView`, `LoadingView`, `style`.
|
|
101
102
|
|
|
102
103
|
### CometChatGroups
|
|
103
104
|
|
|
@@ -110,7 +111,7 @@ Key props: `usersRequestBuilder`, `onItemPress`, `onError`, `onEmpty`, `searchKe
|
|
|
110
111
|
/>
|
|
111
112
|
```
|
|
112
113
|
|
|
113
|
-
Key props: same shape as Users, with `groupsRequestBuilder` instead.
|
|
114
|
+
Key props: same shape as Users, with `groupsRequestBuilder` instead — plus a `hideSearch` flag (Groups has one; Users does not). Slot views are `EmptyView` / `ErrorView` / `LoadingView`.
|
|
114
115
|
|
|
115
116
|
### CometChatGroupMembers
|
|
116
117
|
|
|
@@ -126,7 +127,7 @@ Key props: same shape as Users, with `groupsRequestBuilder` instead.
|
|
|
126
127
|
/>
|
|
127
128
|
```
|
|
128
129
|
|
|
129
|
-
Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupMemberRequestBuilder`, `onItemPress`, `onError
|
|
130
|
+
Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupMemberRequestBuilder`, `onItemPress`, `onError` (no args — `() => void`), `showBackButton` (toggle the back button; there is no `onBack` prop), `hideKickMemberOption`, `hideBanMemberOption`, `hideScopeChangeOption`, slot views for each row section, `style`.
|
|
130
131
|
|
|
131
132
|
---
|
|
132
133
|
|
|
@@ -137,15 +138,15 @@ Key props: `group` (**required** — pass a `CometChat.Group` instance), `groupM
|
|
|
137
138
|
```tsx
|
|
138
139
|
<CometChatMessageHeader
|
|
139
140
|
user={selectedUser} // OR group — never both
|
|
140
|
-
|
|
141
|
+
showBackButton={true}
|
|
141
142
|
onBack={() => navigation.goBack()}
|
|
142
|
-
AuxiliaryButtonView={(user, group) => <CometChatCallButtons user={user} group={group} />}
|
|
143
|
-
TitleView={(user, group) => <CustomTitle />}
|
|
144
|
-
SubtitleView={(user, group) => <CustomSubtitle />}
|
|
143
|
+
AuxiliaryButtonView={({ user, group }) => <CometChatCallButtons user={user} group={group} />}
|
|
144
|
+
TitleView={({ user, group }) => <CustomTitle />}
|
|
145
|
+
SubtitleView={({ user, group }) => <CustomSubtitle />}
|
|
145
146
|
/>
|
|
146
147
|
```
|
|
147
148
|
|
|
148
|
-
Key props: `user` OR `group` (one required), `
|
|
149
|
+
Key props: `user` OR `group` (one required), `showBackButton` (default `false`), `hideVideoCallButton`, `hideVoiceCallButton`, `onBack`, `TitleView`, `SubtitleView`, `LeadingView`, `TrailingView`, `AuxiliaryButtonView`, `ItemView`, `style`. All slot views take a single object — `({ user, group }) => JSX`, NOT positional `(user, group)`.
|
|
149
150
|
|
|
150
151
|
### CometChatMessageList
|
|
151
152
|
|
|
@@ -159,16 +160,16 @@ Scrollable message feed. Handles reactions, receipts, mentions, threads, and med
|
|
|
159
160
|
.setUID(selectedUser.getUid())
|
|
160
161
|
.setLimit(30)
|
|
161
162
|
}
|
|
162
|
-
hideReplyInThreadOption={true} // SEE HARD RULE §
|
|
163
|
-
|
|
163
|
+
hideReplyInThreadOption={true} // SEE HARD RULE § 12
|
|
164
|
+
receiptsVisibility={true}
|
|
164
165
|
onThreadRepliesPress={(message, bubbleView) => openThreadPanel(message)}
|
|
165
166
|
onError={(err) => console.error(err)}
|
|
166
|
-
|
|
167
|
+
EmptyView={() => <Text>No messages yet</Text>}
|
|
167
168
|
style={{ containerStyle: { backgroundColor: "#fff" } }}
|
|
168
169
|
/>
|
|
169
170
|
```
|
|
170
171
|
|
|
171
|
-
Key props: `user` OR `group`, `parentMessageId` (for thread replies), `messageRequestBuilder`, `goToMessageId` (scroll-to-message), `searchKeyword` (highlight in bubbles), `textFormatters`, `templates` (custom message type rendering — `CometChatMessageTemplate[]`), `hideReplyInThreadOption` **see hard rule §
|
|
172
|
+
Key props: `user` OR `group`, `parentMessageId` (for thread replies), `messageRequestBuilder`, `goToMessageId` (scroll-to-message), `searchKeyword` (highlight in bubbles), `textFormatters`, `templates` (custom message type rendering — `CometChatMessageTemplate[]`), `hideReplyInThreadOption` **see hard rule § 12**, `receiptsVisibility` (default `true`), `hideReactionOption`, `hideReplyOption`, `hideEditMessageOption`, `hideDeleteMessageOption`, `hideTranslateMessageOption`, `hideMessagePrivatelyOption`, `hideCopyMessageOption`, `hideMessageInfoOption`, `hideFlagMessageOption`, `hideShareMessageOption`, `dateSeparatorPattern` (there is no `hideDateSeparator` flag), `onThreadRepliesPress`, `onError`, `EmptyView` / `ErrorView` / `LoadingView`, `style`.
|
|
172
173
|
|
|
173
174
|
### CometChatMessageComposer
|
|
174
175
|
|
|
@@ -177,7 +178,8 @@ Rich text input. Attachments, mentions, voice notes, sticker picker, reaction ke
|
|
|
177
178
|
```tsx
|
|
178
179
|
<CometChatMessageComposer
|
|
179
180
|
user={selectedUser}
|
|
180
|
-
|
|
181
|
+
initialComposertext="Type a message..."
|
|
182
|
+
keyboardAvoidingViewProps={Platform.OS === "android" ? {} : { behavior: "padding" }}
|
|
181
183
|
onSendButtonPress={(message) => console.log("sent", message)}
|
|
182
184
|
onError={(err) => console.error(err)}
|
|
183
185
|
disableMentions={false}
|
|
@@ -185,12 +187,14 @@ Rich text input. Attachments, mentions, voice notes, sticker picker, reaction ke
|
|
|
185
187
|
new CometChatMentionsFormatter(),
|
|
186
188
|
new CometChatUrlsFormatter(),
|
|
187
189
|
]}
|
|
188
|
-
AuxiliaryButtonView={() => <CustomAuxButton />}
|
|
189
|
-
attachmentOptions={(user, group) => [ /* CometChatMessageComposerAction[] */ ]}
|
|
190
|
+
AuxiliaryButtonView={({ user, group }) => <CustomAuxButton />}
|
|
191
|
+
attachmentOptions={({ user, group }) => [ /* CometChatMessageComposerAction[] */ ]}
|
|
190
192
|
/>
|
|
191
193
|
```
|
|
192
194
|
|
|
193
|
-
Key props: `user` OR `group`, `parentMessageId` (for thread composer), `
|
|
195
|
+
Key props: `user` OR `group`, `parentMessageId` (for thread composer), `initialComposertext`, `keyboardAvoidingViewProps`, `onSendButtonPress`, `onError`, `onTextChange`, `disableMentions`, `disableSoundForOutgoingMessages`, `textFormatters`, `attachmentOptions` (single-object `({ user, group }) =>`), `HeaderView`, `AuxiliaryButtonView`, `SendButtonView`, `style`.
|
|
196
|
+
|
|
197
|
+
**Keyboard avoidance is the composer's job.** The kit composer owns it via `keyboardAvoidingViewProps` — do **not** wrap Header/List/Composer in an external `KeyboardAvoidingView` (the kit sample app does not). Pass `{ behavior: "padding" }` on iOS, `{}` on Android (Android relies on the manifest's `android:windowSoftInputMode="adjustResize"`).
|
|
194
198
|
|
|
195
199
|
### CometChatCompactMessageComposer
|
|
196
200
|
|
|
@@ -204,7 +208,7 @@ Compact variant for small screens. Auto-expanding input, rich-text, attachments.
|
|
|
204
208
|
/>
|
|
205
209
|
```
|
|
206
210
|
|
|
207
|
-
Use this instead of `CometChatMessageComposer` in drawers, widgets, or embedded placements. Same prop family
|
|
211
|
+
Use this instead of `CometChatMessageComposer` in drawers, widgets, or embedded placements. Same prop family — but note the placeholder prop here is `placeHolderText` (capital H), distinct from the standard composer's `initialComposertext`.
|
|
208
212
|
|
|
209
213
|
### CometChatThreadHeader
|
|
210
214
|
|
|
@@ -213,11 +217,12 @@ Header for a threaded reply view — parent message + reply count + close.
|
|
|
213
217
|
```tsx
|
|
214
218
|
<CometChatThreadHeader
|
|
215
219
|
parentMessage={threadParent}
|
|
216
|
-
|
|
217
|
-
hideReplyCount={false}
|
|
220
|
+
replyCountVisibility={true}
|
|
218
221
|
/>
|
|
219
222
|
```
|
|
220
223
|
|
|
224
|
+
Key props: `parentMessage` (**required** — a `CometChat.BaseMessage`), `template` (`CometChatMessageTemplate`), `replyCountVisibility` (default `true`), `style`. There is no `onClose` prop — drive the panel's visibility from the parent's own state (see the threading composition below).
|
|
225
|
+
|
|
221
226
|
**Threading composition:**
|
|
222
227
|
|
|
223
228
|
```tsx
|
|
@@ -232,7 +237,6 @@ Header for a threaded reply view — parent message + reply count + close.
|
|
|
232
237
|
<>
|
|
233
238
|
<CometChatThreadHeader
|
|
234
239
|
parentMessage={threadMessage}
|
|
235
|
-
onClose={() => setThreadMessage(null)}
|
|
236
240
|
/>
|
|
237
241
|
<CometChatMessageList
|
|
238
242
|
user={selectedUser}
|
|
@@ -259,13 +263,14 @@ Voice + video call initiators. Drop into `AuxiliaryButtonView` on `CometChatMess
|
|
|
259
263
|
```tsx
|
|
260
264
|
<CometChatCallButtons
|
|
261
265
|
user={selectedUser}
|
|
262
|
-
onVoiceCallPress={(session) => navigation.navigate("OngoingCall", { session })}
|
|
263
|
-
onVideoCallPress={(session) => navigation.navigate("OngoingCall", { session })}
|
|
264
266
|
hideVideoCallButton={false}
|
|
265
267
|
hideVoiceCallButton={false}
|
|
268
|
+
onError={(err) => console.error(err)}
|
|
266
269
|
/>
|
|
267
270
|
```
|
|
268
271
|
|
|
272
|
+
Key props: `user` OR `group`, `hideVideoCallButton`, `hideVoiceCallButton`, `callSettingsBuilder`, `onError`. There are no `onVoiceCallPress` / `onVideoCallPress` props — the kit initiates the call and emits the outgoing-call event itself (see `cometchat-native-features` §3d for wiring the resulting overlay).
|
|
273
|
+
|
|
269
274
|
### CometChatIncomingCall
|
|
270
275
|
|
|
271
276
|
Incoming call notification. **Parent-controlled — must be conditionally rendered when an incoming-call event fires on `CometChat.addCallListener`'s `onIncomingCallReceived`.** Render at the app root so it's visible on any screen.
|
|
@@ -288,7 +293,7 @@ Ringing-while-calling screen. **Parent-controlled — NOT auto-mounted by `Comet
|
|
|
288
293
|
```tsx
|
|
289
294
|
<CometChatOutgoingCall
|
|
290
295
|
call={outgoingCall}
|
|
291
|
-
|
|
296
|
+
onEndCallButtonPressed={(call) => {}}
|
|
292
297
|
/>
|
|
293
298
|
```
|
|
294
299
|
|
|
@@ -299,8 +304,7 @@ In-call UI — tiles, controls, mute, end-call. **Parent-controlled — NOT auto
|
|
|
299
304
|
```tsx
|
|
300
305
|
<CometChatOngoingCall
|
|
301
306
|
sessionID={session.sessionId}
|
|
302
|
-
|
|
303
|
-
onCallEnded={() => navigation.goBack()}
|
|
307
|
+
callSettingsBuilder={callSettingsBuilder} // REQUIRED — a CometChatCalls.CallSettingsBuilder
|
|
304
308
|
/>
|
|
305
309
|
```
|
|
306
310
|
|
|
@@ -310,7 +314,7 @@ Scrollable call history.
|
|
|
310
314
|
|
|
311
315
|
```tsx
|
|
312
316
|
<CometChatCallLogs
|
|
313
|
-
|
|
317
|
+
callLogRequestBuilder={/* CallLogRequest builder from calls-sdk */}
|
|
314
318
|
onItemPress={(callLog) => openCallDetails(callLog)}
|
|
315
319
|
/>
|
|
316
320
|
```
|
|
@@ -352,14 +356,14 @@ Full-featured search across conversations + messages + users + groups. Scoped to
|
|
|
352
356
|
uid={selectedUser?.getUid()} // optional — scope to one user's chat
|
|
353
357
|
guid={selectedGroup?.getGuid()} // optional — scope to one group
|
|
354
358
|
onBack={() => setShowSearch(false)}
|
|
355
|
-
|
|
356
|
-
|
|
359
|
+
onConversationClicked={(conv, searchKeyword) => openConversation(conv)}
|
|
360
|
+
onMessageClicked={(msg, searchKeyword) => scrollToMessage(msg)}
|
|
357
361
|
/>
|
|
358
362
|
```
|
|
359
363
|
|
|
360
|
-
Key props: `uid` / `guid` (scope), `searchKeyword`, `onBack`, `
|
|
364
|
+
Key props: `uid` / `guid` (scope), `searchKeyword`, `onBack`, `onConversationClicked` (`(conversation, searchKeyword?) => void`), `onMessageClicked` (`(message, searchKeyword?) => void`), `searchIn` (`CometChatSearchScope[]` — controls which categories are searched; there are no per-category `hide*` flags or `onUserPress` / `onGroupPress` callbacks), `style`.
|
|
361
365
|
|
|
362
|
-
|
|
366
|
+
Mount it from your own UI (e.g. a search button in your screen's app bar) — `CometChatMessageHeader` does not expose a search callback.
|
|
363
367
|
|
|
364
368
|
> **Hard rule — never roll your own search.** Any request involving
|
|
365
369
|
> "search", "find messages", "search conversations", or "search across
|
|
@@ -371,7 +375,35 @@ Wire from `CometChatMessageHeader`'s `onSearchPress`.
|
|
|
371
375
|
|
|
372
376
|
---
|
|
373
377
|
|
|
374
|
-
## 6.
|
|
378
|
+
## 6. Notifications
|
|
379
|
+
|
|
380
|
+
### CometChatNotificationFeed
|
|
381
|
+
|
|
382
|
+
In-app notification feed UI — a full-screen, scrollable list of campaign/promotional notifications, each rendered as a native card (via `@cometchat/cards-react-native`). Handles fetching, pagination (infinite scroll), category filter chips, timestamp grouping, real-time WebSocket updates, pull-to-refresh, and read/delivered/engagement reporting automatically.
|
|
383
|
+
|
|
384
|
+
> **NOT push configuration.** This renders the in-app feed of received notifications. It does NOT set up push delivery (FCM/APNs token registration, dashboard providers, background wake). For that, see `cometchat-native-push`.
|
|
385
|
+
|
|
386
|
+
```tsx
|
|
387
|
+
<CometChatNotificationFeed
|
|
388
|
+
showBackButton={true}
|
|
389
|
+
onBackPress={() => navigation.goBack()}
|
|
390
|
+
onItemClick={(item) => openDetail(item)}
|
|
391
|
+
onActionClick={(item, action) => {
|
|
392
|
+
const { type, params, elementId } = action; // e.g. type "openUrl" → params.url
|
|
393
|
+
}}
|
|
394
|
+
notificationFeedRequestBuilder={
|
|
395
|
+
new CometChat.NotificationFeedRequestBuilder().setLimit(30).build()
|
|
396
|
+
}
|
|
397
|
+
/>
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Drop it into a screen/navigation destination — it manages its own data, state, and listeners; you only handle navigation callbacks. Renders with zero props (`<CometChatNotificationFeed />`) given an initialized SDK + logged-in user.
|
|
401
|
+
|
|
402
|
+
Key props: `title` (default `"Notifications"`), `showHeader` (default `true`), `showBackButton` (default `false`), `showFilterChips` (default `true`), `scrollToItemId` (deep-link to one item), `notificationFeedRequestBuilder` (`CometChat.NotificationFeedRequestBuilder`), `notificationCategoriesRequestBuilder` (`CometChat.NotificationCategoriesRequestBuilder`), `onItemClick` (`(feedItem) => void`), `onActionClick` (`(feedItem, action: { type, params, elementId }) => void`), `onError` (`(error: CometChat.CometChatException) => void`), `onBackPress` (`() => void`), `cardThemeMode` (`"auto" | "light" | "dark"`, default `"auto"`), `cardThemeOverride`, `style`. Slot views are `HeaderView` / `EmptyView` / `ErrorView` / `LoadingView` (each `() => JSX.Element`).
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## 7. Atoms (primitives for custom composition)
|
|
375
407
|
|
|
376
408
|
Building blocks the higher-level components use internally. Use inside `<Slot>View` overrides or custom screens.
|
|
377
409
|
|
|
@@ -398,7 +430,7 @@ All atoms take `style={}` in the same nested-object shape.
|
|
|
398
430
|
|
|
399
431
|
---
|
|
400
432
|
|
|
401
|
-
##
|
|
433
|
+
## 8. Bubbles
|
|
402
434
|
|
|
403
435
|
The message list renders bubbles automatically based on message type. Use them directly only when you need a custom bubble template.
|
|
404
436
|
|
|
@@ -423,7 +455,7 @@ Extension-provided bubbles (only present if the extension is registered):
|
|
|
423
455
|
|
|
424
456
|
---
|
|
425
457
|
|
|
426
|
-
##
|
|
458
|
+
## 9. Formatters (custom text rendering)
|
|
427
459
|
|
|
428
460
|
Pass via `CometChatMessageList.textFormatters` or the composer's same prop.
|
|
429
461
|
|
|
@@ -449,7 +481,7 @@ See `cometchat-native-customization` for the `extends CometChatTextFormatter` re
|
|
|
449
481
|
|
|
450
482
|
---
|
|
451
483
|
|
|
452
|
-
##
|
|
484
|
+
## 10. Infrastructure (static classes + event bus)
|
|
453
485
|
|
|
454
486
|
### CometChatUIKit
|
|
455
487
|
|
|
@@ -460,7 +492,7 @@ Static class — init + login + logout + send.
|
|
|
460
492
|
| `CometChatUIKit.init(settings)` | Initialize. Must resolve before any component renders. |
|
|
461
493
|
| `CometChatUIKit.login({ uid })` | Log in (dev mode). **Takes an object**, not `login("...")`. |
|
|
462
494
|
| `CometChatUIKit.login({ authToken })` | Log in with a server-minted token (production). Same method as dev, different arg. |
|
|
463
|
-
| `CometChatUIKit.getLoggedInUser()` | Returns current `CometChat.User`
|
|
495
|
+
| `CometChatUIKit.getLoggedInUser()` | Returns the current `CometChat.User` (Promise). **Throws `code: "NOT_FOUND"` when there is no session** — wrap in try/catch (see core §2). |
|
|
464
496
|
| `CometChatUIKit.logout()` | Log out + clear session. |
|
|
465
497
|
| `CometChatUIKit.sendCustomMessage(msg)` | Send custom message (used by calling, extensions). |
|
|
466
498
|
| `CometChatUIKit.uiKitSettings` | Read back the settings passed to `init()`. |
|
|
@@ -500,8 +532,8 @@ See `cometchat-native-customization` for recipes.
|
|
|
500
532
|
### CometChatSoundManager
|
|
501
533
|
|
|
502
534
|
```tsx
|
|
503
|
-
import { CometChatSoundManager
|
|
504
|
-
CometChatSoundManager.play(
|
|
535
|
+
import { CometChatSoundManager } from "@cometchat/chat-uikit-react-native";
|
|
536
|
+
CometChatSoundManager.play("incomingMessage"); // string key; SoundOutput is a static member of CometChatSoundManager, not a named export
|
|
505
537
|
```
|
|
506
538
|
|
|
507
539
|
### DataSource / DataSourceDecorator / MessageDataSource / ExtensionsDataSource / ChatConfigurator
|
|
@@ -510,7 +542,7 @@ Lower-level extension points for deep customization. `cometchat-native-customiza
|
|
|
510
542
|
|
|
511
543
|
---
|
|
512
544
|
|
|
513
|
-
##
|
|
545
|
+
## 11. Extensions (opt-in)
|
|
514
546
|
|
|
515
547
|
Extensions add message types + features that are toggled on the app's backend (via `cometchat apply-feature <id>` for boolean extensions and AI features, or via the dashboard for third-party-key extensions like Giphy / Stipop). Each ships its own bubble + composer action. Register via the `extensions` field on `CometChatUIKit.init({ ... })`.
|
|
516
548
|
|
|
@@ -528,7 +560,7 @@ See `cometchat-native-features` for the per-extension recipe — most are pure b
|
|
|
528
560
|
|
|
529
561
|
---
|
|
530
562
|
|
|
531
|
-
##
|
|
563
|
+
## 12. Hard rule — `hideReplyInThreadOption` is mandatory on every MessageList
|
|
532
564
|
|
|
533
565
|
**Every `<CometChatMessageList>` MUST include `hideReplyInThreadOption`** unless the integration also wires a full thread panel (`CometChatThreadHeader` + scoped `CometChatMessageList` with `parentMessageId` + scoped `CometChatMessageComposer` with `parentMessageId`).
|
|
534
566
|
|
|
@@ -538,13 +570,13 @@ Every example in this catalog includes the flag for a reason — keep it. The on
|
|
|
538
570
|
|
|
539
571
|
---
|
|
540
572
|
|
|
541
|
-
##
|
|
573
|
+
## 13. Common prop-finding recipe
|
|
542
574
|
|
|
543
575
|
When a user's request isn't obviously covered, check in this order before writing custom code:
|
|
544
576
|
|
|
545
577
|
1. **Named component in this catalog fits?** ("show call history" → `CometChatCallLogs`).
|
|
546
|
-
2. **A `hide*` / visibility prop?** ("hide receipts" → `
|
|
547
|
-
3. **A `<Slot>View` prop?** ("customize the header title" → `TitleView={(
|
|
578
|
+
2. **A `hide*` / visibility prop?** ("hide receipts" → `receiptsVisibility={false}`, not custom bubbles).
|
|
579
|
+
3. **A `<Slot>View` prop?** ("customize the header title" → `TitleView={({ user, group }) => <MyTitle />}`, not a wholesale header replacement).
|
|
548
580
|
4. **A `*RequestBuilder`?** ("filter conversations" → `conversationsRequestBuilder` with `.setUserTags([...])`, not post-render filtering).
|
|
549
581
|
5. **`textFormatters` + `templates`** for message-rendering customization.
|
|
550
582
|
6. **`CometChatUIEventHandler`** for cross-component communication.
|
|
@@ -554,7 +586,7 @@ Never hand-roll a bubble, a header, or a list when the kit ships one — you'll
|
|
|
554
586
|
|
|
555
587
|
---
|
|
556
588
|
|
|
557
|
-
##
|
|
589
|
+
## 14. Style shape reference
|
|
558
590
|
|
|
559
591
|
Every style prop follows a nested-object shape. Pass `style={}` for no customization; override only the keys you care about.
|
|
560
592
|
|