@sendbird/uikit-react-native 3.4.0 → 3.4.1
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/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 +25 -11
- 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/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 +26 -12
- 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/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 +27 -9
- package/src/types.ts +2 -2
- package/src/version.ts +1 -1
|
@@ -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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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { GroupChannelFilter } from '@sendbird/chat/groupChannel';
|
|
3
|
+
import { useGroupChannelList } from '@sendbird/uikit-tools';
|
|
4
|
+
import { PASS, confirmAndMarkAsDelivered, useAppState, useFreshCallback } from '@sendbird/uikit-utils';
|
|
4
5
|
import StatusComposition from '../components/StatusComposition';
|
|
5
6
|
import GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';
|
|
6
7
|
import createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';
|
|
@@ -11,25 +12,25 @@ const createGroupChannelListFragment = initModule => {
|
|
|
11
12
|
let {
|
|
12
13
|
onPressChannel,
|
|
13
14
|
onPressCreateChannel,
|
|
14
|
-
collectionCreator,
|
|
15
15
|
renderGroupChannelPreview,
|
|
16
16
|
skipTypeSelection = false,
|
|
17
17
|
flatListProps = {},
|
|
18
|
-
menuItemCreator = PASS
|
|
18
|
+
menuItemCreator = PASS,
|
|
19
|
+
channelListQueryParams,
|
|
20
|
+
collectionCreator
|
|
19
21
|
} = _ref;
|
|
20
22
|
const {
|
|
21
23
|
sdk,
|
|
22
|
-
currentUser,
|
|
23
24
|
sbOptions,
|
|
24
25
|
markAsDeliveredWithChannel
|
|
25
26
|
} = useSendbirdChat();
|
|
26
27
|
const {
|
|
27
28
|
groupChannels,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} = useGroupChannelList(sdk,
|
|
31
|
-
collectionCreator,
|
|
32
|
-
|
|
29
|
+
loadMore,
|
|
30
|
+
initialized
|
|
31
|
+
} = useGroupChannelList(sdk, {
|
|
32
|
+
collectionCreator: getCollectionCreator(sdk, channelListQueryParams, collectionCreator),
|
|
33
|
+
markAsDelivered: confirmAndMarkAsDelivered
|
|
33
34
|
});
|
|
34
35
|
if (sbOptions.appInfo.deliveryReceiptEnabled) {
|
|
35
36
|
useAppState('change', status => {
|
|
@@ -42,14 +43,14 @@ const createGroupChannelListFragment = initModule => {
|
|
|
42
43
|
});
|
|
43
44
|
const isChannelTypeAvailable = sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;
|
|
44
45
|
return /*#__PURE__*/React.createElement(GroupChannelListModule.Provider, null, /*#__PURE__*/React.createElement(GroupChannelListModule.Header, null), /*#__PURE__*/React.createElement(StatusComposition, {
|
|
45
|
-
loading:
|
|
46
|
+
loading: !initialized,
|
|
46
47
|
LoadingComponent: /*#__PURE__*/React.createElement(GroupChannelListModule.StatusLoading, null)
|
|
47
48
|
}, /*#__PURE__*/React.createElement(GroupChannelListModule.List, {
|
|
48
49
|
onPressChannel: onPressChannel,
|
|
49
50
|
menuItemCreator: menuItemCreator,
|
|
50
51
|
renderGroupChannelPreview: _renderGroupChannelPreview,
|
|
51
52
|
groupChannels: groupChannels,
|
|
52
|
-
onLoadNext:
|
|
53
|
+
onLoadNext: loadMore,
|
|
53
54
|
flatListProps: {
|
|
54
55
|
ListEmptyComponent: /*#__PURE__*/React.createElement(GroupChannelListModule.StatusEmpty, null),
|
|
55
56
|
contentContainerStyle: {
|
|
@@ -63,5 +64,18 @@ const createGroupChannelListFragment = initModule => {
|
|
|
63
64
|
}));
|
|
64
65
|
};
|
|
65
66
|
};
|
|
67
|
+
function getCollectionCreator(sdk, channelListQueryParams, deprecatedCreatorProp) {
|
|
68
|
+
if (!channelListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;
|
|
69
|
+
return defaultParams => {
|
|
70
|
+
const params = {
|
|
71
|
+
...defaultParams,
|
|
72
|
+
...channelListQueryParams
|
|
73
|
+
};
|
|
74
|
+
return sdk.groupChannel.createGroupChannelCollection({
|
|
75
|
+
...params,
|
|
76
|
+
filter: new GroupChannelFilter(params)
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
}
|
|
66
80
|
export default createGroupChannelListFragment;
|
|
67
81
|
//# sourceMappingURL=createGroupChannelListFragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useGroupChannelList","PASS","useAppState","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","_ref","onPressChannel","onPressCreateChannel","
|
|
1
|
+
{"version":3,"names":["React","GroupChannelFilter","useGroupChannelList","PASS","confirmAndMarkAsDelivered","useAppState","useFreshCallback","StatusComposition","GroupChannelPreviewContainer","createGroupChannelListModule","useSendbirdChat","createGroupChannelListFragment","initModule","GroupChannelListModule","_ref","onPressChannel","onPressCreateChannel","renderGroupChannelPreview","skipTypeSelection","flatListProps","menuItemCreator","channelListQueryParams","collectionCreator","sdk","sbOptions","markAsDeliveredWithChannel","groupChannels","loadMore","initialized","getCollectionCreator","markAsDelivered","appInfo","deliveryReceiptEnabled","status","forEach","_renderGroupChannelPreview","props","createElement","isChannelTypeAvailable","broadcastChannelEnabled","superGroupChannelEnabled","Provider","Header","loading","LoadingComponent","StatusLoading","List","onLoadNext","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","TypeSelector","onSelectType","deprecatedCreatorProp","defaultParams","params","groupChannel","createGroupChannelCollection","filter"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React from 'react';\n\nimport { GroupChannelCollection, GroupChannelFilter } from '@sendbird/chat/groupChannel';\nimport { useGroupChannelList } from '@sendbird/uikit-tools';\nimport { PASS, SendbirdChatSDK, confirmAndMarkAsDelivered, useAppState, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n onPressChannel,\n onPressCreateChannel,\n renderGroupChannelPreview,\n skipTypeSelection = false,\n flatListProps = {},\n menuItemCreator = PASS,\n channelListQueryParams,\n collectionCreator,\n }) => {\n const { sdk, sbOptions, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, loadMore, initialized } = useGroupChannelList(sdk, {\n collectionCreator: getCollectionCreator(sdk, channelListQueryParams, collectionCreator),\n markAsDelivered: confirmAndMarkAsDelivered,\n });\n\n if (sbOptions.appInfo.deliveryReceiptEnabled) {\n useAppState('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (props) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(props);\n return <GroupChannelPreviewContainer {...props} />;\n },\n );\n\n const isChannelTypeAvailable =\n sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={!initialized} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n onPressChannel={onPressChannel}\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={loadMore}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n skipTypeSelection={isChannelTypeAvailable ? skipTypeSelection : true}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nfunction getCollectionCreator(\n sdk: SendbirdChatSDK,\n channelListQueryParams?: GroupChannelListProps['Fragment']['channelListQueryParams'],\n deprecatedCreatorProp?: () => GroupChannelCollection,\n) {\n if (!channelListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelListProps['Fragment']['channelListQueryParams']) => {\n const params = { ...defaultParams, ...channelListQueryParams };\n return sdk.groupChannel.createGroupChannelCollection({\n ...params,\n filter: new GroupChannelFilter(params),\n });\n };\n}\n\nexport default createGroupChannelListFragment;\n"],"mappings":"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"}
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypingIndicatorType"],"sources":["types.ts"],"sourcesContent":["import type { ErrorInfo, ReactNode } from 'react';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface LocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> =
|
|
1
|
+
{"version":3,"names":["TypingIndicatorType"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface LocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":"AA+BA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA"}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.4.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.4.1';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StyleProp, TextStyle } from 'react-native';
|
|
3
3
|
import { SendbirdBaseChannel, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdFileMessageUpdateParams, SendbirdMember, SendbirdUserMessage, SendbirdUserMessageCreateParams, SendbirdUserMessageUpdateParams } from '@sendbird/uikit-utils';
|
|
4
|
-
import type { MentionedUser, Range } from '../../types';
|
|
4
|
+
import type { CommonComponent, MentionedUser, Range } from '../../types';
|
|
5
5
|
import type { AttachmentsButtonProps } from './AttachmentsButton';
|
|
6
6
|
import type { MessageToReplyPreviewProps } from './MessageToReplyPreview';
|
|
7
7
|
import { VoiceMessageInputProps } from './VoiceMessageInput';
|
|
@@ -30,7 +30,7 @@ export type ChannelInputProps = {
|
|
|
30
30
|
setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;
|
|
31
31
|
messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;
|
|
32
32
|
setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;
|
|
33
|
-
SuggestedMentionList?:
|
|
33
|
+
SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;
|
|
34
34
|
AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;
|
|
35
35
|
MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;
|
|
36
36
|
VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;
|