@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.
- package/LICENSE +21 -0
- package/README.md +33 -12
- package/bin/install.js +59 -4
- package/package.json +14 -1
- package/skills/cometchat/SKILL.md +460 -77
- 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 +20 -2
- 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 +389 -9
- 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 +235 -293
- 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 +22 -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 +412 -13
- 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 +20 -2
- 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 +78 -63
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +8 -6
- 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 +348 -10
- 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 +43 -21
- package/skills/cometchat-flutter-v6-testing/SKILL.md +6 -6
- 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 +281 -11
- 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 +56 -18
- package/skills/cometchat-native-calls/SKILL.md +89 -19
- 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 +91 -57
- package/skills/cometchat-native-core/SKILL.md +281 -9
- package/skills/cometchat-native-customization/SKILL.md +150 -28
- package/skills/cometchat-native-expo-patterns/SKILL.md +77 -27
- package/skills/cometchat-native-features/SKILL.md +79 -49
- 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 +71 -3
- package/skills/cometchat-nextjs-patterns/SKILL.md +48 -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 +57 -4
- package/skills/cometchat-react-push/SKILL.md +258 -72
- package/skills/cometchat-react-router-patterns/SKILL.md +43 -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,46 +263,48 @@ 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
|
-
Incoming call notification. Render at the app root so it's visible on any screen.
|
|
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.
|
|
277
|
+
|
|
278
|
+
> **DO NOT pass `onAccept`** — it short-circuits the kit's internal `acceptCall` + transition to `<CometChatOngoingCall>`. The kit fires `ccShowOngoingCall` after acceptance; let the parent's `CometChatUIEventHandler.addCallListener` mount the ongoing surface. Only handle `onDecline` + `onError`. See `cometchat-native-calls` §1.8.c and full wiring in `cometchat-native-features` §3d.
|
|
272
279
|
|
|
273
280
|
```tsx
|
|
274
281
|
<CometChatIncomingCall
|
|
275
282
|
call={incomingCall}
|
|
276
|
-
|
|
277
|
-
|
|
283
|
+
onDecline={() => setIncomingCall(null)}
|
|
284
|
+
onError={() => setIncomingCall(null)}
|
|
278
285
|
disableSoundForCalls={false}
|
|
279
286
|
/>
|
|
280
287
|
```
|
|
281
288
|
|
|
282
289
|
### CometChatOutgoingCall
|
|
283
290
|
|
|
284
|
-
Ringing-while-calling screen
|
|
291
|
+
Ringing-while-calling screen. **Parent-controlled — NOT auto-mounted by `CometChatIncomingCall` or by tapping the call button.** To make the call button in `<CometChatMessageHeader>` actually mount this overlay, register `CometChatUIEventHandler.addCallListener` and listen for `ccOutgoingCall`. Full wiring template in `cometchat-native-features` §3d.
|
|
285
292
|
|
|
286
293
|
```tsx
|
|
287
294
|
<CometChatOutgoingCall
|
|
288
295
|
call={outgoingCall}
|
|
289
|
-
|
|
296
|
+
onEndCallButtonPressed={(call) => {}}
|
|
290
297
|
/>
|
|
291
298
|
```
|
|
292
299
|
|
|
293
300
|
### CometChatOngoingCall
|
|
294
301
|
|
|
295
|
-
In-call UI — tiles, controls, mute, end-call.
|
|
302
|
+
In-call UI — tiles, controls, mute, end-call. **Parent-controlled — NOT auto-mounted.** Mount when `CometChatUIEventHandler.addCallListener`'s `ccShowOngoingCall` event fires (kit emits this after `acceptCall` succeeds OR when the caller's outgoing call is accepted by the peer). Full wiring in `cometchat-native-features` §3d.
|
|
296
303
|
|
|
297
304
|
```tsx
|
|
298
305
|
<CometChatOngoingCall
|
|
299
306
|
sessionID={session.sessionId}
|
|
300
|
-
|
|
301
|
-
onCallEnded={() => navigation.goBack()}
|
|
307
|
+
callSettingsBuilder={callSettingsBuilder} // REQUIRED — a CometChatCalls.CallSettingsBuilder
|
|
302
308
|
/>
|
|
303
309
|
```
|
|
304
310
|
|
|
@@ -308,7 +314,7 @@ Scrollable call history.
|
|
|
308
314
|
|
|
309
315
|
```tsx
|
|
310
316
|
<CometChatCallLogs
|
|
311
|
-
|
|
317
|
+
callLogRequestBuilder={/* CallLogRequest builder from calls-sdk */}
|
|
312
318
|
onItemPress={(callLog) => openCallDetails(callLog)}
|
|
313
319
|
/>
|
|
314
320
|
```
|
|
@@ -350,14 +356,14 @@ Full-featured search across conversations + messages + users + groups. Scoped to
|
|
|
350
356
|
uid={selectedUser?.getUid()} // optional — scope to one user's chat
|
|
351
357
|
guid={selectedGroup?.getGuid()} // optional — scope to one group
|
|
352
358
|
onBack={() => setShowSearch(false)}
|
|
353
|
-
|
|
354
|
-
|
|
359
|
+
onConversationClicked={(conv, searchKeyword) => openConversation(conv)}
|
|
360
|
+
onMessageClicked={(msg, searchKeyword) => scrollToMessage(msg)}
|
|
355
361
|
/>
|
|
356
362
|
```
|
|
357
363
|
|
|
358
|
-
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`.
|
|
359
365
|
|
|
360
|
-
|
|
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.
|
|
361
367
|
|
|
362
368
|
> **Hard rule — never roll your own search.** Any request involving
|
|
363
369
|
> "search", "find messages", "search conversations", or "search across
|
|
@@ -369,7 +375,35 @@ Wire from `CometChatMessageHeader`'s `onSearchPress`.
|
|
|
369
375
|
|
|
370
376
|
---
|
|
371
377
|
|
|
372
|
-
## 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)
|
|
373
407
|
|
|
374
408
|
Building blocks the higher-level components use internally. Use inside `<Slot>View` overrides or custom screens.
|
|
375
409
|
|
|
@@ -396,7 +430,7 @@ All atoms take `style={}` in the same nested-object shape.
|
|
|
396
430
|
|
|
397
431
|
---
|
|
398
432
|
|
|
399
|
-
##
|
|
433
|
+
## 8. Bubbles
|
|
400
434
|
|
|
401
435
|
The message list renders bubbles automatically based on message type. Use them directly only when you need a custom bubble template.
|
|
402
436
|
|
|
@@ -421,7 +455,7 @@ Extension-provided bubbles (only present if the extension is registered):
|
|
|
421
455
|
|
|
422
456
|
---
|
|
423
457
|
|
|
424
|
-
##
|
|
458
|
+
## 9. Formatters (custom text rendering)
|
|
425
459
|
|
|
426
460
|
Pass via `CometChatMessageList.textFormatters` or the composer's same prop.
|
|
427
461
|
|
|
@@ -447,7 +481,7 @@ See `cometchat-native-customization` for the `extends CometChatTextFormatter` re
|
|
|
447
481
|
|
|
448
482
|
---
|
|
449
483
|
|
|
450
|
-
##
|
|
484
|
+
## 10. Infrastructure (static classes + event bus)
|
|
451
485
|
|
|
452
486
|
### CometChatUIKit
|
|
453
487
|
|
|
@@ -458,7 +492,7 @@ Static class — init + login + logout + send.
|
|
|
458
492
|
| `CometChatUIKit.init(settings)` | Initialize. Must resolve before any component renders. |
|
|
459
493
|
| `CometChatUIKit.login({ uid })` | Log in (dev mode). **Takes an object**, not `login("...")`. |
|
|
460
494
|
| `CometChatUIKit.login({ authToken })` | Log in with a server-minted token (production). Same method as dev, different arg. |
|
|
461
|
-
| `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). |
|
|
462
496
|
| `CometChatUIKit.logout()` | Log out + clear session. |
|
|
463
497
|
| `CometChatUIKit.sendCustomMessage(msg)` | Send custom message (used by calling, extensions). |
|
|
464
498
|
| `CometChatUIKit.uiKitSettings` | Read back the settings passed to `init()`. |
|
|
@@ -498,8 +532,8 @@ See `cometchat-native-customization` for recipes.
|
|
|
498
532
|
### CometChatSoundManager
|
|
499
533
|
|
|
500
534
|
```tsx
|
|
501
|
-
import { CometChatSoundManager
|
|
502
|
-
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
|
|
503
537
|
```
|
|
504
538
|
|
|
505
539
|
### DataSource / DataSourceDecorator / MessageDataSource / ExtensionsDataSource / ChatConfigurator
|
|
@@ -508,7 +542,7 @@ Lower-level extension points for deep customization. `cometchat-native-customiza
|
|
|
508
542
|
|
|
509
543
|
---
|
|
510
544
|
|
|
511
|
-
##
|
|
545
|
+
## 11. Extensions (opt-in)
|
|
512
546
|
|
|
513
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({ ... })`.
|
|
514
548
|
|
|
@@ -526,7 +560,7 @@ See `cometchat-native-features` for the per-extension recipe — most are pure b
|
|
|
526
560
|
|
|
527
561
|
---
|
|
528
562
|
|
|
529
|
-
##
|
|
563
|
+
## 12. Hard rule — `hideReplyInThreadOption` is mandatory on every MessageList
|
|
530
564
|
|
|
531
565
|
**Every `<CometChatMessageList>` MUST include `hideReplyInThreadOption`** unless the integration also wires a full thread panel (`CometChatThreadHeader` + scoped `CometChatMessageList` with `parentMessageId` + scoped `CometChatMessageComposer` with `parentMessageId`).
|
|
532
566
|
|
|
@@ -536,13 +570,13 @@ Every example in this catalog includes the flag for a reason — keep it. The on
|
|
|
536
570
|
|
|
537
571
|
---
|
|
538
572
|
|
|
539
|
-
##
|
|
573
|
+
## 13. Common prop-finding recipe
|
|
540
574
|
|
|
541
575
|
When a user's request isn't obviously covered, check in this order before writing custom code:
|
|
542
576
|
|
|
543
577
|
1. **Named component in this catalog fits?** ("show call history" → `CometChatCallLogs`).
|
|
544
|
-
2. **A `hide*` / visibility prop?** ("hide receipts" → `
|
|
545
|
-
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).
|
|
546
580
|
4. **A `*RequestBuilder`?** ("filter conversations" → `conversationsRequestBuilder` with `.setUserTags([...])`, not post-render filtering).
|
|
547
581
|
5. **`textFormatters` + `templates`** for message-rendering customization.
|
|
548
582
|
6. **`CometChatUIEventHandler`** for cross-component communication.
|
|
@@ -552,7 +586,7 @@ Never hand-roll a bubble, a header, or a list when the kit ships one — you'll
|
|
|
552
586
|
|
|
553
587
|
---
|
|
554
588
|
|
|
555
|
-
##
|
|
589
|
+
## 14. Style shape reference
|
|
556
590
|
|
|
557
591
|
Every style prop follows a nested-object shape. Pass `style={}` for no customization; override only the keys you care about.
|
|
558
592
|
|