@sendbird/uikit-react-native 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelBannedUsers/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelModeration/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelMutedMembers/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelNotifications/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelOperators/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/commonjs/domain/messageSearch/types.js.map +1 -1
- package/lib/commonjs/domain/openChannel/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelBannedUsers/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelCreate/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelModeration/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelMutedParticipants/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelOperators/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelSettings/types.js.map +1 -1
- package/lib/commonjs/domain/openChannelUserList/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +18 -3
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +29 -15
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js +2 -2
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelBannedUsers/types.js.map +1 -1
- package/lib/module/domain/groupChannelList/types.js.map +1 -1
- package/lib/module/domain/groupChannelModeration/types.js.map +1 -1
- package/lib/module/domain/groupChannelMutedMembers/types.js.map +1 -1
- package/lib/module/domain/groupChannelNotifications/types.js.map +1 -1
- package/lib/module/domain/groupChannelOperators/types.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
- package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
- package/lib/module/domain/messageSearch/types.js.map +1 -1
- package/lib/module/domain/openChannel/types.js.map +1 -1
- package/lib/module/domain/openChannelBannedUsers/types.js.map +1 -1
- package/lib/module/domain/openChannelCreate/types.js.map +1 -1
- package/lib/module/domain/openChannelList/types.js.map +1 -1
- package/lib/module/domain/openChannelModeration/types.js.map +1 -1
- package/lib/module/domain/openChannelMutedParticipants/types.js.map +1 -1
- package/lib/module/domain/openChannelOperators/types.js.map +1 -1
- package/lib/module/domain/openChannelSettings/types.js.map +1 -1
- package/lib/module/domain/openChannelUserList/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +18 -3
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +30 -16
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelInput/index.d.ts +2 -2
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -5
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +13 -2
- package/lib/typescript/src/domain/groupChannelBannedUsers/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelList/types.d.ts +13 -2
- package/lib/typescript/src/domain/groupChannelModeration/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelMutedMembers/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelNotifications/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelOperators/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +3 -2
- package/lib/typescript/src/domain/messageSearch/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelBannedUsers/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelCreate/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelList/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelModeration/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelMutedParticipants/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelOperators/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelSettings/types.d.ts +1 -1
- package/lib/typescript/src/domain/openChannelUserList/types.d.ts +3 -3
- package/lib/typescript/src/types.d.ts +4 -4
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/ChannelInput/index.tsx +2 -2
- package/src/components/ChannelMessageList/index.tsx +4 -10
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.tsx +3 -3
- package/src/domain/groupChannel/types.ts +14 -2
- package/src/domain/groupChannelBannedUsers/types.ts +1 -1
- package/src/domain/groupChannelList/types.ts +13 -2
- package/src/domain/groupChannelModeration/types.ts +1 -1
- package/src/domain/groupChannelMutedMembers/types.ts +1 -1
- package/src/domain/groupChannelNotifications/types.ts +1 -1
- package/src/domain/groupChannelOperators/types.ts +1 -1
- package/src/domain/groupChannelSettings/types.ts +1 -1
- package/src/domain/groupChannelUserList/types.ts +2 -2
- package/src/domain/messageSearch/types.ts +1 -1
- package/src/domain/openChannel/types.ts +1 -1
- package/src/domain/openChannelBannedUsers/types.ts +1 -1
- package/src/domain/openChannelCreate/types.ts +1 -1
- package/src/domain/openChannelList/types.ts +1 -1
- package/src/domain/openChannelModeration/types.ts +1 -1
- package/src/domain/openChannelMutedParticipants/types.ts +1 -1
- package/src/domain/openChannelOperators/types.ts +1 -1
- package/src/domain/openChannelSettings/types.ts +1 -1
- package/src/domain/openChannelUserList/types.ts +4 -3
- package/src/fragments/createGroupChannelFragment.tsx +21 -5
- package/src/fragments/createGroupChannelListFragment.tsx +31 -13
- package/src/types.ts +2 -2
- package/src/version.ts +1 -1
package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js
CHANGED
|
@@ -9,8 +9,6 @@ const GroupChannelMessageOutgoingStatus = _ref => {
|
|
|
9
9
|
message,
|
|
10
10
|
style
|
|
11
11
|
} = _ref;
|
|
12
|
-
if (!message.isUserMessage() && !message.isFileMessage()) return null;
|
|
13
|
-
if (channel.isEphemeral) return null;
|
|
14
12
|
const {
|
|
15
13
|
sdk
|
|
16
14
|
} = useSendbirdChat();
|
|
@@ -18,6 +16,8 @@ const GroupChannelMessageOutgoingStatus = _ref => {
|
|
|
18
16
|
colors
|
|
19
17
|
} = useUIKitTheme();
|
|
20
18
|
const outgoingStatus = useMessageOutgoingStatus(sdk, channel, message);
|
|
19
|
+
if (!message.isUserMessage() && !message.isFileMessage()) return null;
|
|
20
|
+
if (channel.isEphemeral) return null;
|
|
21
21
|
if (outgoingStatus === 'PENDING') {
|
|
22
22
|
return /*#__PURE__*/React.createElement(LoadingSpinner, {
|
|
23
23
|
size: SIZE,
|
package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMessageOutgoingStatus","Icon","LoadingSpinner","useUIKitTheme","useSendbirdChat","SIZE","GroupChannelMessageOutgoingStatus","_ref","channel","message","style","
|
|
1
|
+
{"version":3,"names":["React","useMessageOutgoingStatus","Icon","LoadingSpinner","useUIKitTheme","useSendbirdChat","SIZE","GroupChannelMessageOutgoingStatus","_ref","channel","message","style","sdk","colors","outgoingStatus","isUserMessage","isFileMessage","isEphemeral","createElement","size","icon","color","error","secondary","onBackground03","memo"],"sources":["GroupChannelMessageOutgoingStatus.tsx"],"sourcesContent":["import React from 'react';\nimport type { ImageStyle, StyleProp } from 'react-native';\n\nimport { useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport { Icon, LoadingSpinner, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel, SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\n\nconst SIZE = 16;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n message: SendbirdMessage;\n style?: StyleProp<ImageStyle>;\n};\nconst GroupChannelMessageOutgoingStatus = ({ channel, message, style }: Props) => {\n const { sdk } = useSendbirdChat();\n const { colors } = useUIKitTheme();\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, message);\n\n if (!message.isUserMessage() && !message.isFileMessage()) return null;\n if (channel.isEphemeral) return null;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={SIZE} style={style} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={SIZE} color={colors.error} style={style} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={SIZE} color={colors.secondary} style={style} />;\n }\n\n if (outgoingStatus === 'UNREAD' || outgoingStatus === 'DELIVERED') {\n return <Icon icon={'done-all'} size={SIZE} color={colors.onBackground03} style={style} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={SIZE} color={colors.onBackground03} style={style} />;\n }\n\n return null;\n};\n\nexport default React.memo(GroupChannelMessageOutgoingStatus);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,IAAI,EAAEC,cAAc,EAAEC,aAAa,QAAQ,yCAAyC;AAG7F,SAASC,eAAe,QAAQ,wBAAwB;AAExD,MAAMC,IAAI,GAAG,EAAE;AAOf,MAAMC,iCAAiC,GAAGC,IAAA,IAAwC;EAAA,IAAvC;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAAH,IAAA;EAC3E,MAAM;IAAEI;EAAI,CAAC,GAAGP,eAAe,EAAE;EACjC,MAAM;IAAEQ;EAAO,CAAC,GAAGT,aAAa,EAAE;EAClC,MAAMU,cAAc,GAAGb,wBAAwB,CAACW,GAAG,EAAEH,OAAO,EAAEC,OAAO,CAAC;EAEtE,IAAI,CAACA,OAAO,CAACK,aAAa,EAAE,IAAI,CAACL,OAAO,CAACM,aAAa,EAAE,EAAE,OAAO,IAAI;EACrE,IAAIP,OAAO,CAACQ,WAAW,EAAE,OAAO,IAAI;EAEpC,IAAIH,cAAc,KAAK,SAAS,EAAE;IAChC,oBAAOd,KAAA,CAAAkB,aAAA,CAACf,cAAc;MAACgB,IAAI,EAAEb,IAAK;MAACK,KAAK,EAAEA;IAAM,EAAG;EACrD;EAEA,IAAIG,cAAc,KAAK,QAAQ,EAAE;IAC/B,oBAAOd,KAAA,CAAAkB,aAAA,CAAChB,IAAI;MAACkB,IAAI,EAAE,OAAQ;MAACD,IAAI,EAAEb,IAAK;MAACe,KAAK,EAAER,MAAM,CAACS,KAAM;MAACX,KAAK,EAAEA;IAAM,EAAG;EAC/E;EAEA,IAAIG,cAAc,KAAK,MAAM,EAAE;IAC7B,oBAAOd,KAAA,CAAAkB,aAAA,CAAChB,IAAI;MAACkB,IAAI,EAAE,UAAW;MAACD,IAAI,EAAEb,IAAK;MAACe,KAAK,EAAER,MAAM,CAACU,SAAU;MAACZ,KAAK,EAAEA;IAAM,EAAG;EACtF;EAEA,IAAIG,cAAc,KAAK,QAAQ,IAAIA,cAAc,KAAK,WAAW,EAAE;IACjE,oBAAOd,KAAA,CAAAkB,aAAA,CAAChB,IAAI;MAACkB,IAAI,EAAE,UAAW;MAACD,IAAI,EAAEb,IAAK;MAACe,KAAK,EAAER,MAAM,CAACW,cAAe;MAACb,KAAK,EAAEA;IAAM,EAAG;EAC3F;EAEA,IAAIG,cAAc,KAAK,aAAa,EAAE;IACpC,oBAAOd,KAAA,CAAAkB,aAAA,CAAChB,IAAI;MAACkB,IAAI,EAAE,MAAO;MAACD,IAAI,EAAEb,IAAK;MAACe,KAAK,EAAER,MAAM,CAACW,cAAe;MAACb,KAAK,EAAEA;IAAM,EAAG;EACvF;EAEA,OAAO,IAAI;AACb,CAAC;AAED,4BAAeX,KAAK,CAACyB,IAAI,CAAClB,iCAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatList } from 'react-native';\n\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n OnBeforeHandler,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { ChannelInputProps, SuggestedMentionListProps } from '../../components/ChannelInput';\nimport type { ChannelMessageListProps } from '../../components/ChannelMessageList';\nimport type { CommonComponent } from '../../types';\nimport type { PubSub } from '../../utils/pubsub';\n\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;\n onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;\n onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;\n onBeforeUpdateFileMessage?: OnBeforeHandler<SendbirdFileMessageUpdateParams>;\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatList } from 'react-native';\n\nimport type { MessageCollectionParams, MessageFilterParams } from '@sendbird/chat/groupChannel';\nimport type { UseGroupChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n OnBeforeHandler,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUser,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { ChannelInputProps, SuggestedMentionListProps } from '../../components/ChannelInput';\nimport type { ChannelMessageListProps } from '../../components/ChannelMessageList';\nimport type { CommonComponent } from '../../types';\nimport type { PubSub } from '../../utils/pubsub';\n\nexport type MessageListQueryParamsType = Omit<MessageCollectionParams, 'filter'> & MessageFilterParams;\nexport interface GroupChannelProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: GroupChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelProps['Header']['onPressHeaderRight'];\n onPressMediaMessage?: GroupChannelProps['MessageList']['onPressMediaMessage'];\n\n onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;\n onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;\n onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;\n onBeforeUpdateFileMessage?: OnBeforeHandler<SendbirdFileMessageUpdateParams>;\n\n renderMessage?: GroupChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: GroupChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: GroupChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableTypingIndicator?: GroupChannelProps['Provider']['enableTypingIndicator'];\n enableMessageGrouping?: GroupChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: GroupChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: GroupChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'];\n\n searchItem?: GroupChannelProps['MessageList']['searchItem'];\n\n /**\n * @description You can specify the query parameters for the message list.\n * @example\n * ```\n * <GroupChannelFragment messageListQueryParams={{ prevResultLimit: 20, customTypesFilter: ['filter'] }} />\n * ```\n * */\n messageListQueryParams?: MessageListQueryParamsType;\n /** @deprecated Please use `messageListQueryParams` instead */\n collectionCreator?: UseGroupChannelMessagesOptions['collectionCreator'];\n };\n Header: {\n shouldHideRight: () => boolean;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n MessageList: Pick<\n ChannelMessageListProps<SendbirdGroupChannel>,\n | 'enableMessageGrouping'\n | 'currentUserId'\n | 'channel'\n | 'messages'\n | 'newMessages'\n | 'scrolledAwayFromBottom'\n | 'onScrolledAwayFromBottom'\n | 'onTopReached'\n | 'onBottomReached'\n | 'onResendFailedMessage'\n | 'onDeleteMessage'\n | 'onPressMediaMessage'\n | 'renderMessage'\n | 'renderNewMessagesButton'\n | 'renderScrollToBottomButton'\n | 'flatListProps'\n | 'hasNext'\n | 'searchItem'\n > & {\n onResetMessageList: () => Promise<void>;\n onResetMessageListWithStartingPoint: (startingPoint: number) => Promise<void>;\n\n // Changing the search item will trigger the focus animation on messages.\n onUpdateSearchItem: (searchItem?: GroupChannelProps['MessageList']['searchItem']) => void;\n };\n Input: Pick<\n ChannelInputProps,\n | 'shouldRenderInput'\n | 'onPressSendUserMessage'\n | 'onPressSendFileMessage'\n | 'onPressUpdateUserMessage'\n | 'onPressUpdateFileMessage'\n | 'SuggestedMentionList'\n | 'AttachmentsButton'\n >;\n\n SuggestedMentionList: SuggestedMentionListProps;\n Provider: {\n channel: SendbirdGroupChannel;\n enableTypingIndicator: boolean;\n keyboardAvoidOffset?: number;\n groupChannelPubSub: PubSub<GroupChannelPubSubContextPayload>;\n\n messages: SendbirdMessage[];\n // Changing the search item will trigger the focus animation on messages.\n onUpdateSearchItem: (searchItem?: GroupChannelProps['MessageList']['searchItem']) => void;\n };\n}\n\n/**\n * Internal context for GroupChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n keyboardAvoidOffset?: number;\n channel: SendbirdGroupChannel;\n messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n messageToReply?: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n }>;\n TypingIndicator: React.Context<{\n typingUsers: SendbirdUser[];\n }>;\n PubSub: React.Context<PubSub<GroupChannelPubSubContextPayload>>;\n MessageList: React.Context<{\n /**\n * ref object for FlatList of MessageList\n * */\n flatListRef: React.MutableRefObject<FlatList | null>;\n /**\n * Function that scrolls to a message within a group channel.\n * @param messageId {number} - The id of the message to scroll.\n * @param options {object} - Scroll options (optional).\n * @param options.focusAnimated {boolean} - Enable a shake animation on the message component upon completion of scrolling.\n * @param options.viewPosition {number} - Position information to adjust the visible area during scrolling. bottom(0) ~ top(1.0)\n *\n * @example\n * ```\n * const { scrollToMessage } = useContext(GroupChannelContexts.MessageList);\n * const messageIncludedInMessageList = scrollToMessage(lastMessage.messageId, { focusAnimated: true, viewPosition: 1 });\n * if (!messageIncludedInMessageList) console.warn('Message not found in the message list.');\n * ```\n * */\n scrollToMessage: (messageId: number, options?: { focusAnimated?: boolean; viewPosition?: number }) => boolean;\n /**\n * Call the FlatList function asynchronously to scroll to bottom lazily\n * to avoid scrolling before data rendering has been committed.\n * */\n lazyScrollToBottom: (params?: { animated?: boolean; timeout?: number }) => void;\n /**\n * Call the FlatList function asynchronously to scroll to index lazily.\n * to avoid scrolling before data rendering has been committed.\n * */\n lazyScrollToIndex: (params?: {\n index?: number;\n animated?: boolean;\n timeout?: number;\n viewPosition?: number;\n }) => void;\n }>;\n}\nexport interface GroupChannelModule {\n Provider: CommonComponent<GroupChannelProps['Provider']>;\n Header: CommonComponent<GroupChannelProps['Header']>;\n MessageList: CommonComponent<GroupChannelProps['MessageList']>;\n Input: CommonComponent<GroupChannelProps['Input']>;\n SuggestedMentionList: CommonComponent<GroupChannelProps['SuggestedMentionList']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelFragment = React.FC<GroupChannelProps['Fragment']>;\n\nexport type GroupChannelPubSubContextPayload =\n | {\n type: 'MESSAGE_SENT_PENDING' | 'MESSAGE_SENT_SUCCESS';\n data: {\n message: SendbirdUserMessage | SendbirdFileMessage;\n };\n }\n | {\n type: 'MESSAGES_RECEIVED' | 'MESSAGES_UPDATED';\n data: {\n messages: SendbirdMessage[];\n };\n }\n | {\n type: 'TYPING_BUBBLE_RENDERED';\n data?: undefined;\n };\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelBannedUsersProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelBannedUsersProps['Header']['onPressHeaderLeft'];\n renderUser?: GroupChannelBannedUsersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n bannedUsers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n onLoadNext: () => Promise<void>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelBannedUsers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelBannedUsersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelBannedUsersModule {\n Provider: CommonComponent<GroupChannelBannedUsersProps['Provider']>;\n Header: CommonComponent<GroupChannelBannedUsersProps['Header']>;\n List: CommonComponent<GroupChannelBannedUsersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelBannedUsersProps['StatusError']>;\n}\n\nexport type GroupChannelBannedUsersFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelBannedUsersProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelBannedUsersProps['Header']['onPressHeaderLeft'];\n renderUser?: GroupChannelBannedUsersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n bannedUsers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n onLoadNext: () => Promise<void>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelBannedUsers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelBannedUsersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelBannedUsersModule {\n Provider: CommonComponent<GroupChannelBannedUsersProps['Provider']>;\n Header: CommonComponent<GroupChannelBannedUsersProps['Header']>;\n List: CommonComponent<GroupChannelBannedUsersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelBannedUsersProps['StatusError']>;\n}\n\nexport type GroupChannelBannedUsersFragment = React.FC<GroupChannelBannedUsersProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseGroupChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { ActionMenuItem } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelListProps {\n Fragment: {\n onPressChannel: GroupChannelListProps['List']['onPressChannel'];\n onPressCreateChannel: (channelType: GroupChannelType) => void;\n renderGroupChannelPreview?: GroupChannelListProps['List']['renderGroupChannelPreview'];\n skipTypeSelection?: boolean;\n
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { GroupChannelCollectionParams, GroupChannelFilterParams } from '@sendbird/chat/groupChannel';\nimport type { UseGroupChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { ActionMenuItem } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type ChannelListQueryParamsType = Omit<GroupChannelCollectionParams, 'filter'> & GroupChannelFilterParams;\nexport interface GroupChannelListProps {\n Fragment: {\n onPressChannel: GroupChannelListProps['List']['onPressChannel'];\n onPressCreateChannel: (channelType: GroupChannelType) => void;\n renderGroupChannelPreview?: GroupChannelListProps['List']['renderGroupChannelPreview'];\n skipTypeSelection?: boolean;\n flatListProps?: GroupChannelListProps['List']['flatListProps'];\n menuItemCreator?: GroupChannelListProps['List']['menuItemCreator'];\n /**\n * @description You can specify the query parameters for the channel list.\n * @example\n * ```\n * <GroupChannelListFragment channelListQueryParams={{ limit: 20, includeEmpty: false }} />\n * ```\n * */\n channelListQueryParams?: ChannelListQueryParamsType;\n /** @deprecated Please use `channelListQueryParams` instead */\n collectionCreator?: UseGroupChannelListOptions['collectionCreator'];\n };\n Header: {};\n List: {\n onPressChannel: (channel: SendbirdGroupChannel) => void;\n groupChannels: SendbirdGroupChannel[];\n renderGroupChannelPreview: (props: {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n }) => React.ReactElement | null;\n onLoadNext: () => Promise<void>;\n flatListProps?: Omit<FlatListProps<SendbirdGroupChannel>, 'data' | 'renderItem'>;\n menuItemCreator?: (defaultMenuItem: ActionMenuItem) => ActionMenuItem;\n };\n TypeSelector: {\n skipTypeSelection: boolean;\n onSelectType: (type: GroupChannelType) => void;\n };\n}\n\n/**\n * Internal context for GroupChannelList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelListContextsType {\n Fragment: React.Context<{\n headerTitle: string;\n }>;\n TypeSelector: React.Context<{\n visible: boolean;\n show: () => void;\n hide: () => void;\n headerTitle: string;\n }>;\n}\nexport interface GroupChannelListModule {\n Provider: CommonComponent;\n Header: CommonComponent<GroupChannelListProps['Header']>;\n List: CommonComponent<GroupChannelListProps['List']>;\n TypeSelector: CommonComponent<GroupChannelListProps['TypeSelector']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type GroupChannelListFragment = React.FC<GroupChannelListProps['Fragment']>;\nexport type GroupChannelType = 'GROUP' | 'SUPER_GROUP' | 'BROADCAST';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelModerationProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelModerationProps['Header']['onPressHeaderLeft'];\n onPressMenuOperators: GroupChannelModerationProps['Menu']['onPressMenuOperators'];\n onPressMenuMutedMembers: GroupChannelModerationProps['Menu']['onPressMenuMutedMembers'];\n onPressMenuBannedUsers: GroupChannelModerationProps['Menu']['onPressMenuBannedUsers'];\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Menu: {\n onPressMenuOperators: () => void;\n onPressMenuMutedMembers: () => void;\n onPressMenuBannedUsers: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelModeration\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelModerationContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelModerationModule {\n Provider: CommonComponent<GroupChannelModerationProps['Provider']>;\n Header: CommonComponent<GroupChannelModerationProps['Header']>;\n Menu: CommonComponent<GroupChannelModerationProps['Menu']>;\n}\n\nexport type GroupChannelModerationFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelModerationProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelModerationProps['Header']['onPressHeaderLeft'];\n onPressMenuOperators: GroupChannelModerationProps['Menu']['onPressMenuOperators'];\n onPressMenuMutedMembers: GroupChannelModerationProps['Menu']['onPressMenuMutedMembers'];\n onPressMenuBannedUsers: GroupChannelModerationProps['Menu']['onPressMenuBannedUsers'];\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Menu: {\n onPressMenuOperators: () => void;\n onPressMenuMutedMembers: () => void;\n onPressMenuBannedUsers: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelModeration\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelModerationContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelModerationModule {\n Provider: CommonComponent<GroupChannelModerationProps['Provider']>;\n Header: CommonComponent<GroupChannelModerationProps['Header']>;\n Menu: CommonComponent<GroupChannelModerationProps['Menu']>;\n}\n\nexport type GroupChannelModerationFragment = React.FC<GroupChannelModerationProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelMutedMembersProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelMutedMembersProps['Header']['onPressHeaderLeft'];\n renderUser?: GroupChannelMutedMembersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n onLoadNext: () => void;\n mutedMembers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelMutedMembers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelMutedMembersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelMutedMembersModule {\n Provider: CommonComponent<GroupChannelMutedMembersProps['Provider']>;\n Header: CommonComponent<GroupChannelMutedMembersProps['Header']>;\n List: CommonComponent<GroupChannelMutedMembersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelMutedMembersProps['StatusError']>;\n}\n\nexport type GroupChannelMutedMembersFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelMutedMembersProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelMutedMembersProps['Header']['onPressHeaderLeft'];\n renderUser?: GroupChannelMutedMembersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n onLoadNext: () => void;\n mutedMembers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelMutedMembers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelMutedMembersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelMutedMembersModule {\n Provider: CommonComponent<GroupChannelMutedMembersProps['Provider']>;\n Header: CommonComponent<GroupChannelMutedMembersProps['Header']>;\n List: CommonComponent<GroupChannelMutedMembersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelMutedMembersProps['StatusError']>;\n}\n\nexport type GroupChannelMutedMembersFragment = React.FC<GroupChannelMutedMembersProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelNotificationsProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelNotificationsProps['Header']['onPressHeaderLeft'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n View: {};\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelNotifications\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelNotificationsContextsType = {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n }>;\n};\nexport interface GroupChannelNotificationsModule {\n Provider: CommonComponent<GroupChannelNotificationsProps['Provider']>;\n Header: CommonComponent<GroupChannelNotificationsProps['Header']>;\n View: CommonComponent<GroupChannelNotificationsProps['View']>;\n}\n\nexport type GroupChannelNotificationsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelNotificationsProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelNotificationsProps['Header']['onPressHeaderLeft'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n View: {};\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelNotifications\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelNotificationsContextsType = {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n }>;\n};\nexport interface GroupChannelNotificationsModule {\n Provider: CommonComponent<GroupChannelNotificationsProps['Provider']>;\n Header: CommonComponent<GroupChannelNotificationsProps['Header']>;\n View: CommonComponent<GroupChannelNotificationsProps['View']>;\n}\n\nexport type GroupChannelNotificationsFragment = React.FC<GroupChannelNotificationsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelOperatorsProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelOperatorsProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelOperatorsProps['Header']['onPressHeaderRight'];\n renderUser?: GroupChannelOperatorsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n operators: SendbirdUser[];\n onLoadNext: () => void;\n renderUser: (props: { user: SendbirdUser }) => React.ReactElement | null;\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelOperators\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelOperatorsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelOperatorsModule {\n Provider: CommonComponent<GroupChannelOperatorsProps['Provider']>;\n Header: CommonComponent<GroupChannelOperatorsProps['Header']>;\n List: CommonComponent<GroupChannelOperatorsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelOperatorsProps['StatusError']>;\n}\n\nexport type GroupChannelOperatorsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type GroupChannelOperatorsProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: GroupChannelOperatorsProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: GroupChannelOperatorsProps['Header']['onPressHeaderRight'];\n renderUser?: GroupChannelOperatorsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n operators: SendbirdUser[];\n onLoadNext: () => void;\n renderUser: (props: { user: SendbirdUser }) => React.ReactElement | null;\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n};\n\n/**\n * Internal context for GroupChannelOperators\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type GroupChannelOperatorsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdGroupChannel;\n }>;\n};\nexport interface GroupChannelOperatorsModule {\n Provider: CommonComponent<GroupChannelOperatorsProps['Provider']>;\n Header: CommonComponent<GroupChannelOperatorsProps['Header']>;\n List: CommonComponent<GroupChannelOperatorsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<GroupChannelOperatorsProps['StatusError']>;\n}\n\nexport type GroupChannelOperatorsFragment = React.FC<GroupChannelOperatorsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuModeration: GroupChannelSettingsProps['Menu']['onPressMenuModeration'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuSearchInChannel?: GroupChannelSettingsProps['Menu']['onPressMenuSearchInChannel'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n onPressMenuNotification?: GroupChannelSettingsProps['Menu']['onPressMenuNotification'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuModeration: () => void;\n onPressMenuMembers: () => void;\n onPressMenuSearchInChannel?: () => void;\n onPressMenuLeaveChannel: () => void;\n onPressMenuNotification?: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuModeration: GroupChannelSettingsProps['Menu']['onPressMenuModeration'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuSearchInChannel?: GroupChannelSettingsProps['Menu']['onPressMenuSearchInChannel'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n onPressMenuNotification?: GroupChannelSettingsProps['Menu']['onPressMenuNotification'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuModeration: () => void;\n onPressMenuMembers: () => void;\n onPressMenuSearchInChannel?: () => void;\n onPressMenuLeaveChannel: () => void;\n onPressMenuNotification?: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment = React.FC<GroupChannelSettingsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\nexport interface GroupChannelCreateProps<User extends UserStruct> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelCreateParams,\n users: User[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<\n GroupChannelCreateProps<User>['Fragment']\n>;\n\nexport interface GroupChannelInviteProps<User extends UserStruct> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<\n GroupChannelInviteProps<User>['Fragment']\n>;\n\nexport interface GroupChannelMembersProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<SendbirdMember>['sortComparator'];\n renderUser?: UserListProps<SendbirdMember>['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdMember>['queryCreator'];\n };\n}\nexport type GroupChannelMembersFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type {\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\nexport interface GroupChannelCreateProps<User extends UserStruct> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelCreateParams,\n users: User[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User extends UserStruct> = CommonComponent<\n GroupChannelCreateProps<User>['Fragment']\n>;\n\nexport interface GroupChannelInviteProps<User extends UserStruct> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User extends UserStruct> = CommonComponent<\n GroupChannelInviteProps<User>['Fragment']\n>;\n\nexport interface GroupChannelMembersProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<SendbirdMember>['sortComparator'];\n renderUser?: UserListProps<SendbirdMember>['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdMember>['queryCreator'];\n };\n}\nexport type GroupChannelMembersFragment = React.FC<GroupChannelMembersProps['Fragment']>;\n\nexport interface GroupChannelRegisterOperatorProps {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (channel: SendbirdGroupChannel) => void;\n sortComparator?: UseUserListOptions<SendbirdMember>['sortComparator'];\n renderUser?: UserListProps<SendbirdMember>['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdMember>['queryCreator'];\n };\n}\nexport type GroupChannelRegisterOperatorFragment = React.FC<GroupChannelRegisterOperatorProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { SendbirdBaseMessage, SendbirdGroupChannel, SendbirdMessageSearchQuery } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type MessageSearchProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: MessageSearchProps['Header']['onPressHeaderLeft'];\n onPressSearchResultItem: MessageSearchProps['List']['onPressSearchResultItem'];\n renderSearchResultItem?: MessageSearchProps['List']['renderSearchResultItem'];\n queryCreator?: () => SendbirdMessageSearchQuery;\n };\n Header: {\n keyword: string;\n onChangeKeyword: (value: string) => void;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n channel: SendbirdGroupChannel;\n messages: SendbirdBaseMessage[];\n onPressSearchResultItem: (params: { channel: SendbirdGroupChannel; message: SendbirdBaseMessage }) => void;\n renderSearchResultItem: (props: {\n channel: SendbirdGroupChannel;\n message: SendbirdBaseMessage;\n onPress: () => void;\n }) => React.ReactElement | null;\n flatListProps?: Partial<FlatListProps<SendbirdBaseMessage>>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n};\n\n/**\n * Internal context for MessageSearch\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type MessageSearchContextsType = {\n Fragment: React.Context<null>;\n};\nexport interface MessageSearchModule {\n Provider: CommonComponent;\n Header: CommonComponent<MessageSearchProps['Header']>;\n List: CommonComponent<MessageSearchProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<MessageSearchProps['StatusError']>;\n}\n\nexport type MessageSearchFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { SendbirdBaseMessage, SendbirdGroupChannel, SendbirdMessageSearchQuery } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type MessageSearchProps = {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: MessageSearchProps['Header']['onPressHeaderLeft'];\n onPressSearchResultItem: MessageSearchProps['List']['onPressSearchResultItem'];\n renderSearchResultItem?: MessageSearchProps['List']['renderSearchResultItem'];\n queryCreator?: () => SendbirdMessageSearchQuery;\n };\n Header: {\n keyword: string;\n onChangeKeyword: (value: string) => void;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n channel: SendbirdGroupChannel;\n messages: SendbirdBaseMessage[];\n onPressSearchResultItem: (params: { channel: SendbirdGroupChannel; message: SendbirdBaseMessage }) => void;\n renderSearchResultItem: (props: {\n channel: SendbirdGroupChannel;\n message: SendbirdBaseMessage;\n onPress: () => void;\n }) => React.ReactElement | null;\n flatListProps?: Partial<FlatListProps<SendbirdBaseMessage>>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n};\n\n/**\n * Internal context for MessageSearch\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type MessageSearchContextsType = {\n Fragment: React.Context<null>;\n};\nexport interface MessageSearchModule {\n Provider: CommonComponent;\n Header: CommonComponent<MessageSearchProps['Header']>;\n List: CommonComponent<MessageSearchProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<MessageSearchProps['StatusError']>;\n}\n\nexport type MessageSearchFragment = React.FC<MessageSearchProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseOpenChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type { Icon } from '@sendbird/uikit-react-native-foundation';\nimport type {\n OnBeforeHandler,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { ChannelInputProps } from '../../components/ChannelInput';\nimport type { ChannelMessageListProps } from '../../components/ChannelMessageList';\nimport type { CommonComponent } from '../../types';\nimport type { PubSub } from '../../utils/pubsub';\n\nexport type OpenChannelProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: OpenChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRightWithSettings: OpenChannelProps['Header']['onPressHeaderRight'];\n onPressHeaderRightWithParticipants: OpenChannelProps['Header']['onPressHeaderRight'];\n onPressMediaMessage?: OpenChannelProps['MessageList']['onPressMediaMessage'];\n\n onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;\n onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;\n onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;\n onBeforeUpdateFileMessage?: OnBeforeHandler<SendbirdFileMessageUpdateParams>;\n\n renderMessage?: OpenChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: OpenChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: OpenChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableMessageGrouping?: OpenChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: OpenChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: OpenChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseOpenChannelMessagesOptions['sortComparator'];\n queryCreator?: UseOpenChannelMessagesOptions['queryCreator'];\n };\n Header: {\n rightIconName: keyof typeof Icon.Assets;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n\n MessageList: Pick<\n ChannelMessageListProps<SendbirdOpenChannel>,\n | 'enableMessageGrouping'\n | 'currentUserId'\n | 'channel'\n | 'messages'\n | 'newMessages'\n | 'scrolledAwayFromBottom'\n | 'onScrolledAwayFromBottom'\n | 'onTopReached'\n | 'onBottomReached'\n | 'onResendFailedMessage'\n | 'onDeleteMessage'\n | 'onPressMediaMessage'\n | 'renderMessage'\n | 'renderNewMessagesButton'\n | 'renderScrollToBottomButton'\n | 'flatListProps'\n | 'hasNext'\n >;\n Input: Pick<\n ChannelInputProps,\n | 'shouldRenderInput'\n | 'onPressSendUserMessage'\n | 'onPressSendFileMessage'\n | 'onPressUpdateUserMessage'\n | 'onPressUpdateFileMessage'\n | 'AttachmentsButton'\n >;\n\n Provider: {\n channel: SendbirdOpenChannel;\n keyboardAvoidOffset?: number;\n openChannelPubSub: PubSub<OpenChannelPubSubContextPayload>;\n };\n};\n\n/**\n * Internal context for OpenChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n PubSub: React.Context<PubSub<OpenChannelPubSubContextPayload>>;\n};\nexport interface OpenChannelModule {\n Provider: CommonComponent<OpenChannelProps['Provider']>;\n Header: CommonComponent<OpenChannelProps['Header']>;\n MessageList: CommonComponent<OpenChannelProps['MessageList']>;\n Input: CommonComponent<OpenChannelProps['Input']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type OpenChannelFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseOpenChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';\nimport type { Icon } from '@sendbird/uikit-react-native-foundation';\nimport type {\n OnBeforeHandler,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n} from '@sendbird/uikit-utils';\n\nimport type { ChannelInputProps } from '../../components/ChannelInput';\nimport type { ChannelMessageListProps } from '../../components/ChannelMessageList';\nimport type { CommonComponent } from '../../types';\nimport type { PubSub } from '../../utils/pubsub';\n\nexport type OpenChannelProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onChannelDeleted: () => void;\n onPressHeaderLeft: OpenChannelProps['Header']['onPressHeaderLeft'];\n onPressHeaderRightWithSettings: OpenChannelProps['Header']['onPressHeaderRight'];\n onPressHeaderRightWithParticipants: OpenChannelProps['Header']['onPressHeaderRight'];\n onPressMediaMessage?: OpenChannelProps['MessageList']['onPressMediaMessage'];\n\n onBeforeSendUserMessage?: OnBeforeHandler<SendbirdUserMessageCreateParams>;\n onBeforeSendFileMessage?: OnBeforeHandler<SendbirdFileMessageCreateParams>;\n onBeforeUpdateUserMessage?: OnBeforeHandler<SendbirdUserMessageUpdateParams>;\n onBeforeUpdateFileMessage?: OnBeforeHandler<SendbirdFileMessageUpdateParams>;\n\n renderMessage?: OpenChannelProps['MessageList']['renderMessage'];\n renderNewMessagesButton?: OpenChannelProps['MessageList']['renderNewMessagesButton'];\n renderScrollToBottomButton?: OpenChannelProps['MessageList']['renderScrollToBottomButton'];\n\n enableMessageGrouping?: OpenChannelProps['MessageList']['enableMessageGrouping'];\n\n keyboardAvoidOffset?: OpenChannelProps['Provider']['keyboardAvoidOffset'];\n flatListProps?: OpenChannelProps['MessageList']['flatListProps'];\n sortComparator?: UseOpenChannelMessagesOptions['sortComparator'];\n queryCreator?: UseOpenChannelMessagesOptions['queryCreator'];\n };\n Header: {\n rightIconName: keyof typeof Icon.Assets;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n\n MessageList: Pick<\n ChannelMessageListProps<SendbirdOpenChannel>,\n | 'enableMessageGrouping'\n | 'currentUserId'\n | 'channel'\n | 'messages'\n | 'newMessages'\n | 'scrolledAwayFromBottom'\n | 'onScrolledAwayFromBottom'\n | 'onTopReached'\n | 'onBottomReached'\n | 'onResendFailedMessage'\n | 'onDeleteMessage'\n | 'onPressMediaMessage'\n | 'renderMessage'\n | 'renderNewMessagesButton'\n | 'renderScrollToBottomButton'\n | 'flatListProps'\n | 'hasNext'\n >;\n Input: Pick<\n ChannelInputProps,\n | 'shouldRenderInput'\n | 'onPressSendUserMessage'\n | 'onPressSendFileMessage'\n | 'onPressUpdateUserMessage'\n | 'onPressUpdateFileMessage'\n | 'AttachmentsButton'\n >;\n\n Provider: {\n channel: SendbirdOpenChannel;\n keyboardAvoidOffset?: number;\n openChannelPubSub: PubSub<OpenChannelPubSubContextPayload>;\n };\n};\n\n/**\n * Internal context for OpenChannel\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n messageToEdit?: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n keyboardAvoidOffset?: number;\n }>;\n PubSub: React.Context<PubSub<OpenChannelPubSubContextPayload>>;\n};\nexport interface OpenChannelModule {\n Provider: CommonComponent<OpenChannelProps['Provider']>;\n Header: CommonComponent<OpenChannelProps['Header']>;\n MessageList: CommonComponent<OpenChannelProps['MessageList']>;\n Input: CommonComponent<OpenChannelProps['Input']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n}\n\nexport type OpenChannelFragment = React.FC<OpenChannelProps['Fragment']>;\n\nexport type OpenChannelPubSubContextPayload =\n | {\n type: 'MESSAGE_SENT_PENDING' | 'MESSAGE_SENT_SUCCESS';\n data: {\n message: SendbirdUserMessage | SendbirdFileMessage;\n };\n }\n | {\n type: 'MESSAGES_RECEIVED';\n data: {\n messages: SendbirdMessage[];\n };\n };\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelBannedUsersProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelBannedUsersProps['Header']['onPressHeaderLeft'];\n renderUser?: OpenChannelBannedUsersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n bannedUsers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n onLoadNext: () => Promise<void>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelBannedUsers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelBannedUsersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelBannedUsersModule {\n Provider: CommonComponent<OpenChannelBannedUsersProps['Provider']>;\n Header: CommonComponent<OpenChannelBannedUsersProps['Header']>;\n List: CommonComponent<OpenChannelBannedUsersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelBannedUsersProps['StatusError']>;\n}\n\nexport type OpenChannelBannedUsersFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelBannedUsersProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelBannedUsersProps['Header']['onPressHeaderLeft'];\n renderUser?: OpenChannelBannedUsersProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n bannedUsers: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n onLoadNext: () => Promise<void>;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelBannedUsers\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelBannedUsersContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelBannedUsersModule {\n Provider: CommonComponent<OpenChannelBannedUsersProps['Provider']>;\n Header: CommonComponent<OpenChannelBannedUsersProps['Header']>;\n List: CommonComponent<OpenChannelBannedUsersProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelBannedUsersProps['StatusError']>;\n}\n\nexport type OpenChannelBannedUsersFragment = React.FC<OpenChannelBannedUsersProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { OnBeforeHandler, SendbirdOpenChannel, SendbirdOpenChannelCreateParams } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelCreateProps = {\n Fragment: {\n onPressHeaderLeft: OpenChannelCreateProps['Header']['onPressHeaderLeft'];\n onCreateChannel: (channel: SendbirdOpenChannel) => void;\n onBeforeCreateChannel?: OnBeforeHandler<SendbirdOpenChannelCreateParams>;\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n shouldActivateHeaderRight: () => boolean;\n };\n ProfileInput: {\n channelName: string;\n onChangeChannelName: (val: OpenChannelCreateProps['ProfileInput']['channelName']) => void;\n channelCoverFile: FileType | undefined;\n onChangeChannelCoverFile: (val: OpenChannelCreateProps['ProfileInput']['channelCoverFile']) => void;\n };\n};\n\n/**\n * Internal context for OpenChannelCreate\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelCreateContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n};\nexport interface OpenChannelCreateModule {\n Provider: CommonComponent;\n Header: CommonComponent<OpenChannelCreateProps['Header']>;\n ProfileInput: CommonComponent<OpenChannelCreateProps['ProfileInput']>;\n StatusLoading: CommonComponent;\n}\n\nexport type OpenChannelCreateFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { OnBeforeHandler, SendbirdOpenChannel, SendbirdOpenChannelCreateParams } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../../platform/types';\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelCreateProps = {\n Fragment: {\n onPressHeaderLeft: OpenChannelCreateProps['Header']['onPressHeaderLeft'];\n onCreateChannel: (channel: SendbirdOpenChannel) => void;\n onBeforeCreateChannel?: OnBeforeHandler<SendbirdOpenChannelCreateParams>;\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n shouldActivateHeaderRight: () => boolean;\n };\n ProfileInput: {\n channelName: string;\n onChangeChannelName: (val: OpenChannelCreateProps['ProfileInput']['channelName']) => void;\n channelCoverFile: FileType | undefined;\n onChangeChannelCoverFile: (val: OpenChannelCreateProps['ProfileInput']['channelCoverFile']) => void;\n };\n};\n\n/**\n * Internal context for OpenChannelCreate\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelCreateContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n};\nexport interface OpenChannelCreateModule {\n Provider: CommonComponent;\n Header: CommonComponent<OpenChannelCreateProps['Header']>;\n ProfileInput: CommonComponent<OpenChannelCreateProps['ProfileInput']>;\n StatusLoading: CommonComponent;\n}\n\nexport type OpenChannelCreateFragment = React.FC<OpenChannelCreateProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseOpenChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelListProps = {\n Fragment: {\n onPressChannel: OpenChannelListProps['List']['onPressChannel'];\n onPressCreateChannel: () => void;\n renderOpenChannelPreview?: OpenChannelListProps['List']['renderOpenChannelPreview'];\n queryCreator?: UseOpenChannelListOptions['queryCreator'];\n flatListProps?: OpenChannelListProps['List']['flatListProps'];\n };\n Header: {\n onPressHeaderRight: () => void;\n };\n List: {\n onPressChannel: (channel: SendbirdOpenChannel) => void;\n openChannels: SendbirdOpenChannel[];\n renderOpenChannelPreview: (props: {\n channel: SendbirdOpenChannel;\n onPress: () => void;\n }) => React.ReactElement | null;\n onLoadNext: () => Promise<void>;\n flatListProps?: Omit<FlatListProps<SendbirdOpenChannel>, 'data' | 'renderItem'>;\n refreshing: boolean;\n onRefresh: () => void;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n};\n\n/**\n * Internal context for OpenChannelList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelListContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n }>;\n};\nexport interface OpenChannelListModule {\n Provider: CommonComponent;\n Header: CommonComponent<OpenChannelListProps['Header']>;\n List: CommonComponent<OpenChannelListProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelListProps['StatusError']>;\n}\n\nexport type OpenChannelListFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\nimport type { FlatListProps } from 'react-native';\n\nimport type { UseOpenChannelListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelListProps = {\n Fragment: {\n onPressChannel: OpenChannelListProps['List']['onPressChannel'];\n onPressCreateChannel: () => void;\n renderOpenChannelPreview?: OpenChannelListProps['List']['renderOpenChannelPreview'];\n queryCreator?: UseOpenChannelListOptions['queryCreator'];\n flatListProps?: OpenChannelListProps['List']['flatListProps'];\n };\n Header: {\n onPressHeaderRight: () => void;\n };\n List: {\n onPressChannel: (channel: SendbirdOpenChannel) => void;\n openChannels: SendbirdOpenChannel[];\n renderOpenChannelPreview: (props: {\n channel: SendbirdOpenChannel;\n onPress: () => void;\n }) => React.ReactElement | null;\n onLoadNext: () => Promise<void>;\n flatListProps?: Omit<FlatListProps<SendbirdOpenChannel>, 'data' | 'renderItem'>;\n refreshing: boolean;\n onRefresh: () => void;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n};\n\n/**\n * Internal context for OpenChannelList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelListContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n }>;\n};\nexport interface OpenChannelListModule {\n Provider: CommonComponent;\n Header: CommonComponent<OpenChannelListProps['Header']>;\n List: CommonComponent<OpenChannelListProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelListProps['StatusError']>;\n}\n\nexport type OpenChannelListFragment = React.FC<OpenChannelListProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelModerationProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelModerationProps['Header']['onPressHeaderLeft'];\n onPressMenuOperators: OpenChannelModerationProps['Menu']['onPressMenuOperators'];\n onPressMenuMutedParticipants: OpenChannelModerationProps['Menu']['onPressMenuMutedParticipants'];\n onPressMenuBannedUsers: OpenChannelModerationProps['Menu']['onPressMenuBannedUsers'];\n menuItemsCreator?: OpenChannelModerationProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Menu: {\n onPressMenuOperators: () => void;\n onPressMenuMutedParticipants: () => void;\n onPressMenuBannedUsers: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelModeration\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelModerationContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelModerationModule {\n Provider: CommonComponent<OpenChannelModerationProps['Provider']>;\n Header: CommonComponent<OpenChannelModerationProps['Header']>;\n Menu: CommonComponent<OpenChannelModerationProps['Menu']>;\n}\n\nexport type OpenChannelModerationFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelModerationProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelModerationProps['Header']['onPressHeaderLeft'];\n onPressMenuOperators: OpenChannelModerationProps['Menu']['onPressMenuOperators'];\n onPressMenuMutedParticipants: OpenChannelModerationProps['Menu']['onPressMenuMutedParticipants'];\n onPressMenuBannedUsers: OpenChannelModerationProps['Menu']['onPressMenuBannedUsers'];\n menuItemsCreator?: OpenChannelModerationProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Menu: {\n onPressMenuOperators: () => void;\n onPressMenuMutedParticipants: () => void;\n onPressMenuBannedUsers: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelModeration\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelModerationContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelModerationModule {\n Provider: CommonComponent<OpenChannelModerationProps['Provider']>;\n Header: CommonComponent<OpenChannelModerationProps['Header']>;\n Menu: CommonComponent<OpenChannelModerationProps['Menu']>;\n}\n\nexport type OpenChannelModerationFragment = React.FC<OpenChannelModerationProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelMutedParticipantsProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelMutedParticipantsProps['Header']['onPressHeaderLeft'];\n renderUser?: OpenChannelMutedParticipantsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n onLoadNext: () => void;\n mutedParticipants: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelMutedParticipants\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelMutedParticipantsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelMutedParticipantsModule {\n Provider: CommonComponent<OpenChannelMutedParticipantsProps['Provider']>;\n Header: CommonComponent<OpenChannelMutedParticipantsProps['Header']>;\n List: CommonComponent<OpenChannelMutedParticipantsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelMutedParticipantsProps['StatusError']>;\n}\n\nexport type OpenChannelMutedParticipantsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdRestrictedUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelMutedParticipantsProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelMutedParticipantsProps['Header']['onPressHeaderLeft'];\n renderUser?: OpenChannelMutedParticipantsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdRestrictedUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n List: {\n renderUser: (props: { user: SendbirdRestrictedUser }) => React.ReactElement | null;\n onLoadNext: () => void;\n mutedParticipants: SendbirdRestrictedUser[];\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelMutedParticipants\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelMutedParticipantsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelMutedParticipantsModule {\n Provider: CommonComponent<OpenChannelMutedParticipantsProps['Provider']>;\n Header: CommonComponent<OpenChannelMutedParticipantsProps['Header']>;\n List: CommonComponent<OpenChannelMutedParticipantsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelMutedParticipantsProps['StatusError']>;\n}\n\nexport type OpenChannelMutedParticipantsFragment = React.FC<OpenChannelMutedParticipantsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelOperatorsProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelOperatorsProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: OpenChannelOperatorsProps['Header']['onPressHeaderRight'];\n renderUser?: OpenChannelOperatorsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n operators: SendbirdUser[];\n onLoadNext: () => void;\n renderUser: (props: { user: SendbirdUser }) => React.ReactElement | null;\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelOperators\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelOperatorsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelOperatorsModule {\n Provider: CommonComponent<OpenChannelOperatorsProps['Provider']>;\n Header: CommonComponent<OpenChannelOperatorsProps['Header']>;\n List: CommonComponent<OpenChannelOperatorsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelOperatorsProps['StatusError']>;\n}\n\nexport type OpenChannelOperatorsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelOperatorsProps = {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: OpenChannelOperatorsProps['Header']['onPressHeaderLeft'];\n onPressHeaderRight: OpenChannelOperatorsProps['Header']['onPressHeaderRight'];\n renderUser?: OpenChannelOperatorsProps['List']['renderUser'];\n queryCreator?: UseUserListOptions<SendbirdUser>['queryCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n };\n List: {\n operators: SendbirdUser[];\n onLoadNext: () => void;\n renderUser: (props: { user: SendbirdUser }) => React.ReactElement | null;\n ListEmptyComponent?: React.ReactElement;\n };\n StatusError: {\n onPressRetry: () => void;\n };\n Provider: {\n channel: SendbirdOpenChannel;\n };\n};\n\n/**\n * Internal context for OpenChannelOperators\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelOperatorsContextsType = {\n Fragment: React.Context<{\n headerTitle: string;\n channel: SendbirdOpenChannel;\n }>;\n};\nexport interface OpenChannelOperatorsModule {\n Provider: CommonComponent<OpenChannelOperatorsProps['Provider']>;\n Header: CommonComponent<OpenChannelOperatorsProps['Header']>;\n List: CommonComponent<OpenChannelOperatorsProps['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<OpenChannelOperatorsProps['StatusError']>;\n}\n\nexport type OpenChannelOperatorsFragment = React.FC<OpenChannelOperatorsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelSettingsProps = {\n Fragment: {\n channel: OpenChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: OpenChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuModeration: OpenChannelSettingsProps['Menu']['onPressMenuModeration'];\n onPressMenuParticipants: OpenChannelSettingsProps['Menu']['onPressMenuParticipants'];\n onPressMenuDeleteChannel: OpenChannelSettingsProps['Menu']['onPressMenuDeleteChannel'];\n onNavigateToOpenChannel: OpenChannelSettingsProps['Provider']['onNavigateToOpenChannel'];\n menuItemsCreator?: OpenChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuModeration: () => void;\n onPressMenuParticipants: () => void;\n onPressMenuDeleteChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdOpenChannel;\n onNavigateToOpenChannel: () => void;\n };\n};\n\n/**\n * Internal context for OpenChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelSettingsContextsType = {\n Fragment: React.Context<{\n channel: SendbirdOpenChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n};\nexport interface OpenChannelSettingsModule {\n Provider: CommonComponent<OpenChannelSettingsProps['Provider']>;\n Header: CommonComponent<OpenChannelSettingsProps['Header']>;\n Info: CommonComponent<OpenChannelSettingsProps['Info']>;\n Menu: CommonComponent<OpenChannelSettingsProps['Menu']>;\n}\n\nexport type OpenChannelSettingsFragment =
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdOpenChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport type OpenChannelSettingsProps = {\n Fragment: {\n channel: OpenChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: OpenChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuModeration: OpenChannelSettingsProps['Menu']['onPressMenuModeration'];\n onPressMenuParticipants: OpenChannelSettingsProps['Menu']['onPressMenuParticipants'];\n onPressMenuDeleteChannel: OpenChannelSettingsProps['Menu']['onPressMenuDeleteChannel'];\n onNavigateToOpenChannel: OpenChannelSettingsProps['Provider']['onNavigateToOpenChannel'];\n menuItemsCreator?: OpenChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuModeration: () => void;\n onPressMenuParticipants: () => void;\n onPressMenuDeleteChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdOpenChannel;\n onNavigateToOpenChannel: () => void;\n };\n};\n\n/**\n * Internal context for OpenChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport type OpenChannelSettingsContextsType = {\n Fragment: React.Context<{\n channel: SendbirdOpenChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n};\nexport interface OpenChannelSettingsModule {\n Provider: CommonComponent<OpenChannelSettingsProps['Provider']>;\n Header: CommonComponent<OpenChannelSettingsProps['Header']>;\n Info: CommonComponent<OpenChannelSettingsProps['Info']>;\n Menu: CommonComponent<OpenChannelSettingsProps['Menu']>;\n}\n\nexport type OpenChannelSettingsFragment = React.FC<OpenChannelSettingsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdParticipant, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type {
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdOpenChannel, SendbirdParticipant, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type { UserListProps } from '../userList/types';\n\nexport interface OpenChannelParticipantsProps {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: () => void;\n renderUser?: UserListProps<SendbirdParticipant>['List']['renderUser'];\n // NOTE: SDK does not migrate the response type of query to Participant from User yet due to backward compat.\n queryCreator?: UseUserListOptions<SendbirdUser | SendbirdParticipant>['queryCreator'];\n sortComparator?: UseUserListOptions<SendbirdUser | SendbirdParticipant>['sortComparator'];\n };\n}\nexport type OpenChannelParticipantsFragment = React.FC<OpenChannelParticipantsProps['Fragment']>;\n\nexport interface OpenChannelRegisterOperatorProps {\n Fragment: {\n channel: SendbirdOpenChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (channel: SendbirdOpenChannel) => void;\n renderUser?: UserListProps<SendbirdParticipant>['List']['renderUser'];\n // NOTE: SDK does not migrate the response type of query to Participant from User yet due to backward compat.\n queryCreator?: UseUserListOptions<SendbirdUser | SendbirdParticipant>['queryCreator'];\n sortComparator?: UseUserListOptions<SendbirdUser | SendbirdParticipant>['sortComparator'];\n };\n}\nexport type OpenChannelRegisterOperatorFragment = React.FC<OpenChannelRegisterOperatorProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { MessageFilter } from '@sendbird/chat/groupChannel';
|
|
2
3
|
import { ReplyType } from '@sendbird/chat/message';
|
|
3
4
|
import { Box } from '@sendbird/uikit-react-native-foundation';
|
|
4
5
|
import { useGroupChannelMessages } from '@sendbird/uikit-tools';
|
|
@@ -30,9 +31,10 @@ const createGroupChannelFragment = initModule => {
|
|
|
30
31
|
onBeforeUpdateFileMessage = PASS,
|
|
31
32
|
channel,
|
|
32
33
|
keyboardAvoidOffset,
|
|
33
|
-
collectionCreator,
|
|
34
34
|
sortComparator = messageComparator,
|
|
35
|
-
flatListProps
|
|
35
|
+
flatListProps,
|
|
36
|
+
messageListQueryParams,
|
|
37
|
+
collectionCreator
|
|
36
38
|
} = _ref;
|
|
37
39
|
const {
|
|
38
40
|
playerService,
|
|
@@ -86,7 +88,7 @@ const createGroupChannelFragment = initModule => {
|
|
|
86
88
|
},
|
|
87
89
|
onChannelDeleted,
|
|
88
90
|
onCurrentUserBanned: onChannelDeleted,
|
|
89
|
-
collectionCreator,
|
|
91
|
+
collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),
|
|
90
92
|
sortComparator,
|
|
91
93
|
markAsRead: confirmAndMarkAsRead,
|
|
92
94
|
replyType,
|
|
@@ -226,5 +228,18 @@ function shouldRenderInput(channel) {
|
|
|
226
228
|
}
|
|
227
229
|
return true;
|
|
228
230
|
}
|
|
231
|
+
function getCollectionCreator(channel, messageListQueryParams, deprecatedCreatorProp) {
|
|
232
|
+
if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;
|
|
233
|
+
return defaultParams => {
|
|
234
|
+
const params = {
|
|
235
|
+
...defaultParams,
|
|
236
|
+
...messageListQueryParams
|
|
237
|
+
};
|
|
238
|
+
return channel.createMessageCollection({
|
|
239
|
+
...params,
|
|
240
|
+
filter: new MessageFilter(params)
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
}
|
|
229
244
|
export default createGroupChannelFragment;
|
|
230
245
|
//# sourceMappingURL=createGroupChannelFragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","ReplyType","Box","useGroupChannelMessages","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","collectionCreator","sortComparator","flatListProps","playerService","recorderService","sdk","currentUser","sbOptions","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","markAsRead","startingPoint","onBlurFragment","Promise","allSettled","reset","_onPressHeaderLeft","_onPressHeaderRight","_onPressMediaMessage","message","uri","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n NOOP,\n PASS,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdUserMessage,\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 { usePlatformService, useSendbirdChat } from '../hooks/useContext';\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 onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions } = useSendbirdChat();\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') return ReplyType.NONE;\n else return ReplyType.ONLY_REPLY_TO_CHANNEL;\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,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = () => {\n return Promise.allSettled([playerService.reset(), recorderService.reset()]);\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\n useEffect(() => {\n return () => {\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 message = await sendFileMessage(processedParams, onPending);\n onSent(message);\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 >\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\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","MessageFilter","ReplyType","Box","useGroupChannelMessages","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","sdk","currentUser","sbOptions","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","Promise","allSettled","reset","_onPressHeaderLeft","_onPressHeaderRight","_onPressMediaMessage","message","uri","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","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 } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdUserMessage } 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 { usePlatformService, useSendbirdChat } from '../hooks/useContext';\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 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 } = useSendbirdChat();\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') return ReplyType.NONE;\n else return ReplyType.ONLY_REPLY_TO_CHANNEL;\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 = () => {\n return Promise.allSettled([playerService.reset(), recorderService.reset()]);\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\n useEffect(() => {\n return () => {\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 message = await sendFileMessage(processedParams, onPending);\n onSent(message);\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 >\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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"}
|