docs(ui-kit/react-native): add multi attachment and plural media bubble docs for v5#432
Conversation
…le docs for v5 - Add Audios Bubble component documentation with playback cards, seek control, and show-more collapse - Add Files Bubble component documentation with download cards and show-more collapse - Add Images Bubble component documentation with grid rendering, +N overflow, and full-screen viewer - Add Videos Bubble component documentation with thumbnail grid, duration chips, and full-screen playback - Add Voice Note Bubble component documentation with waveform player and voice-note routing - Update Message Composer guide with the multi-attachment staging tray (tile states, limits, batch send) - Update Message List guide with multi-attachment batch grouping and the enableMultipleAttachments prop - Include AI Integration Quick Reference and theme-slice styling tables for each new component - Register the five new pages in docs.json under the React Native components group Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rewrite the React Native "Upload Files" guide to the request-object upload API the RN SDK actually ships (CometChat.createUploadFileRequest -> UploadFileRequest), mirroring the JS SDK guide (PR #427) section-for-section. The previous draft documented a functional CometChat.uploadFiles() surface that does not exist in @cometchat/chat-sdk-react-native. - upload-files.mdx: createUploadFileRequest + UploadFileRequest, caller- supplied fileId, UploadFileListener.onFileProgress, UploadResult.batchId, getAttachments/getAttachmentsByType/getStatus (IN_PROGRESS/IDLE), addUploadListener, removeAttachment, clearAll, getMaxAttachmentCount(). Retry documented as re-upload of the same fileId (RN has no retryAttachment()); RN-specific error codes added (ERR_UNAUTHENTICATED, ERR_PRESIGN_REJECTED, ERR_PRESIGN_FETCH_FAILED). - send-message.mdx: fix phantom-API references — getFileUploadLimits() -> getMaxAttachmentCount(), uploadFiles() -> UploadFileRequest. - docs.json: add the upload-files page to RN Messaging nav. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…haring Add the multi_attachments_mobile.png screenshot (shared with the Android multi-attachment docs, PR #430) and reference it in the core-features Media Sharing section, replacing the older single-media image. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…setMuid Match the Android multi-attachment guide (PR #430): call mediaMessage.setMuid(request.getBatchId()) in the upload-then-send example so the sent MediaMessage is tied to its upload batch. setMuid() is inherited from BaseMessage in @cometchat/chat-sdk-react-native. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Verified against uikit-react-native PR #1415 (ENG-36732): the compact composer's native editor fires onPasteMedia and stages pasted images/files into the attachment tray (with the same count/size guards) — not "into the input". Fix the wording accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…es MDX
Two leftover XML tags (</content>, </invoke>) were accidentally written at
the end of the file, causing an MDX parse error ("Unexpected closing slash
in tag") that dropped the page route in the Mintlify build. Remove them.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lign Media Sharing with Android - audios-bubble: document expandButtonTextStyle (now exposed by audiosBubbleStyles) - images/videos-bubble: CometChatMediaViewer as plain text (no MediaViewer page to link) - images-bubble: drop mislinked "Image Bubble" -> message-bubble-styling, plain text like siblings - all bubble/composer/list pages: remove 7 empty screenshot TODO comment markers - core-features Media Sharing: mirror Android PR #430 copy, table anchors, and split/grouping note Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…message-bubble-styling Match the Android single-page approach: document the multi-attachment bubbles inside message-bubble-styling instead of separate pages. - message-bubble-styling: rewrite Image/Video/Audio/File Bubble sections to describe the multi-attachment bubbles (grid + overflow, stacked cards, show-more), swap in new screenshots, point styling at mediaGridBubbleStyles/audiosBubbleStyles/filesBubbleStyles - remove the 5 standalone bubble pages (images/videos/audios/voice-note/files-bubble) and their docs.json nav entries - repoint inbound links in message-list and message-composer to message-bubble-styling Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Docs review — ✅ ApproveRN multi-attachment docs — the React Native counterpart of #428 (iOS) / #430 (Android), with a new 354-line ✅ API — verified against the RN SDK
|
jitvarpatil
left a comment
There was a problem hiding this comment.
Docs review — ✅ Approve
RN multi-attachment docs — the React Native counterpart of #428 (iOS) / #430 (Android), with a new 354-line upload-files.mdx and 5 images. I verified the entire API against the RN SDK's published type definitions. This is the most platform-precise of the three: it correctly handles two RN-specific differences that a copy-paste from Android would have gotten wrong.
✅ API — verified against the RN SDK dist/CometChat.d.ts
createUploadFileRequest(receiverId: string, receiverType: string): UploadFileRequestUploadFileRequest— the.d.tsitself notes "Not constructible directly — obtain an instance viaCometChat.createUploadFileRequest()", matching the doc's patternuploadAttachments(files: { fileId, file }[], listener)·addUploadListener(listener)/removeUploadListener()(no-arg) ·getAttachments()/getAttachmentsByType(type)UploadFileListener:onFileProgress(fileId, loaded, total, percent),onFileUploaded(fileId, attachment),onFileError,onFileFailure,onComplete(result: UploadResult)— all exact, and the.d.tscarries the same retryable semantics the docs describe (onFileError= rejected/not retryable,onFileFailure= transfer failed/retryable)MediaMessage.getAttachments()/setAttachments(Array<Attachment>)
Platform precision 👏
getMaxAttachmentCount()returnsPromise<number>in RN (Android returnsintsynchronously) — the doc correctly writesconst max = await CometChat.getMaxAttachmentCount();getMaxFileSizedoes not exist in the RN SDK — and the doc correctly omits it rather than carrying it over from the Android page.
✅ Structure
New sdk/react-native/upload-files wired into nav; 0 nav breaks, 0 orphans, 0 broken links, redirects +0. All 5 added images are referenced (rn_*_bubble.png in message-bubble-styling.mdx, multi_attachments_mobile.png in core-features.mdx). No placeholders/TODOs.
🟡 Cross-PR coordination note (not a defect in this PR)
Both this PR and #430 (Android) add the identical binary images/multi_attachments_mobile.png. Here it's properly referenced; in #430 it is unreferenced. If both merge you may hit a duplicate/conflicting binary add — cleanest fix is to drop it from #430 and let this PR own the asset. Heads-up for whoever merges second.
Excellent, precisely-sourced PR. Ready to merge. 🚀
🤖 Automated docs review (Mintlify link/redirect/content checks + API verification against @cometchat/chat-sdk-react-native type definitions).
…ge-bubble-styling Align Angular with the merged React Native structure (PR #432): the five per-bubble pages are folded into message-bubble-styling.mdx as Image, Video, Audio, File, and Voice Note Bubble sections, each with a description, screenshot, and CSS selectors. Removes the five pages and their nav entries, and rewrites all inbound links to anchors. The pages were new on this branch and never published, so no live URLs change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.