@sendbird/uikit-react-native 3.8.3 → 3.8.4

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.
@@ -189,7 +189,7 @@ const createGroupChannelFragment = initModule => {
189
189
  const fileSize = ((_processedParams$file = processedParams.file) === null || _processedParams$file === void 0 ? void 0 : _processedParams$file.size) ?? processedParams.fileSize;
190
190
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
191
191
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
192
- const sizeLimitString = `${(0, _uikitUtils.getReadableFileSize)(uploadSizeLimit)} MB`;
192
+ const sizeLimitString = `${(0, _uikitUtils.getReadableFileSize)(uploadSizeLimit)}`;
193
193
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
194
194
  return;
195
195
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_groupChannel","_message","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_NewMessagesButton","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_createGroupChannelModule","_useContext","_pubsub","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","messageComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","useSendbirdChat","toast","useToast","STRINGS","useLocalization","internalSearchItem","setInternalSearchItem","useState","navigateFromMessageSearch","useCallback","Boolean","groupChannelPubSub","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","replyType","useIIFE","uikit","groupChannel","ReplyType","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","confirmAndMarkAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","useEffect","clear","renderItem","content","Box","isFirstItem","GroupChannelTypingIndicatorBubble","memoizedFlatListProps","useMemo","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter","MessageFilter","_default","exports"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n voiceMessageStatusManager.clear();\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAiBA,IAAAM,4BAAA,GAAAP,uBAAA,CAAAC,OAAA;AAGA,IAAAO,kBAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,qBAAA,GAAAD,sBAAA,CAAAR,OAAA;AACA,IAAAU,kBAAA,GAAAF,sBAAA,CAAAR,OAAA;AACA,IAAAW,yBAAA,GAAAH,sBAAA,CAAAR,OAAA;AAOA,IAAAY,WAAA,GAAAZ,OAAA;AAEA,IAAAa,OAAA,GAAAL,sBAAA,CAAAR,OAAA;AAAqC,SAAAQ,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAf,wBAAAe,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAErC,MAAMW,0BAA0B,GAAIC,UAAwC,IAA2B;EACrG,MAAMC,kBAAkB,GAAG,IAAAC,iCAAwB,EAACF,UAAU,CAAC;EAE/D,OAAO,CAAC;IACNG,UAAU;IACVC,uBAAuB,GAAIC,KAAK,iBAAK1C,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAAClC,kBAAA,CAAAS,OAAiB,EAAKwB,KAAQ,CAAC;IACrEE,0BAA0B,GAAIF,KAAK,iBAAK1C,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAAChC,qBAAA,CAAAO,OAAoB,EAAKwB,KAAQ,CAAC;IAC3EG,aAAa;IACbC,qBAAqB,GAAG,IAAI;IAC5BC,qBAAqB;IACrBC,iBAAiB,GAAGC,gBAAI;IACxBC,kBAAkB,GAAGD,gBAAI;IACzBE,mBAAmB,GAAGF,gBAAI;IAC1BG,gBAAgB,GAAGH,gBAAI;IACvBI,2BAA2B,GAAGJ,gBAAI;IAClCK,uBAAuB,GAAGC,gBAAI;IAC9BC,uBAAuB,GAAGD,gBAAI;IAC9BE,yBAAyB,GAAGF,gBAAI;IAChCG,yBAAyB,GAAGH,gBAAI;IAChCI,OAAO;IACPC,mBAAmB;IACnBC,cAAc,GAAGC,6BAAiB;IAClCC,aAAa;IACbC,sBAAsB;IACtBC;EACF,CAAC,KAAK;IACJ,MAAM;MAAEC,aAAa;MAAEC;IAAgB,CAAC,GAAG,IAAAC,8BAAkB,EAAC,CAAC;IAC/D,MAAM;MAAEC,GAAG;MAAEC,WAAW;MAAEC,SAAS;MAAEC;IAA0B,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;IACpF,MAAMC,KAAK,GAAG,IAAAC,oCAAQ,EAAC,CAAC;IACxB,MAAM;MAAEC;IAAQ,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;IAErC,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG,IAAAC,eAAQ,EAACxC,UAAU,CAAC;IACxE,MAAMyC,yBAAyB,GAAG,IAAAC,kBAAW,EAAC,MAAMC,OAAO,CAAC3C,UAAU,CAAC,EAAE,EAAE,CAAC;IAE5E,MAAM,CAAC4C,kBAAkB,CAAC,GAAG,IAAAJ,eAAQ,EAAC,MAAM,IAAAK,eAAM,EAAmC,CAAC,CAAC;IACvF,MAAM,CAACC,sBAAsB,EAAEC,yBAAyB,CAAC,GAAG,IAAAP,eAAQ,EAAC,KAAK,CAAC;IAC3E,MAAMQ,yBAAyB,GAAG,IAAAC,yBAAa,EAACH,sBAAsB,CAAC;IAEvE,MAAMI,SAAS,GAAG,IAAAC,mBAAO,EAAC,MAAM;MAC9B,IAAIpB,SAAS,CAACqB,KAAK,CAACC,YAAY,CAAClC,OAAO,CAAC+B,SAAS,KAAK,MAAM,EAAE;QAC7D,OAAOI,kBAAS,CAACC,IAAI;MACvB,CAAC,MAAM;QACL,OAAOD,kBAAS,CAACE,qBAAqB;MACxC;IACF,CAAC,CAAC;IAEF,MAAM;MACJC,OAAO;MACPC,QAAQ;MACRC,WAAW;MACXC,gBAAgB;MAChBC,QAAQ;MACRC,YAAY;MACZC,OAAO;MACPC,eAAe;MACfC,eAAe;MACfC,iBAAiB;MACjBC,iBAAiB;MACjBC,aAAa;MACbC,aAAa;MACbC;IACF,CAAC,GAAG,IAAAC,mCAAuB,EAAC1C,GAAG,EAAEV,OAAO,EAAE;MACxCqD,sBAAsB,EAAEA,CAAA,KAAMxB,yBAAyB,CAACyB,OAAO;MAC/DC,kBAAkBA,CAAChB,QAAQ,EAAE;QAC3Bd,kBAAkB,CAAC+B,OAAO,CAAC;UAAEC,IAAI,EAAE,mBAAmB;UAAEC,IAAI,EAAE;YAAEnB;UAAS;QAAE,CAAC,CAAC;MAC/E,CAAC;MACDoB,iBAAiBA,CAACpB,QAAQ,EAAE;QAC1Bd,kBAAkB,CAAC+B,OAAO,CAAC;UAAEC,IAAI,EAAE,kBAAkB;UAAEC,IAAI,EAAE;YAAEnB;UAAS;QAAE,CAAC,CAAC;MAC9E,CAAC;MACD9C,gBAAgB;MAChBmE,mBAAmB,EAAEnE,gBAAgB;MACrCa,iBAAiB,EAAEuD,oBAAoB,CAAC7D,OAAO,EAAEK,sBAAsB,EAAEC,iBAAiB,CAAC;MAC3FJ,cAAc;MACd4D,UAAU,EAAEC,gCAAoB;MAChChC,SAAS;MACTiC,aAAa,EAAE7C,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAE6C;IACrC,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAY;MACjC,MAAM1D,aAAa,CAAC2D,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAC3C,MAAM3D,eAAe,CAAC0D,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,MAAMC,kBAAkB,GAAG,IAAAC,4BAAgB,EAAC,YAAY;MACtD,MAAMJ,cAAc,CAAC,CAAC;MACtB5E,iBAAiB,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAMiF,mBAAmB,GAAG,IAAAD,4BAAgB,EAAC,YAAY;MACvD,MAAMJ,cAAc,CAAC,CAAC;MACtB1E,kBAAkB,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAMgF,oBAA0F,GAAG,IAAAF,4BAAgB,EACjH,OAAOG,OAAO,EAAEtB,aAAa,EAAEuB,GAAG,KAAK;MACrC,MAAMR,cAAc,CAAC,CAAC;MACtBzE,mBAAmB,CAACgF,OAAO,EAAEtB,aAAa,EAAEuB,GAAG,CAAC;IAClD,CACF,CAAC;IACD,MAAMC,4BAA4B,GAAG,IAAAL,4BAAgB,EACnD,OAAOG,OAAgC,EAAER,aAAsB,KAAK;MAClE,MAAMC,cAAc,CAAC,CAAC;MACtBvE,2BAA2B,CAAC8E,OAAO,EAAER,aAAa,CAAC;IACrD,CACF,CAAC;IAED,IAAAW,gBAAS,EAAC,MAAM;MACd,OAAO,MAAM;QACX9D,yBAAyB,CAAC+D,KAAK,CAAC,CAAC;QACjCX,cAAc,CAAC,CAAC;MAClB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMY,UAA6D,GAAG,IAAAR,4BAAgB,EAAEtF,KAAK,IAAK;MAChG,MAAM+F,OAAO,GAAG5F,aAAa,GAAGA,aAAa,CAACH,KAAK,CAAC,gBAAG1C,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACnC,4BAAA,CAAAU,OAA2B,EAAKwB,KAAQ,CAAC;MACjG,oBACE1C,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACtC,2BAAA,CAAAqI,GAAG,QACDD,OAAO,EACP/F,KAAK,CAACiG,WAAW,IAAI,CAACpC,OAAO,CAAC,CAAC,iBAAIvG,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACnC,4BAAA,CAAAoI,iCAAiC,MAAE,CACrE,CAAC;IAEV,CAAC,CAAC;IAEF,MAAMC,qBAAqB,GAAG,IAAAC,cAAO,EACnC,OAAO;MACLC,kBAAkB,eAAE/I,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAAC0G,WAAW,MAAE,CAAC;MACtDC,qBAAqB,EAAE;QAAEC,QAAQ,EAAE;MAAE,CAAC;MACtC,GAAGnF;IACL,CAAC,CAAC,EACF,CAACA,aAAa,CAChB,CAAC;IAED,MAAMoF,kBAAkB,GAAG,IAAAjE,kBAAW,EAAC,YAAY;MACjD,OAAO,MAAM4B,sBAAsB,CAACsC,MAAM,CAACC,gBAAgB,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMC,mCAAmC,GAAG,IAAApE,kBAAW,EAAC,MAAOyC,aAAqB,IAAK;MACvF,OAAO,MAAMb,sBAAsB,CAACa,aAAa,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC;;IAEN;IACA,MAAM4B,kBAA0E,GAAG,IAAArE,kBAAW,EAAE1C,UAAU,IAAK;MAC7G;MACAuC,qBAAqB,CAACyE,SAAS,CAAC;MAChCzE,qBAAqB,CAACvC,UAAU,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMiH,SAAS,GAAItB,OAAkD,IAAK;MACxE/C,kBAAkB,CAAC+B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEc;QAAQ;MAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAMuB,MAAM,GAAIvB,OAAkD,IAAK;MACrE/C,kBAAkB,CAAC+B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEc;QAAQ;MAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAMwB,sBAA4E,GAAG,IAAA3B,4BAAgB,EACnG,MAAO4B,MAAM,IAAK;MAChB,MAAMC,eAAe,GAAG,MAAMvG,uBAAuB,CAACsG,MAAM,CAAC;MAC7D,MAAMzB,OAAO,GAAG,MAAM1B,eAAe,CAACoD,eAAe,EAAEJ,SAAS,CAAC;MACjEC,MAAM,CAACvB,OAAO,CAAC;IACjB,CACF,CAAC;IACD,MAAM2B,sBAA4E,GAAG,IAAA9B,4BAAgB,EACnG,MAAO4B,MAAM,IAAK;MAAA,IAAAG,qBAAA;MAChB,MAAMF,eAAe,GAAG,MAAMrG,uBAAuB,CAACoG,MAAM,CAAC;MAC7D,MAAMI,QAAQ,GAAG,EAAAD,qBAAA,GAACF,eAAe,CAACI,IAAI,cAAAF,qBAAA,uBAArBA,qBAAA,CAAoCG,IAAI,KAAIL,eAAe,CAACG,QAAQ;MACrF,MAAMG,eAAe,GAAG5F,SAAS,CAAC6F,OAAO,CAACD,eAAe;MAEzD,IAAIH,QAAQ,IAAIG,eAAe,IAAIH,QAAQ,GAAGG,eAAe,EAAE;QAC7D,MAAME,eAAe,GAAG,GAAG,IAAAC,+BAAmB,EAACH,eAAe,CAAC,KAAK;QACpEzF,KAAK,CAAC6F,IAAI,CAAC3F,OAAO,CAAC4F,KAAK,CAACC,qCAAqC,CAACJ,eAAe,CAAC,EAAE,OAAO,CAAC;QACzF;MACF,CAAC,MAAM;QACL,MAAMlC,OAAO,GAAG,MAAM3B,eAAe,CAACqD,eAAe,EAAEJ,SAAS,CAAC;QACjEC,MAAM,CAACvB,OAAO,CAAC;MACjB;IACF,CACF,CAAC;IACD,MAAMuC,wBAAgF,GAAG,IAAA1C,4BAAgB,EACvG,OAAOG,OAAO,EAAEyB,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAMpG,yBAAyB,CAACmG,MAAM,CAAC;MAC/D,MAAMjD,iBAAiB,CAACwB,OAAO,CAACwC,SAAS,EAAEd,eAAe,CAAC;IAC7D,CACF,CAAC;IACD,MAAMe,wBAAgF,GAAG,IAAA5C,4BAAgB,EACvG,OAAOG,OAAO,EAAEyB,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAMnG,yBAAyB,CAACkG,MAAM,CAAC;MAC/D,MAAMlD,iBAAiB,CAACyB,OAAO,CAACwC,SAAS,EAAEd,eAAe,CAAC;IAC7D,CACF,CAAC;IACD,MAAMgB,wBAAwB,GAAG,IAAA7C,4BAAgB,EAAE8C,KAAc,IAAK;MACpE,IAAI,CAACA,KAAK,EAAE1E,gBAAgB,CAAC,CAAC;MAC9Bb,yBAAyB,CAACuF,KAAK,CAAC;IAClC,CAAC,CAAC;IAEF,oBACE9K,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAACyI,QAAQ;MAC1BpH,OAAO,EAAEA,OAAQ;MACjByB,kBAAkB,EAAEA,kBAAmB;MACvCrC,qBAAqB,EAAEA,qBAAqB,IAAIwB,SAAS,CAACqB,KAAK,CAACC,YAAY,CAAClC,OAAO,CAACZ,qBAAsB;MAC3Ga,mBAAmB,EAAEA,mBAAoB;MACzCsC,QAAQ,EAAEA,QAAS;MACnBqD,kBAAkB,EAAEA,kBAAmB;MACvClG,2BAA2B,EAAEgF;IAA6B,gBAE1DrI,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAAC0I,MAAM;MACxBC,eAAe,EAAEhG,yBAA0B;MAC3CjC,iBAAiB,EAAE+E,kBAAmB;MACtC7E,kBAAkB,EAAE+E;IAAoB,CACzC,CAAC,eACFjI,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAAC/B,kBAAA,CAAAM,OAAiB;MAAC+E,OAAO,EAAEA,OAAQ;MAACiF,gBAAgB,eAAElL,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAAC6I,aAAa,MAAE;IAAE,gBAC1FnL,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAAC8I,WAAW;MAC7BzH,OAAO,EAAEA,OAAQ;MACjBnB,UAAU,EAAEsC,kBAAmB;MAC/BqE,kBAAkB,EAAEA,kBAAmB;MACvCG,mCAAmC,EAAEA,mCAAoC;MACzEC,kBAAkB,EAAEA,kBAAmB;MACvCzG,qBAAqB,EAAEA,qBAAsB;MAC7CuI,aAAa,EAAE/G,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEgH,MAAO;MACnCzI,aAAa,EAAE2F,UAAW;MAC1BtC,QAAQ,EAAEA,QAAS;MACnBC,WAAW,EAAEA,WAAY;MACzBoF,YAAY,EAAEjF,YAAa;MAC3BkF,eAAe,EAAEnF,QAAS;MAC1BE,OAAO,EAAEA,OAAQ;MACjBjB,sBAAsB,EAAEA,sBAAuB;MAC/CuF,wBAAwB,EAAEA,wBAAyB;MACnDpI,uBAAuB,EAAEA,uBAAwB;MACjDG,0BAA0B,EAAEA,0BAA2B;MACvD6I,qBAAqB,EAAE7E,aAAc;MACrC8E,eAAe,EAAE7E,aAAc;MAC/B1D,mBAAmB,EAAE+E,oBAAqB;MAC1CnE,aAAa,EAAE8E;IAAsB,CACtC,CAAC,eACF7I,MAAA,CAAAkB,OAAA,CAAAyB,aAAA,CAACL,kBAAkB,CAACqJ,KAAK;MACvBC,oBAAoB,EAAEtJ,kBAAkB,CAACsJ,oBAAqB;MAC9DC,iBAAiB,EAAEA,iBAAiB,CAAClI,OAAO,CAAE;MAC9CgG,sBAAsB,EAAEA,sBAAuB;MAC/CG,sBAAsB,EAAEA,sBAAuB;MAC/CY,wBAAwB,EAAEA,wBAAyB;MACnDE,wBAAwB,EAAEA;IAAyB,CACpD,CACgB,CACQ,CAAC;EAElC,CAAC;AACH,CAAC;AAED,SAASiB,iBAAiBA,CAAClI,OAA6B,EAAE;EACxD,IAAIA,OAAO,CAACmI,WAAW,EAAE;IACvB,OAAOnI,OAAO,CAACoI,MAAM,KAAK,UAAU;EACtC;EAEA,OAAO,IAAI;AACb;AAEA,SAASvE,oBAAoBA,CAC3B7D,OAA6B,EAC7BK,sBAAgF,EAChFgI,qBAA+C,EAC/C;EACA,IAAI,CAAChI,sBAAsB,IAAIgI,qBAAqB,EAAE,OAAOA,qBAAqB;EAElF,OAAQC,aAAsE,IAAK;IACjF,MAAMrC,MAAM,GAAG;MAAE,GAAGqC,aAAa;MAAE,GAAGjI;IAAuB,CAAC;IAC9D,OAAOL,OAAO,CAACuI,uBAAuB,CAAC;MACrC,GAAGtC,MAAM;MACTuC,MAAM,EAAE,IAAIC,2BAAa,CAACxC,MAAM;IAClC,CAAC,CAAC;EACJ,CAAC;AACH;AAAC,IAAAyC,QAAA,GAAAC,OAAA,CAAApL,OAAA,GAEckB,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_groupChannel","_message","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_NewMessagesButton","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_createGroupChannelModule","_useContext","_pubsub","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","messageComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","useSendbirdChat","toast","useToast","STRINGS","useLocalization","internalSearchItem","setInternalSearchItem","useState","navigateFromMessageSearch","useCallback","Boolean","groupChannelPubSub","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","replyType","useIIFE","uikit","groupChannel","ReplyType","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","confirmAndMarkAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","useEffect","clear","renderItem","content","Box","isFirstItem","GroupChannelTypingIndicatorBubble","memoizedFlatListProps","useMemo","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter","MessageFilter","_default","exports"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n voiceMessageStatusManager.clear();\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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","ignoreList":[]}
@@ -190,7 +190,7 @@ const createGroupChannelThreadFragment = initModule => {
190
190
  const fileSize = ((_processedParams$file = processedParams.file) === null || _processedParams$file === void 0 ? void 0 : _processedParams$file.size) ?? processedParams.fileSize;
191
191
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
192
192
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
193
- const sizeLimitString = `${(0, _uikitUtils.getReadableFileSize)(uploadSizeLimit)} MB`;
193
+ const sizeLimitString = `${(0, _uikitUtils.getReadableFileSize)(uploadSizeLimit)}`;
194
194
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
195
195
  return;
196
196
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_interopRequireDefault","_StatusComposition","_createGroupChannelThreadModule","_useContext","_pubsub","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","createGroupChannelThreadModule","renderMessage","enableMessageGrouping","onPressHeaderLeft","NOOP","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","useSendbirdChat","groupChannelThreadPubSub","useState","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","toast","useToast","STRINGS","useLocalization","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelThreadMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","confirmAndMarkAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","useEffect","renderItem","props","content","createElement","hideParentMessage","Box","memoizedFlatListProps","useMemo","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","useCallback","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","b","messageComparator","_default","exports"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAgBA,IAAAI,4BAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,+BAAA,GAAAF,sBAAA,CAAAL,OAAA;AAOA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAJ,sBAAA,CAAAL,OAAA;AAAqC,SAAAK,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAT,CAAA,MAAAA,CAAA,GAAAuB,SAAA,CAAAC,MAAA,EAAAxB,CAAA,UAAAM,CAAA,GAAAiB,SAAA,CAAAvB,CAAA,YAAAK,CAAA,IAAAC,CAAA,OAAAU,cAAA,CAAAC,IAAA,CAAAX,CAAA,EAAAD,CAAA,MAAAI,CAAA,CAAAJ,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAI,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAErC,MAAMG,gCAAgC,GACpCC,UAA8C,IACf;EAC/B,MAAMC,wBAAwB,GAAG,IAAAC,uCAA8B,EAACF,UAAU,CAAC;EAE3E,OAAO,CAAC;IACNG,aAAa;IACbC,qBAAqB,GAAG,IAAI;IAC5BC,iBAAiB,GAAGC,gBAAI;IACxBC,qBAAqB,GAAGD,gBAAI;IAC5BE,mBAAmB,GAAGF,gBAAI;IAC1BG,sBAAsB,GAAGH,gBAAI;IAC7BI,gBAAgB,GAAGJ,gBAAI;IACvBK,uBAAuB,GAAGC,gBAAI;IAC9BC,uBAAuB,GAAGD,gBAAI;IAC9BE,yBAAyB,GAAGF,gBAAI;IAChCG,yBAAyB,GAAGH,gBAAI;IAChCI,OAAO;IACPC,aAAa;IACbC,aAAa;IACbC,mBAAmB;IACnBC,cAAc,GAAGC,uBAAuB;IACxCC;EACF,CAAC,KAAK;IACJ,MAAM;MAAEC,aAAa;MAAEC;IAAgB,CAAC,GAAG,IAAAC,8BAAkB,EAAC,CAAC;IAC/D,MAAM;MAAEC,GAAG;MAAEC,WAAW;MAAEC,SAAS;MAAEC,yBAAyB;MAAEC;IAA4B,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;IAEjH,MAAM,CAACC,wBAAwB,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM,IAAAC,eAAM,EAAyC,CAAC,CAAC;IACnG,MAAM,CAACC,sBAAsB,EAAEC,yBAAyB,CAAC,GAAG,IAAAH,eAAQ,EAAC,KAAK,CAAC;IAC3E,MAAMI,yBAAyB,GAAG,IAAAC,yBAAa,EAACH,sBAAsB,CAAC;IAEvE,MAAMI,KAAK,GAAG,IAAAC,oCAAQ,EAAC,CAAC;IACxB,MAAM;MAAEC;IAAQ,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;IACrC,MAAM,CAACC,cAAc,EAAEC,gBAAgB,CAAC,GAAG,IAAAX,eAAQ,EAAChB,aAAa,CAAC;IAElE,MAAM;MACJ4B,OAAO;MACPC,QAAQ;MACRC,WAAW;MACXC,gBAAgB;MAChBC,QAAQ;MACRC,YAAY;MACZC,OAAO;MACPC,eAAe;MACfC,eAAe;MACfC,iBAAiB;MACjBC,iBAAiB;MACjBC,aAAa;MACbC,aAAa;MACbC;IACF,CAAC,GAAG,IAAAC,yCAA6B,EAACjC,GAAG,EAAEV,OAAO,EAAE2B,cAAc,EAAE;MAC9DiB,sBAAsB,EAAEA,CAAA,KAAMvB,yBAAyB,CAACwB,OAAO;MAC/DC,kBAAkBA,CAAChB,QAAQ,EAAE;QAC3Bd,wBAAwB,CAAC+B,OAAO,CAAC;UAAEC,IAAI,EAAE,mBAAmB;UAAEC,IAAI,EAAE;YAAEnB;UAAS;QAAE,CAAC,CAAC;MACrF,CAAC;MACDoB,iBAAiBA,CAACpB,QAAQ,EAAE;QAC1Bd,wBAAwB,CAAC+B,OAAO,CAAC;UAAEC,IAAI,EAAE,kBAAkB;UAAEC,IAAI,EAAE;YAAEnB;UAAS;QAAE,CAAC,CAAC;MACpF,CAAC;MACDqB,sBAAsBA,CAAClD,aAAa,EAAE;QACpC2B,gBAAgB,CAAC3B,aAAa,CAAC;MACjC,CAAC;MACDR,sBAAsB,EAAEA,CAAA,KAAM;QAC5B8B,KAAK,CAAC6B,IAAI,CAAC3B,OAAO,CAAC4B,KAAK,CAACC,mCAAmC,EAAE,OAAO,CAAC;QACtE7D,sBAAsB,aAAtBA,sBAAsB,eAAtBA,sBAAsB,CAAG,CAAC;MAC5B,CAAC;MACDC,gBAAgB;MAChB6D,mBAAmB,EAAE7D,gBAAgB;MACrCU,cAAc;MACdoD,UAAU,EAAEC,gCAAoB;MAChCC,iBAAiB,EAAE9C,SAAS,CAAC+C,KAAK,CAACC,YAAY,CAAC5D,OAAO,CAAC6D,eAAe;MACvE3D;IACF,CAAC,CAAC;IAEF,MAAM4D,cAAc,GAAG,MAAAA,CAAA,KAAY;MACjC,MAAMvD,aAAa,CAACwD,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAC3C,MAAMxD,eAAe,CAACuD,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,MAAMC,kBAAkB,GAAG,IAAAC,4BAAgB,EAAC,YAAY;MACtD,MAAMJ,cAAc,CAAC,CAAC;MACtBjD,yBAAyB,CAACsD,UAAU,CAAC,CAAC;MACtC9E,iBAAiB,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAM+E,sBAAsB,GAAG,IAAAF,4BAAgB,EAAC,YAAY;MAC1D,MAAMJ,cAAc,CAAC,CAAC;MACtBjD,yBAAyB,CAACsD,UAAU,CAAC,CAAC;MACtCrD,2BAA2B,CAACI,MAAM,CAAC6B,OAAO,CAAC;QACzCC,IAAI,EAAE,qCAAqC;QAC3CC,IAAI,EAAE;UAAE/C,aAAa,EAAED,aAAa,CAACoE;QAAU;MACjD,CAAC,CAAC;MACF9E,qBAAqB,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM+E,oBAAgG,GACpG,IAAAJ,4BAAgB,EAAC,OAAOK,OAAO,EAAE9B,aAAa,EAAE+B,GAAG,KAAK;MACtD,MAAMV,cAAc,CAAC,CAAC;MACtBtE,mBAAmB,CAAC+E,OAAO,EAAE9B,aAAa,EAAE+B,GAAG,CAAC;IAClD,CAAC,CAAC;IAEJ,IAAAC,gBAAS,EAAC,MAAM;MACd,OAAO,MAAM;QACXX,cAAc,CAAC,CAAC;MAClB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMY,UAAmE,GAAG,IAAAR,4BAAgB,EAAES,KAAK,IAAK;MACtG,MAAMC,OAAO,GAAGzF,aAAa,GAC3BA,aAAa,CAACwF,KAAK,CAAC,gBAEpBlI,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC9H,4BAAA,CAAAQ,OAA2B,EAAAkB,QAAA;QAACqG,iBAAiB;MAAA,GAAKH,KAAK,CAAG,CAC5D;MACD,oBAAOlI,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAACjI,2BAAA,CAAAmI,GAAG,QAAEH,OAAa,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAMI,qBAAqB,GAAG,IAAAC,cAAO,EACnC,OAAO;MACLC,mBAAmB,eACjBzI,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAACkG,iBAAiB;QACzCnF,OAAO,EAAEA,OAAQ;QACjBoF,aAAa,EAAEzE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE0E,MAAO;QACnCC,eAAe,EAAE7C,aAAc;QAC/BjD,mBAAmB,EAAE8E;MAAqB,CAC3C,CACF;MACDiB,qBAAqB,EAAE;QAAEC,QAAQ,EAAE;MAAE,CAAC;MACtC,GAAGlF;IACL,CAAC,CAAC,EACF,CAACA,aAAa,CAChB,CAAC;IAED,MAAMmF,kBAAkB,GAAG,IAAAC,kBAAW,EAAC,YAAY;MACjD,OAAO,MAAMhD,sBAAsB,CAACiD,MAAM,CAACC,gBAAgB,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMC,mCAAmC,GAAG,IAAAH,kBAAW,EAAC,MAAOxF,aAAqB,IAAK;MACvF,OAAO,MAAMwC,sBAAsB,CAACxC,aAAa,CAAC;IACpD,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM4F,SAAS,GAAIvB,OAAkD,IAAK;MACxEvD,wBAAwB,CAAC+B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEsB;QAAQ;MAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAMwB,MAAM,GAAIxB,OAAkD,IAAK;MACrEvD,wBAAwB,CAAC+B,OAAO,CAAC;QAAEC,IAAI,EAAE,sBAAsB;QAAEC,IAAI,EAAE;UAAEsB;QAAQ;MAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAMyB,qBAAqB,GAAIzB,OAAkD,IAAK;MACpF,IAAIA,OAAO,CAAC0B,SAAS,KAAKhG,aAAa,CAACiG,eAAe,EAAE;QACvDtE,gBAAgB,CAAC2C,OAAO,CAAC;MAC3B;IACF,CAAC;IAED,MAAM4B,sBAAkF,GAAG,IAAAjC,4BAAgB,EACzG,MAAOkC,MAAM,IAAK;MAChB,MAAMC,eAAe,GAAG,MAAM1G,uBAAuB,CAACyG,MAAM,CAAC;MAC7D,MAAM7B,OAAO,GAAG,MAAMlC,eAAe,CAACgE,eAAe,EAAEP,SAAS,CAAC;MACjEC,MAAM,CAACxB,OAAO,CAAC;IACjB,CACF,CAAC;IACD,MAAM+B,sBAAkF,GAAG,IAAApC,4BAAgB,EACzG,MAAOkC,MAAM,IAAK;MAAA,IAAAG,qBAAA;MAChB,MAAMF,eAAe,GAAG,MAAMxG,uBAAuB,CAACuG,MAAM,CAAC;MAC7D,MAAMI,QAAQ,GAAG,EAAAD,qBAAA,GAACF,eAAe,CAACI,IAAI,cAAAF,qBAAA,uBAArBA,qBAAA,CAAgCG,IAAI,KAAIL,eAAe,CAACG,QAAQ;MACjF,MAAMG,eAAe,GAAG/F,SAAS,CAACgG,OAAO,CAACD,eAAe;MAEzD,IAAIH,QAAQ,IAAIG,eAAe,IAAIH,QAAQ,GAAGG,eAAe,EAAE;QAC7D,MAAME,eAAe,GAAG,GAAG,IAAAC,+BAAmB,EAACH,eAAe,CAAC,KAAK;QACpEpF,KAAK,CAAC6B,IAAI,CAAC3B,OAAO,CAAC4B,KAAK,CAAC0D,qCAAqC,CAACF,eAAe,CAAC,EAAE,OAAO,CAAC;QACzF;MACF,CAAC,MAAM;QACL,MAAMtC,OAAO,GAAG,MAAMnC,eAAe,CAACiE,eAAe,EAAEP,SAAS,CAAC;QACjEC,MAAM,CAACxB,OAAO,CAAC;MACjB;IACF,CACF,CAAC;IACD,MAAMyC,wBAAsF,GAAG,IAAA9C,4BAAgB,EAC7G,OAAOK,OAAO,EAAE6B,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAMvG,yBAAyB,CAACsG,MAAM,CAAC;MAC/D,MAAMa,cAAc,GAAG,MAAM1E,iBAAiB,CAACgC,OAAO,CAAC0B,SAAS,EAAEI,eAAe,CAAC;MAClFL,qBAAqB,CAACiB,cAAc,CAAC;IACvC,CACF,CAAC;IACD,MAAMC,wBAAsF,GAAG,IAAAhD,4BAAgB,EAC7G,OAAOK,OAAO,EAAE6B,MAAM,KAAK;MACzB,MAAMC,eAAe,GAAG,MAAMtG,yBAAyB,CAACqG,MAAM,CAAC;MAC/D,MAAMa,cAAc,GAAG,MAAM3E,iBAAiB,CAACiC,OAAO,CAAC0B,SAAS,EAAEI,eAAe,CAAC;MAClFL,qBAAqB,CAACiB,cAAc,CAAC;IACvC,CACF,CAAC;IACD,MAAME,wBAAwB,GAAG,IAAAjD,4BAAgB,EAAEkD,KAAc,IAAK;MACpE,IAAI,CAACA,KAAK,EAAEpF,gBAAgB,CAAC,CAAC;MAC9BZ,yBAAyB,CAACgG,KAAK,CAAC;IAClC,CAAC,CAAC;IAEF,oBACE3K,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAACoI,QAAQ;MAChCrH,OAAO,EAAEA,OAAQ;MACjBC,aAAa,EAAE0B,cAAe;MAC9BX,wBAAwB,EAAEA,wBAAyB;MACnDb,mBAAmB,EAAEA,mBAAoB;MACzCmH,gBAAgB,EAAExF;IAAS,gBAE3BrF,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAACsI,MAAM;MAACC,WAAW,EAAEvD,kBAAmB;MAACwD,eAAe,EAAErD;IAAuB,CAAE,CAAC,eAC7G3H,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5H,kBAAA,CAAAM,OAAiB;MAACsE,OAAO,EAAEA,OAAQ;MAAC6F,gBAAgB,eAAEjL,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAAC0I,aAAa,MAAE;IAAE,gBAChGlL,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAAC2I,WAAW;MACnC5H,OAAO,EAAEA,OAAQ;MACjByF,kBAAkB,EAAEA,kBAAmB;MACvCI,mCAAmC,EAAEA,mCAAoC;MACzEzG,qBAAqB,EAAEA,qBAAsB;MAC7CgG,aAAa,EAAEzE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE0E,MAAO;MACnClG,aAAa,EAAEuF,UAAW;MAC1B5C,QAAQ,EAAEA,QAAS;MACnBC,WAAW,EAAEA,WAAY;MACzB8F,YAAY,EAAE3F,YAAa;MAC3B4F,eAAe,EAAE7F,QAAS;MAC1BE,OAAO,EAAEA,OAAQ;MACjBhB,sBAAsB,EAAEA,sBAAuB;MAC/CgG,wBAAwB,EAAEA,wBAAyB;MACnDY,qBAAqB,EAAEvF,aAAc;MACrC8C,eAAe,EAAE7C,aAAc;MAC/BjD,mBAAmB,EAAE8E,oBAAqB;MAC1ChE,aAAa,EAAE0E,qBAAsB;MACrC9E,aAAa,EAAEA;IAAc,CAC9B,CAAC,eACFzD,MAAA,CAAAc,OAAA,CAAAsH,aAAA,CAAC5F,wBAAwB,CAAC+I,KAAK;MAC7BC,oBAAoB,EAAEhJ,wBAAwB,CAACgJ,oBAAqB;MACpEC,iBAAiB,EAAEA,iBAAiB,CAAClI,OAAO,CAAE;MAC9CmG,sBAAsB,EAAEA,sBAAuB;MAC/CG,sBAAsB,EAAEA,sBAAuB;MAC/CU,wBAAwB,EAAEA,wBAAyB;MACnDE,wBAAwB,EAAEA;IAAyB,CACpD,CACgB,CACc,CAAC;EAExC,CAAC;AACH,CAAC;AAED,SAASgB,iBAAiBA,CAAClI,OAA6B,EAAE;EACxD,IAAIA,OAAO,CAACmI,WAAW,EAAE;IACvB,OAAOnI,OAAO,CAACoI,MAAM,KAAK,UAAU;EACtC;EAEA,OAAO,IAAI;AACb;AAEO,SAAS/H,uBAAuBA,CAACrC,CAAkB,EAAEqK,CAAkB,EAAE;EAC9E,OAAO,IAAAC,6BAAiB,EAACtK,CAAC,EAAEqK,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAjL,OAAA,GAEcwB,gCAAgC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_interopRequireDefault","_StatusComposition","_createGroupChannelThreadModule","_useContext","_pubsub","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","createGroupChannelThreadModule","renderMessage","enableMessageGrouping","onPressHeaderLeft","NOOP","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","useSendbirdChat","groupChannelThreadPubSub","useState","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","toast","useToast","STRINGS","useLocalization","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelThreadMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","confirmAndMarkAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","useEffect","renderItem","props","content","createElement","hideParentMessage","Box","memoizedFlatListProps","useMemo","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","useCallback","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","b","messageComparator","_default","exports"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- const VERSION = '3.8.3';
7
+ const VERSION = '3.8.4';
8
8
  var _default = exports.default = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.3';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACTH,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.4';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACTH,OAAO","ignoreList":[]}
@@ -181,7 +181,7 @@ const createGroupChannelFragment = initModule => {
181
181
  const fileSize = ((_processedParams$file = processedParams.file) === null || _processedParams$file === void 0 ? void 0 : _processedParams$file.size) ?? processedParams.fileSize;
182
182
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
183
183
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
184
- const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;
184
+ const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;
185
185
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
186
186
  return;
187
187
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","MessageFilter","ReplyType","Box","useToast","useGroupChannelMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","toast","STRINGS","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","replyType","uikit","groupChannel","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","clear","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n voiceMessageStatusManager.clear();\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","MessageFilter","ReplyType","Box","useToast","useGroupChannelMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","toast","STRINGS","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","replyType","uikit","groupChannel","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","clear","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n voiceMessageStatusManager.clear();\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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","ignoreList":[]}
@@ -181,7 +181,7 @@ const createGroupChannelThreadFragment = initModule => {
181
181
  const fileSize = ((_processedParams$file = processedParams.file) === null || _processedParams$file === void 0 ? void 0 : _processedParams$file.size) ?? processedParams.fileSize;
182
182
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
183
183
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
184
- const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;
184
+ const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;
185
185
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
186
186
  return;
187
187
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Box","useToast","useGroupChannelThreadMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useRefTracker","GroupChannelMessageRenderer","StatusComposition","createGroupChannelThreadModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","renderMessage","enableMessageGrouping","onPressHeaderLeft","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","groupChannelThreadPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","toast","STRINGS","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","renderItem","props","content","createElement","_extends","hideParentMessage","memoizedFlatListProps","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","a","b"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Box","useToast","useGroupChannelThreadMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useRefTracker","GroupChannelMessageRenderer","StatusComposition","createGroupChannelThreadModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","renderMessage","enableMessageGrouping","onPressHeaderLeft","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","groupChannelThreadPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","toast","STRINGS","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","renderItem","props","content","createElement","_extends","hideParentMessage","memoizedFlatListProps","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","a","b"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- const VERSION = '3.8.3';
1
+ const VERSION = '3.8.4';
2
2
  export default VERSION;
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.3';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.4';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO","ignoreList":[]}
@@ -14,7 +14,7 @@ import type { StringSet } from '../localization/StringSet.type';
14
14
  import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
15
15
  import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
16
16
  export declare const SendbirdUIKit: Readonly<{
17
- VERSION: "3.8.3";
17
+ VERSION: "3.8.4";
18
18
  PLATFORM: string;
19
19
  DEFAULT: {
20
20
  AUTO_PUSH_TOKEN_REGISTRATION: boolean;
@@ -1,2 +1,2 @@
1
- declare const VERSION = "3.8.3";
1
+ declare const VERSION = "3.8.4";
2
2
  export default VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native",
3
- "version": "3.8.3",
3
+ "version": "3.8.4",
4
4
  "description": "Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.",
5
5
  "keywords": [
6
6
  "sendbird",
@@ -60,10 +60,10 @@
60
60
  },
61
61
  "dependencies": {
62
62
  "@openspacelabs/react-native-zoomable-view": "^2.1.5",
63
- "@sendbird/uikit-chat-hooks": "3.8.3",
64
- "@sendbird/uikit-react-native-foundation": "3.8.3",
63
+ "@sendbird/uikit-chat-hooks": "3.8.4",
64
+ "@sendbird/uikit-react-native-foundation": "3.8.4",
65
65
  "@sendbird/uikit-tools": "0.0.1-alpha.77",
66
- "@sendbird/uikit-utils": "3.8.3"
66
+ "@sendbird/uikit-utils": "3.8.4"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@bam.tech/react-native-image-resizer": "^3.0.4",
@@ -208,5 +208,5 @@
208
208
  ]
209
209
  ]
210
210
  },
211
- "gitHead": "0b171a82a048d096d8ede44c4727bf4ad27afba4"
211
+ "gitHead": "504bf5a4a8d1ca7cdb3ca694f0c52deaeab15ef8"
212
212
  }
@@ -204,7 +204,7 @@ const createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): G
204
204
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
205
205
 
206
206
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
207
- const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;
207
+ const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;
208
208
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
209
209
  return;
210
210
  } else {
@@ -194,7 +194,7 @@ const createGroupChannelThreadFragment = (
194
194
  const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;
195
195
 
196
196
  if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {
197
- const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;
197
+ const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)}`;
198
198
  toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');
199
199
  return;
200
200
  } else {
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- const VERSION = '3.8.3';
1
+ const VERSION = '3.8.4';
2
2
  export default VERSION;