stream-chat-react-native-core 5.8.1-beta.2 → 5.8.1-beta.3

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.
Files changed (21) hide show
  1. package/lib/commonjs/components/ChannelList/ChannelList.js +2 -4
  2. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  3. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -5
  4. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  5. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +8 -11
  6. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  7. package/lib/commonjs/version.json +1 -1
  8. package/lib/module/components/ChannelList/ChannelList.js +2 -4
  9. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  10. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -5
  11. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  12. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +8 -11
  13. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  14. package/lib/module/version.json +1 -1
  15. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessage.d.ts +2 -3
  16. package/lib/typescript/components/ChannelList/hooks/listeners/useNewMessageNotification.d.ts +2 -3
  17. package/package.json +1 -1
  18. package/src/components/ChannelList/ChannelList.tsx +0 -2
  19. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +2 -14
  20. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +2 -8
  21. package/src/version.json +1 -1
@@ -139,12 +139,10 @@ var ChannelList = function ChannelList(props) {
139
139
  setChannels: setChannels
140
140
  });
141
141
  (0, _useNewMessage.useNewMessage)({
142
- filters: filters,
143
142
  lockChannelOrder: lockChannelOrder,
144
143
  setChannels: setChannels
145
144
  });
146
145
  (0, _useNewMessageNotification.useNewMessageNotification)({
147
- filters: filters,
148
146
  onMessageNew: onMessageNew,
149
147
  setChannels: setChannels
150
148
  });
@@ -211,14 +209,14 @@ var ChannelList = function ChannelList(props) {
211
209
  __self: _this,
212
210
  __source: {
213
211
  fileName: _jsxFileName,
214
- lineNumber: 372,
212
+ lineNumber: 370,
215
213
  columnNumber: 5
216
214
  }
217
215
  }, _react["default"].createElement(List, {
218
216
  __self: _this,
219
217
  __source: {
220
218
  fileName: _jsxFileName,
221
- lineNumber: 373,
219
+ lineNumber: 371,
222
220
  columnNumber: 7
223
221
  }
224
222
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_FILTERS","DEFAULT_OPTIONS","DEFAULT_SORT","ChannelList","props","additionalFlatListProps","EmptyStateIndicator","EmptyStateIndicatorDefault","FooterLoadingIndicator","ChannelListFooterLoadingIndicator","filters","HeaderErrorIndicator","ChannelListHeaderErrorIndicator","HeaderNetworkDownIndicator","ChannelListHeaderNetworkDownIndicator","List","ChannelListMessenger","ListHeaderComponent","LoadingErrorIndicator","LoadingErrorIndicatorDefault","LoadingIndicator","ChannelListLoadingIndicator","loadMoreThreshold","lockChannelOrder","maxUnreadCount","numberOfSkeletons","onAddedToChannel","onChannelDeleted","onChannelHidden","onChannelVisible","onChannelTruncated","onChannelUpdated","onMessageNew","onRemovedFromChannel","onSelect","options","Preview","ChannelPreviewMessenger","PreviewAvatar","PreviewMessage","PreviewStatus","PreviewTitle","PreviewUnreadCount","setFlatListRef","Skeleton","SkeletonDefault","sort","useState","forceUpdate","setForceUpdate","useChatContext","enableOfflineSupport","usePaginatedChannels","channels","error","hasNextPage","loadingChannels","loadingNextPage","loadNextPage","refreshing","refreshList","reloadList","setChannels","staticChannelsActive","useAddedToChannelNotification","useChannelDeleted","useChannelHidden","useChannelTruncated","useChannelUpdated","useChannelVisible","useNewMessage","useNewMessageNotification","useRemovedFromChannelNotification","useUserPresence","channelIdsStr","reduce","acc","channel","cid","useEffect","upsertCidsForQuery","cids","map","c","channelsContext","useCreateChannelsContext","ref"],"sources":["ChannelList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort, Event } from 'stream-chat';\n\nimport { ChannelListFooterLoadingIndicator } from './ChannelListFooterLoadingIndicator';\nimport { ChannelListHeaderErrorIndicator } from './ChannelListHeaderErrorIndicator';\nimport { ChannelListHeaderNetworkDownIndicator } from './ChannelListHeaderNetworkDownIndicator';\nimport { ChannelListLoadingIndicator } from './ChannelListLoadingIndicator';\nimport { ChannelListMessenger, ChannelListMessengerProps } from './ChannelListMessenger';\nimport { useAddedToChannelNotification } from './hooks/listeners/useAddedToChannelNotification';\nimport { useChannelDeleted } from './hooks/listeners/useChannelDeleted';\nimport { useChannelHidden } from './hooks/listeners/useChannelHidden';\nimport { useChannelTruncated } from './hooks/listeners/useChannelTruncated';\nimport { useChannelUpdated } from './hooks/listeners/useChannelUpdated';\nimport { useChannelVisible } from './hooks/listeners/useChannelVisible';\nimport { useNewMessage } from './hooks/listeners/useNewMessage';\nimport { useNewMessageNotification } from './hooks/listeners/useNewMessageNotification';\nimport { useRemovedFromChannelNotification } from './hooks/listeners/useRemovedFromChannelNotification';\nimport { useUserPresence } from './hooks/listeners/useUserPresence';\nimport { useCreateChannelsContext } from './hooks/useCreateChannelsContext';\nimport { usePaginatedChannels } from './hooks/usePaginatedChannels';\nimport { Skeleton as SkeletonDefault } from './Skeleton';\n\nimport {\n ChannelsContextValue,\n ChannelsProvider,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { upsertCidsForQuery } from '../../store/apis/upsertCidsForQuery';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreviewMessenger } from '../ChannelPreview/ChannelPreviewMessenger';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport { LoadingErrorIndicator as LoadingErrorIndicatorDefault } from '../Indicators/LoadingErrorIndicator';\n\nexport type ChannelListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'additionalFlatListProps'\n | 'EmptyStateIndicator'\n | 'FooterLoadingIndicator'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'LoadingErrorIndicator'\n | 'LoadingIndicator'\n | 'Preview'\n | 'setFlatListRef'\n | 'ListHeaderComponent'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n | 'loadMoreThreshold'\n | 'Skeleton'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n >\n> & {\n /**\n * Object containing channel query filters\n *\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available filter fields\n *\n * @overrideType object\n * */\n filters?: ChannelFilters<StreamChatGenerics>;\n /**\n * Custom UI component to display the list of channels\n *\n * Default: [ChannelListMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-list-messenger/)\n */\n List?: React.ComponentType<ChannelListMessengerProps<StreamChatGenerics>>;\n /**\n * If set to true, channels won't dynamically sort by most recent message, defaults to false\n */\n lockChannelOrder?: boolean;\n /**\n * Function that overrides default behavior when a user gets added to a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event Object](https://getstream.io/chat/docs/event_object) corresponding to `notification.added_to_channel` event\n *\n * @overrideType Function\n * */\n onAddedToChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets deleted. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.deleted` event\n *\n * @overrideType Function\n * */\n onChannelDeleted?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets hidden. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.hidden` event\n *\n * @overrideType Function\n * */\n onChannelHidden?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function to customize behavior when a channel gets truncated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.truncated` event\n *\n * @overrideType Function\n * */\n onChannelTruncated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets updated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.updated` event\n *\n * @overrideType Function\n * */\n onChannelUpdated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets visible. In absence of this prop, the channel will be added to the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.visible` event\n *\n * @overrideType Function\n * */\n onChannelVisible?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Override the default listener/handler for event `notification.message_new`\n * This event is received on channel, which is not being watched.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.message_new` event\n *\n * @overrideType Function\n * */\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a user gets removed from a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.removed_from_channel` event\n *\n * @overrideType Function\n * */\n onRemovedFromChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Object containing channel query options\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available option fields\n * */\n options?: ChannelOptions;\n /**\n * Object containing channel sort parameters\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available sorting fields\n * */\n sort?: ChannelSort<StreamChatGenerics>;\n};\n\nconst DEFAULT_FILTERS = {};\nconst DEFAULT_OPTIONS = {};\nconst DEFAULT_SORT = {};\n\n/**\n * This component fetches a list of channels, allowing you to select the channel you want to open.\n * The ChannelList doesn't provide any UI for the underlying React Native FlatList. UI is determined by the `List` component which is\n * provided to the ChannelList component as a prop. By default, the ChannelListMessenger component is used as the list UI.\n *\n * @example ./ChannelList.md\n */\nexport const ChannelList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps = {},\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n FooterLoadingIndicator = ChannelListFooterLoadingIndicator,\n filters = DEFAULT_FILTERS,\n HeaderErrorIndicator = ChannelListHeaderErrorIndicator,\n HeaderNetworkDownIndicator = ChannelListHeaderNetworkDownIndicator,\n List = ChannelListMessenger,\n ListHeaderComponent,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = ChannelListLoadingIndicator,\n // https://stackoverflow.com/a/60666252/10826415\n loadMoreThreshold = 0.1,\n lockChannelOrder = false,\n maxUnreadCount = 255,\n numberOfSkeletons = 6,\n onAddedToChannel,\n onChannelDeleted,\n onChannelHidden,\n onChannelVisible,\n onChannelTruncated,\n onChannelUpdated,\n onMessageNew,\n onRemovedFromChannel,\n onSelect,\n options = DEFAULT_OPTIONS,\n Preview = ChannelPreviewMessenger,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n setFlatListRef,\n Skeleton = SkeletonDefault,\n sort = DEFAULT_SORT,\n } = props;\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const {\n channels,\n error,\n hasNextPage,\n loadingChannels,\n loadingNextPage,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n } = usePaginatedChannels<StreamChatGenerics>({\n enableOfflineSupport,\n filters,\n options,\n setForceUpdate,\n sort,\n });\n\n // Setup event listeners\n useAddedToChannelNotification({\n onAddedToChannel,\n setChannels,\n });\n\n useChannelDeleted({\n onChannelDeleted,\n setChannels,\n });\n\n useChannelHidden({\n onChannelHidden,\n setChannels,\n });\n\n useChannelTruncated({\n onChannelTruncated,\n refreshList,\n setChannels,\n setForceUpdate,\n });\n\n useChannelUpdated({\n onChannelUpdated,\n setChannels,\n });\n\n useChannelVisible({\n onChannelVisible,\n setChannels,\n });\n\n useNewMessage({\n filters,\n lockChannelOrder,\n setChannels,\n });\n\n useNewMessageNotification({\n filters,\n onMessageNew,\n setChannels,\n });\n\n useRemovedFromChannelNotification({\n onRemovedFromChannel,\n setChannels,\n });\n\n useUserPresence({\n setChannels,\n });\n\n const channelIdsStr = channels?.reduce((acc, channel) => `${acc}${channel.cid}`, '');\n\n useEffect(() => {\n if (channels === null || staticChannelsActive || !enableOfflineSupport) {\n return;\n }\n\n upsertCidsForQuery({\n cids: channels.map((c) => c.cid),\n filters,\n sort,\n });\n }, [channelIdsStr, staticChannelsActive]);\n\n const channelsContext = useCreateChannelsContext({\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n hasNextPage,\n HeaderErrorIndicator,\n HeaderNetworkDownIndicator,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n maxUnreadCount,\n numberOfSkeletons,\n onSelect,\n Preview,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => {\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n },\n Skeleton,\n });\n\n return (\n <ChannelsProvider value={channelsContext}>\n <List<StreamChatGenerics> />\n </ChannelsProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEFAULT_FILTERS","DEFAULT_OPTIONS","DEFAULT_SORT","ChannelList","props","additionalFlatListProps","EmptyStateIndicator","EmptyStateIndicatorDefault","FooterLoadingIndicator","ChannelListFooterLoadingIndicator","filters","HeaderErrorIndicator","ChannelListHeaderErrorIndicator","HeaderNetworkDownIndicator","ChannelListHeaderNetworkDownIndicator","List","ChannelListMessenger","ListHeaderComponent","LoadingErrorIndicator","LoadingErrorIndicatorDefault","LoadingIndicator","ChannelListLoadingIndicator","loadMoreThreshold","lockChannelOrder","maxUnreadCount","numberOfSkeletons","onAddedToChannel","onChannelDeleted","onChannelHidden","onChannelVisible","onChannelTruncated","onChannelUpdated","onMessageNew","onRemovedFromChannel","onSelect","options","Preview","ChannelPreviewMessenger","PreviewAvatar","PreviewMessage","PreviewStatus","PreviewTitle","PreviewUnreadCount","setFlatListRef","Skeleton","SkeletonDefault","sort","useState","forceUpdate","setForceUpdate","useChatContext","enableOfflineSupport","usePaginatedChannels","channels","error","hasNextPage","loadingChannels","loadingNextPage","loadNextPage","refreshing","refreshList","reloadList","setChannels","staticChannelsActive","useAddedToChannelNotification","useChannelDeleted","useChannelHidden","useChannelTruncated","useChannelUpdated","useChannelVisible","useNewMessage","useNewMessageNotification","useRemovedFromChannelNotification","useUserPresence","channelIdsStr","reduce","acc","channel","cid","useEffect","upsertCidsForQuery","cids","map","c","channelsContext","useCreateChannelsContext","ref"],"sources":["ChannelList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort, Event } from 'stream-chat';\n\nimport { ChannelListFooterLoadingIndicator } from './ChannelListFooterLoadingIndicator';\nimport { ChannelListHeaderErrorIndicator } from './ChannelListHeaderErrorIndicator';\nimport { ChannelListHeaderNetworkDownIndicator } from './ChannelListHeaderNetworkDownIndicator';\nimport { ChannelListLoadingIndicator } from './ChannelListLoadingIndicator';\nimport { ChannelListMessenger, ChannelListMessengerProps } from './ChannelListMessenger';\nimport { useAddedToChannelNotification } from './hooks/listeners/useAddedToChannelNotification';\nimport { useChannelDeleted } from './hooks/listeners/useChannelDeleted';\nimport { useChannelHidden } from './hooks/listeners/useChannelHidden';\nimport { useChannelTruncated } from './hooks/listeners/useChannelTruncated';\nimport { useChannelUpdated } from './hooks/listeners/useChannelUpdated';\nimport { useChannelVisible } from './hooks/listeners/useChannelVisible';\nimport { useNewMessage } from './hooks/listeners/useNewMessage';\nimport { useNewMessageNotification } from './hooks/listeners/useNewMessageNotification';\nimport { useRemovedFromChannelNotification } from './hooks/listeners/useRemovedFromChannelNotification';\nimport { useUserPresence } from './hooks/listeners/useUserPresence';\nimport { useCreateChannelsContext } from './hooks/useCreateChannelsContext';\nimport { usePaginatedChannels } from './hooks/usePaginatedChannels';\nimport { Skeleton as SkeletonDefault } from './Skeleton';\n\nimport {\n ChannelsContextValue,\n ChannelsProvider,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { upsertCidsForQuery } from '../../store/apis/upsertCidsForQuery';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreviewMessenger } from '../ChannelPreview/ChannelPreviewMessenger';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport { LoadingErrorIndicator as LoadingErrorIndicatorDefault } from '../Indicators/LoadingErrorIndicator';\n\nexport type ChannelListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'additionalFlatListProps'\n | 'EmptyStateIndicator'\n | 'FooterLoadingIndicator'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'LoadingErrorIndicator'\n | 'LoadingIndicator'\n | 'Preview'\n | 'setFlatListRef'\n | 'ListHeaderComponent'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n | 'loadMoreThreshold'\n | 'Skeleton'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n >\n> & {\n /**\n * Object containing channel query filters\n *\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available filter fields\n *\n * @overrideType object\n * */\n filters?: ChannelFilters<StreamChatGenerics>;\n /**\n * Custom UI component to display the list of channels\n *\n * Default: [ChannelListMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-list-messenger/)\n */\n List?: React.ComponentType<ChannelListMessengerProps<StreamChatGenerics>>;\n /**\n * If set to true, channels won't dynamically sort by most recent message, defaults to false\n */\n lockChannelOrder?: boolean;\n /**\n * Function that overrides default behavior when a user gets added to a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event Object](https://getstream.io/chat/docs/event_object) corresponding to `notification.added_to_channel` event\n *\n * @overrideType Function\n * */\n onAddedToChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets deleted. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.deleted` event\n *\n * @overrideType Function\n * */\n onChannelDeleted?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets hidden. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.hidden` event\n *\n * @overrideType Function\n * */\n onChannelHidden?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function to customize behavior when a channel gets truncated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.truncated` event\n *\n * @overrideType Function\n * */\n onChannelTruncated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets updated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.updated` event\n *\n * @overrideType Function\n * */\n onChannelUpdated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets visible. In absence of this prop, the channel will be added to the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.visible` event\n *\n * @overrideType Function\n * */\n onChannelVisible?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Override the default listener/handler for event `notification.message_new`\n * This event is received on channel, which is not being watched.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.message_new` event\n *\n * @overrideType Function\n * */\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a user gets removed from a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.removed_from_channel` event\n *\n * @overrideType Function\n * */\n onRemovedFromChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Object containing channel query options\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available option fields\n * */\n options?: ChannelOptions;\n /**\n * Object containing channel sort parameters\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available sorting fields\n * */\n sort?: ChannelSort<StreamChatGenerics>;\n};\n\nconst DEFAULT_FILTERS = {};\nconst DEFAULT_OPTIONS = {};\nconst DEFAULT_SORT = {};\n\n/**\n * This component fetches a list of channels, allowing you to select the channel you want to open.\n * The ChannelList doesn't provide any UI for the underlying React Native FlatList. UI is determined by the `List` component which is\n * provided to the ChannelList component as a prop. By default, the ChannelListMessenger component is used as the list UI.\n *\n * @example ./ChannelList.md\n */\nexport const ChannelList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps = {},\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n FooterLoadingIndicator = ChannelListFooterLoadingIndicator,\n filters = DEFAULT_FILTERS,\n HeaderErrorIndicator = ChannelListHeaderErrorIndicator,\n HeaderNetworkDownIndicator = ChannelListHeaderNetworkDownIndicator,\n List = ChannelListMessenger,\n ListHeaderComponent,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = ChannelListLoadingIndicator,\n // https://stackoverflow.com/a/60666252/10826415\n loadMoreThreshold = 0.1,\n lockChannelOrder = false,\n maxUnreadCount = 255,\n numberOfSkeletons = 6,\n onAddedToChannel,\n onChannelDeleted,\n onChannelHidden,\n onChannelVisible,\n onChannelTruncated,\n onChannelUpdated,\n onMessageNew,\n onRemovedFromChannel,\n onSelect,\n options = DEFAULT_OPTIONS,\n Preview = ChannelPreviewMessenger,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n setFlatListRef,\n Skeleton = SkeletonDefault,\n sort = DEFAULT_SORT,\n } = props;\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const {\n channels,\n error,\n hasNextPage,\n loadingChannels,\n loadingNextPage,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n } = usePaginatedChannels<StreamChatGenerics>({\n enableOfflineSupport,\n filters,\n options,\n setForceUpdate,\n sort,\n });\n\n // Setup event listeners\n useAddedToChannelNotification({\n onAddedToChannel,\n setChannels,\n });\n\n useChannelDeleted({\n onChannelDeleted,\n setChannels,\n });\n\n useChannelHidden({\n onChannelHidden,\n setChannels,\n });\n\n useChannelTruncated({\n onChannelTruncated,\n refreshList,\n setChannels,\n setForceUpdate,\n });\n\n useChannelUpdated({\n onChannelUpdated,\n setChannels,\n });\n\n useChannelVisible({\n onChannelVisible,\n setChannels,\n });\n\n useNewMessage({\n lockChannelOrder,\n setChannels,\n });\n\n useNewMessageNotification({\n onMessageNew,\n setChannels,\n });\n\n useRemovedFromChannelNotification({\n onRemovedFromChannel,\n setChannels,\n });\n\n useUserPresence({\n setChannels,\n });\n\n const channelIdsStr = channels?.reduce((acc, channel) => `${acc}${channel.cid}`, '');\n\n useEffect(() => {\n if (channels === null || staticChannelsActive || !enableOfflineSupport) {\n return;\n }\n\n upsertCidsForQuery({\n cids: channels.map((c) => c.cid),\n filters,\n sort,\n });\n }, [channelIdsStr, staticChannelsActive]);\n\n const channelsContext = useCreateChannelsContext({\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n hasNextPage,\n HeaderErrorIndicator,\n HeaderNetworkDownIndicator,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n maxUnreadCount,\n numberOfSkeletons,\n onSelect,\n Preview,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => {\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n },\n Skeleton,\n });\n\n return (\n <ChannelsProvider value={channelsContext}>\n <List<StreamChatGenerics> />\n </ChannelsProvider>\n );\n};\n"],"mappings":"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"}
@@ -5,12 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.useNewMessage = void 0;
6
6
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
7
  var _react = require("react");
8
- var _lodash = require("lodash");
9
8
  var _ChatContext = require("../../../../contexts/chatContext/ChatContext");
10
9
  var _utils = require("../../utils");
11
10
  var useNewMessage = function useNewMessage(_ref) {
12
- var filters = _ref.filters,
13
- lockChannelOrder = _ref.lockChannelOrder,
11
+ var lockChannelOrder = _ref.lockChannelOrder,
14
12
  setChannels = _ref.setChannels;
15
13
  var _useChatContext = (0, _ChatContext.useChatContext)(),
16
14
  client = _useChatContext.client;
@@ -18,8 +16,7 @@ var useNewMessage = function useNewMessage(_ref) {
18
16
  var handleEvent = function handleEvent(event) {
19
17
  setChannels(function (channels) {
20
18
  if (!channels) return channels;
21
- var areFiltersTypeMatchingToEventChannelType = (0, _lodash.isEmpty)(filters) || event.channel_type === (filters == null ? void 0 : filters.type);
22
- if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id && areFiltersTypeMatchingToEventChannelType) {
19
+ if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {
23
20
  var targetChannelIndex = channels.findIndex(function (c) {
24
21
  return c.cid === event.cid;
25
22
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useNewMessage","filters","lockChannelOrder","setChannels","useChatContext","client","useEffect","handleEvent","event","channels","areFiltersTypeMatchingToEventChannelType","isEmpty","channel_type","type","cid","channel_id","targetChannelIndex","findIndex","c","moveChannelUp","channel","initialized","listener","on","unsubscribe"],"sources":["useNewMessage.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { isEmpty } from 'lodash';\nimport type { Channel, ChannelFilters, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n filters?: ChannelFilters<StreamChatGenerics>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n filters,\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!channels) return channels;\n\n const areFiltersTypeMatchingToEventChannelType =\n isEmpty(filters) || event.channel_type === filters?.type;\n\n if (\n !lockChannelOrder &&\n event.cid &&\n event.channel_type &&\n event.channel_id &&\n areFiltersTypeMatchingToEventChannelType\n ) {\n const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);\n\n if (targetChannelIndex >= 0) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n // If channel doesn't exist in existing list, check in activeChannels as well.\n // It may happen that channel was hidden using channel.hide(). In that case\n // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.\n const channel = client.channel(event.channel_type, event.channel_id);\n\n if (channel.initialized) {\n return [channel, ...channels];\n }\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;AAAA;AAEA;AAGA;AAGA;AASO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,OAMY;EAAA,IAHpCC,OAAO,QAAPA,OAAO;IACPC,gBAAgB,QAAhBA,gBAAgB;IAChBC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAgC,EAAK;MACxDL,WAAW,CAAC,UAACM,QAAQ,EAAK;QACxB,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;QAE9B,IAAMC,wCAAwC,GAC5C,IAAAC,eAAO,EAACV,OAAO,CAAC,IAAIO,KAAK,CAACI,YAAY,MAAKX,OAAO,oBAAPA,OAAO,CAAEY,IAAI;QAE1D,IACE,CAACX,gBAAgB,IACjBM,KAAK,CAACM,GAAG,IACTN,KAAK,CAACI,YAAY,IAClBJ,KAAK,CAACO,UAAU,IAChBL,wCAAwC,EACxC;UACA,IAAMM,kBAAkB,GAAGP,QAAQ,CAACQ,SAAS,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAACJ,GAAG,KAAKN,KAAK,CAACM,GAAG;UAAA,EAAC;UAEzE,IAAIE,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAAG,oBAAa,EAAqB;cACvCV,QAAQ,EAARA,QAAQ;cACRK,GAAG,EAAEN,KAAK,CAACM;YACb,CAAC,CAAC;UACJ;UAKA,IAAMM,OAAO,GAAGf,MAAM,CAACe,OAAO,CAACZ,KAAK,CAACI,YAAY,EAAEJ,KAAK,CAACO,UAAU,CAAC;UAEpE,IAAIK,OAAO,CAACC,WAAW,EAAE;YACvB,QAAQD,OAAO,6CAAKX,QAAQ;UAC9B;QACF;QAEA,2CAAWA,QAAQ;MACrB,CAAC,CAAC;IACJ,CAAC;IAED,IAAMa,QAAQ,GAAGjB,MAAM,oBAANA,MAAM,CAAEkB,EAAE,CAAC,aAAa,EAAEhB,WAAW,CAAC;IACvD,OAAO;MAAA,OAAMe,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
1
+ {"version":3,"names":["useNewMessage","lockChannelOrder","setChannels","useChatContext","client","useEffect","handleEvent","event","channels","cid","channel_type","channel_id","targetChannelIndex","findIndex","c","moveChannelUp","channel","initialized","listener","on","unsubscribe"],"sources":["useNewMessage.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!channels) return channels;\n\n if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {\n const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);\n\n if (targetChannelIndex >= 0) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n // If channel doesn't exist in existing list, check in activeChannels as well.\n // It may happen that channel was hidden using channel.hide(). In that case\n // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.\n const channel = client.channel(event.channel_type, event.channel_id);\n\n if (channel.initialized) {\n return [channel, ...channels];\n }\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;AAAA;AAIA;AAGA;AAQO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,OAKY;EAAA,IAFpCC,gBAAgB,QAAhBA,gBAAgB;IAChBC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAgC,EAAK;MACxDL,WAAW,CAAC,UAACM,QAAQ,EAAK;QACxB,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;QAE9B,IAAI,CAACP,gBAAgB,IAAIM,KAAK,CAACE,GAAG,IAAIF,KAAK,CAACG,YAAY,IAAIH,KAAK,CAACI,UAAU,EAAE;UAC5E,IAAMC,kBAAkB,GAAGJ,QAAQ,CAACK,SAAS,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAACL,GAAG,KAAKF,KAAK,CAACE,GAAG;UAAA,EAAC;UAEzE,IAAIG,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAAG,oBAAa,EAAqB;cACvCP,QAAQ,EAARA,QAAQ;cACRC,GAAG,EAAEF,KAAK,CAACE;YACb,CAAC,CAAC;UACJ;UAKA,IAAMO,OAAO,GAAGZ,MAAM,CAACY,OAAO,CAACT,KAAK,CAACG,YAAY,EAAEH,KAAK,CAACI,UAAU,CAAC;UAEpE,IAAIK,OAAO,CAACC,WAAW,EAAE;YACvB,QAAQD,OAAO,6CAAKR,QAAQ;UAC9B;QACF;QAEA,2CAAWA,QAAQ;MACrB,CAAC,CAAC;IACJ,CAAC;IAED,IAAMU,QAAQ,GAAGd,MAAM,oBAANA,MAAM,CAAEe,EAAE,CAAC,aAAa,EAAEb,WAAW,CAAC;IACvD,OAAO;MAAA,OAAMY,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
@@ -7,20 +7,18 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
7
7
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
8
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
9
  var _react = require("react");
10
- var _lodash = require("lodash");
11
10
  var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
12
11
  var _ChatContext = require("../../../../contexts/chatContext/ChatContext");
13
12
  var _utils = require("../../utils");
14
13
  var useNewMessageNotification = function useNewMessageNotification(_ref) {
15
- var filters = _ref.filters,
16
- onMessageNew = _ref.onMessageNew,
14
+ var onMessageNew = _ref.onMessageNew,
17
15
  setChannels = _ref.setChannels;
18
16
  var _useChatContext = (0, _ChatContext.useChatContext)(),
19
17
  client = _useChatContext.client;
20
18
  (0, _react.useEffect)(function () {
21
19
  var handleEvent = function () {
22
20
  var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(event) {
23
- var _event$channel, _event$channel2, _event$channel3, areFiltersTypeMatchingToEventChannelType, channel;
21
+ var _event$channel, _event$channel2, channel;
24
22
  return _regenerator["default"].wrap(function _callee$(_context) {
25
23
  while (1) switch (_context.prev = _context.next) {
26
24
  case 0:
@@ -29,26 +27,25 @@ var useNewMessageNotification = function useNewMessageNotification(_ref) {
29
27
  break;
30
28
  }
31
29
  onMessageNew(setChannels, event);
32
- _context.next = 10;
30
+ _context.next = 9;
33
31
  break;
34
32
  case 4:
35
- areFiltersTypeMatchingToEventChannelType = (0, _lodash.isEmpty)(filters) || ((_event$channel = event.channel) == null ? void 0 : _event$channel.type) === (filters == null ? void 0 : filters.type);
36
- if (!((_event$channel2 = event.channel) != null && _event$channel2.id && (_event$channel3 = event.channel) != null && _event$channel3.type && areFiltersTypeMatchingToEventChannelType)) {
37
- _context.next = 10;
33
+ if (!((_event$channel = event.channel) != null && _event$channel.id && (_event$channel2 = event.channel) != null && _event$channel2.type)) {
34
+ _context.next = 9;
38
35
  break;
39
36
  }
40
- _context.next = 8;
37
+ _context.next = 7;
41
38
  return (0, _utils.getChannel)({
42
39
  client: client,
43
40
  id: event.channel.id,
44
41
  type: event.channel.type
45
42
  });
46
- case 8:
43
+ case 7:
47
44
  channel = _context.sent;
48
45
  setChannels(function (channels) {
49
46
  return channels ? (0, _uniqBy["default"])([channel].concat((0, _toConsumableArray2["default"])(channels)), 'cid') : channels;
50
47
  });
51
- case 10:
48
+ case 9:
52
49
  case "end":
53
50
  return _context.stop();
54
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useNewMessageNotification","filters","onMessageNew","setChannels","useChatContext","client","useEffect","handleEvent","event","areFiltersTypeMatchingToEventChannelType","isEmpty","channel","type","id","getChannel","channels","uniqBy","listener","on","unsubscribe"],"sources":["useNewMessageNotification.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { isEmpty } from 'lodash';\nimport uniqBy from 'lodash/uniqBy';\n\nimport type { Channel, ChannelFilters, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { getChannel } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n filters?: ChannelFilters<StreamChatGenerics>;\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n };\n\nexport const useNewMessageNotification = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n filters,\n onMessageNew,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (typeof onMessageNew === 'function') {\n onMessageNew(setChannels, event);\n } else {\n const areFiltersTypeMatchingToEventChannelType =\n isEmpty(filters) || event.channel?.type === filters?.type;\n\n if (event.channel?.id && event.channel?.type && areFiltersTypeMatchingToEventChannelType) {\n const channel = await getChannel({\n client,\n id: event.channel.id,\n type: event.channel.type,\n });\n setChannels((channels) => (channels ? uniqBy([channel, ...channels], 'cid') : channels));\n }\n }\n };\n\n const listener = client?.on('notification.message_new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AAIA;AAGA;AAYO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,OAMA;EAAA,IAHpCC,OAAO,QAAPA,OAAO;IACPC,YAAY,QAAZA,YAAY;IACZC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW;MAAA,4EAAG,iBAAOC,KAAgC;QAAA;QAAA;UAAA;YAAA;cAAA,MACrD,OAAON,YAAY,KAAK,UAAU;gBAAA;gBAAA;cAAA;cACpCA,YAAY,CAACC,WAAW,EAAEK,KAAK,CAAC;cAAC;cAAA;YAAA;cAE3BC,wCAAwC,GAC5C,IAAAC,eAAO,EAACT,OAAO,CAAC,IAAI,mBAAAO,KAAK,CAACG,OAAO,qBAAb,eAAeC,IAAI,OAAKX,OAAO,oBAAPA,OAAO,CAAEW,IAAI;cAAA,MAEvD,mBAAAJ,KAAK,CAACG,OAAO,aAAb,gBAAeE,EAAE,uBAAIL,KAAK,CAACG,OAAO,aAAb,gBAAeC,IAAI,IAAIH,wCAAwC;gBAAA;gBAAA;cAAA;cAAA;cAAA,OAChE,IAAAK,iBAAU,EAAC;gBAC/BT,MAAM,EAANA,MAAM;gBACNQ,EAAE,EAAEL,KAAK,CAACG,OAAO,CAACE,EAAE;gBACpBD,IAAI,EAAEJ,KAAK,CAACG,OAAO,CAACC;cACtB,CAAC,CAAC;YAAA;cAJID,OAAO;cAKbR,WAAW,CAAC,UAACY,QAAQ;gBAAA,OAAMA,QAAQ,GAAG,IAAAC,kBAAM,GAAEL,OAAO,6CAAKI,QAAQ,IAAG,KAAK,CAAC,GAAGA,QAAQ;cAAA,CAAC,CAAC;YAAC;YAAA;cAAA;UAAA;QAAA;MAAA,CAG9F;MAAA,gBAhBKR,WAAW;QAAA;MAAA;IAAA,GAgBhB;IAED,IAAMU,QAAQ,GAAGZ,MAAM,oBAANA,MAAM,CAAEa,EAAE,CAAC,0BAA0B,EAAEX,WAAW,CAAC;IACpE,OAAO;MAAA,OAAMU,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
1
+ {"version":3,"names":["useNewMessageNotification","onMessageNew","setChannels","useChatContext","client","useEffect","handleEvent","event","channel","id","type","getChannel","channels","uniqBy","listener","on","unsubscribe"],"sources":["useNewMessageNotification.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport uniqBy from 'lodash/uniqBy';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { getChannel } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n };\n\nexport const useNewMessageNotification = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n onMessageNew,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (typeof onMessageNew === 'function') {\n onMessageNew(setChannels, event);\n } else {\n if (event.channel?.id && event.channel?.type) {\n const channel = await getChannel({\n client,\n id: event.channel.id,\n type: event.channel.type,\n });\n setChannels((channels) => (channels ? uniqBy([channel, ...channels], 'cid') : channels));\n }\n }\n };\n\n const listener = client?.on('notification.message_new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AAIA;AAGA;AAWO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,OAKA;EAAA,IAFpCC,YAAY,QAAZA,YAAY;IACZC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW;MAAA,4EAAG,iBAAOC,KAAgC;QAAA;QAAA;UAAA;YAAA;cAAA,MACrD,OAAON,YAAY,KAAK,UAAU;gBAAA;gBAAA;cAAA;cACpCA,YAAY,CAACC,WAAW,EAAEK,KAAK,CAAC;cAAC;cAAA;YAAA;cAAA,MAE7B,kBAAAA,KAAK,CAACC,OAAO,aAAb,eAAeC,EAAE,uBAAIF,KAAK,CAACC,OAAO,aAAb,gBAAeE,IAAI;gBAAA;gBAAA;cAAA;cAAA;cAAA,OACpB,IAAAC,iBAAU,EAAC;gBAC/BP,MAAM,EAANA,MAAM;gBACNK,EAAE,EAAEF,KAAK,CAACC,OAAO,CAACC,EAAE;gBACpBC,IAAI,EAAEH,KAAK,CAACC,OAAO,CAACE;cACtB,CAAC,CAAC;YAAA;cAJIF,OAAO;cAKbN,WAAW,CAAC,UAACU,QAAQ;gBAAA,OAAMA,QAAQ,GAAG,IAAAC,kBAAM,GAAEL,OAAO,6CAAKI,QAAQ,IAAG,KAAK,CAAC,GAAGA,QAAQ;cAAA,CAAC,CAAC;YAAC;YAAA;cAAA;UAAA;QAAA;MAAA,CAG9F;MAAA,gBAbKN,WAAW;QAAA;MAAA;IAAA,GAahB;IAED,IAAMQ,QAAQ,GAAGV,MAAM,oBAANA,MAAM,CAAEW,EAAE,CAAC,0BAA0B,EAAET,WAAW,CAAC;IACpE,OAAO;MAAA,OAAMQ,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.8.1-beta.2"
2
+ "version": "5.8.1-beta.3"
3
3
  }
@@ -139,12 +139,10 @@ var ChannelList = function ChannelList(props) {
139
139
  setChannels: setChannels
140
140
  });
141
141
  (0, _useNewMessage.useNewMessage)({
142
- filters: filters,
143
142
  lockChannelOrder: lockChannelOrder,
144
143
  setChannels: setChannels
145
144
  });
146
145
  (0, _useNewMessageNotification.useNewMessageNotification)({
147
- filters: filters,
148
146
  onMessageNew: onMessageNew,
149
147
  setChannels: setChannels
150
148
  });
@@ -211,14 +209,14 @@ var ChannelList = function ChannelList(props) {
211
209
  __self: _this,
212
210
  __source: {
213
211
  fileName: _jsxFileName,
214
- lineNumber: 372,
212
+ lineNumber: 370,
215
213
  columnNumber: 5
216
214
  }
217
215
  }, _react["default"].createElement(List, {
218
216
  __self: _this,
219
217
  __source: {
220
218
  fileName: _jsxFileName,
221
- lineNumber: 373,
219
+ lineNumber: 371,
222
220
  columnNumber: 7
223
221
  }
224
222
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_FILTERS","DEFAULT_OPTIONS","DEFAULT_SORT","ChannelList","props","additionalFlatListProps","EmptyStateIndicator","EmptyStateIndicatorDefault","FooterLoadingIndicator","ChannelListFooterLoadingIndicator","filters","HeaderErrorIndicator","ChannelListHeaderErrorIndicator","HeaderNetworkDownIndicator","ChannelListHeaderNetworkDownIndicator","List","ChannelListMessenger","ListHeaderComponent","LoadingErrorIndicator","LoadingErrorIndicatorDefault","LoadingIndicator","ChannelListLoadingIndicator","loadMoreThreshold","lockChannelOrder","maxUnreadCount","numberOfSkeletons","onAddedToChannel","onChannelDeleted","onChannelHidden","onChannelVisible","onChannelTruncated","onChannelUpdated","onMessageNew","onRemovedFromChannel","onSelect","options","Preview","ChannelPreviewMessenger","PreviewAvatar","PreviewMessage","PreviewStatus","PreviewTitle","PreviewUnreadCount","setFlatListRef","Skeleton","SkeletonDefault","sort","useState","forceUpdate","setForceUpdate","useChatContext","enableOfflineSupport","usePaginatedChannels","channels","error","hasNextPage","loadingChannels","loadingNextPage","loadNextPage","refreshing","refreshList","reloadList","setChannels","staticChannelsActive","useAddedToChannelNotification","useChannelDeleted","useChannelHidden","useChannelTruncated","useChannelUpdated","useChannelVisible","useNewMessage","useNewMessageNotification","useRemovedFromChannelNotification","useUserPresence","channelIdsStr","reduce","acc","channel","cid","useEffect","upsertCidsForQuery","cids","map","c","channelsContext","useCreateChannelsContext","ref"],"sources":["ChannelList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort, Event } from 'stream-chat';\n\nimport { ChannelListFooterLoadingIndicator } from './ChannelListFooterLoadingIndicator';\nimport { ChannelListHeaderErrorIndicator } from './ChannelListHeaderErrorIndicator';\nimport { ChannelListHeaderNetworkDownIndicator } from './ChannelListHeaderNetworkDownIndicator';\nimport { ChannelListLoadingIndicator } from './ChannelListLoadingIndicator';\nimport { ChannelListMessenger, ChannelListMessengerProps } from './ChannelListMessenger';\nimport { useAddedToChannelNotification } from './hooks/listeners/useAddedToChannelNotification';\nimport { useChannelDeleted } from './hooks/listeners/useChannelDeleted';\nimport { useChannelHidden } from './hooks/listeners/useChannelHidden';\nimport { useChannelTruncated } from './hooks/listeners/useChannelTruncated';\nimport { useChannelUpdated } from './hooks/listeners/useChannelUpdated';\nimport { useChannelVisible } from './hooks/listeners/useChannelVisible';\nimport { useNewMessage } from './hooks/listeners/useNewMessage';\nimport { useNewMessageNotification } from './hooks/listeners/useNewMessageNotification';\nimport { useRemovedFromChannelNotification } from './hooks/listeners/useRemovedFromChannelNotification';\nimport { useUserPresence } from './hooks/listeners/useUserPresence';\nimport { useCreateChannelsContext } from './hooks/useCreateChannelsContext';\nimport { usePaginatedChannels } from './hooks/usePaginatedChannels';\nimport { Skeleton as SkeletonDefault } from './Skeleton';\n\nimport {\n ChannelsContextValue,\n ChannelsProvider,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { upsertCidsForQuery } from '../../store/apis/upsertCidsForQuery';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreviewMessenger } from '../ChannelPreview/ChannelPreviewMessenger';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport { LoadingErrorIndicator as LoadingErrorIndicatorDefault } from '../Indicators/LoadingErrorIndicator';\n\nexport type ChannelListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'additionalFlatListProps'\n | 'EmptyStateIndicator'\n | 'FooterLoadingIndicator'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'LoadingErrorIndicator'\n | 'LoadingIndicator'\n | 'Preview'\n | 'setFlatListRef'\n | 'ListHeaderComponent'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n | 'loadMoreThreshold'\n | 'Skeleton'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n >\n> & {\n /**\n * Object containing channel query filters\n *\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available filter fields\n *\n * @overrideType object\n * */\n filters?: ChannelFilters<StreamChatGenerics>;\n /**\n * Custom UI component to display the list of channels\n *\n * Default: [ChannelListMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-list-messenger/)\n */\n List?: React.ComponentType<ChannelListMessengerProps<StreamChatGenerics>>;\n /**\n * If set to true, channels won't dynamically sort by most recent message, defaults to false\n */\n lockChannelOrder?: boolean;\n /**\n * Function that overrides default behavior when a user gets added to a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event Object](https://getstream.io/chat/docs/event_object) corresponding to `notification.added_to_channel` event\n *\n * @overrideType Function\n * */\n onAddedToChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets deleted. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.deleted` event\n *\n * @overrideType Function\n * */\n onChannelDeleted?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets hidden. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.hidden` event\n *\n * @overrideType Function\n * */\n onChannelHidden?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function to customize behavior when a channel gets truncated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.truncated` event\n *\n * @overrideType Function\n * */\n onChannelTruncated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets updated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.updated` event\n *\n * @overrideType Function\n * */\n onChannelUpdated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets visible. In absence of this prop, the channel will be added to the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.visible` event\n *\n * @overrideType Function\n * */\n onChannelVisible?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Override the default listener/handler for event `notification.message_new`\n * This event is received on channel, which is not being watched.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.message_new` event\n *\n * @overrideType Function\n * */\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a user gets removed from a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.removed_from_channel` event\n *\n * @overrideType Function\n * */\n onRemovedFromChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Object containing channel query options\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available option fields\n * */\n options?: ChannelOptions;\n /**\n * Object containing channel sort parameters\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available sorting fields\n * */\n sort?: ChannelSort<StreamChatGenerics>;\n};\n\nconst DEFAULT_FILTERS = {};\nconst DEFAULT_OPTIONS = {};\nconst DEFAULT_SORT = {};\n\n/**\n * This component fetches a list of channels, allowing you to select the channel you want to open.\n * The ChannelList doesn't provide any UI for the underlying React Native FlatList. UI is determined by the `List` component which is\n * provided to the ChannelList component as a prop. By default, the ChannelListMessenger component is used as the list UI.\n *\n * @example ./ChannelList.md\n */\nexport const ChannelList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps = {},\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n FooterLoadingIndicator = ChannelListFooterLoadingIndicator,\n filters = DEFAULT_FILTERS,\n HeaderErrorIndicator = ChannelListHeaderErrorIndicator,\n HeaderNetworkDownIndicator = ChannelListHeaderNetworkDownIndicator,\n List = ChannelListMessenger,\n ListHeaderComponent,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = ChannelListLoadingIndicator,\n // https://stackoverflow.com/a/60666252/10826415\n loadMoreThreshold = 0.1,\n lockChannelOrder = false,\n maxUnreadCount = 255,\n numberOfSkeletons = 6,\n onAddedToChannel,\n onChannelDeleted,\n onChannelHidden,\n onChannelVisible,\n onChannelTruncated,\n onChannelUpdated,\n onMessageNew,\n onRemovedFromChannel,\n onSelect,\n options = DEFAULT_OPTIONS,\n Preview = ChannelPreviewMessenger,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n setFlatListRef,\n Skeleton = SkeletonDefault,\n sort = DEFAULT_SORT,\n } = props;\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const {\n channels,\n error,\n hasNextPage,\n loadingChannels,\n loadingNextPage,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n } = usePaginatedChannels<StreamChatGenerics>({\n enableOfflineSupport,\n filters,\n options,\n setForceUpdate,\n sort,\n });\n\n // Setup event listeners\n useAddedToChannelNotification({\n onAddedToChannel,\n setChannels,\n });\n\n useChannelDeleted({\n onChannelDeleted,\n setChannels,\n });\n\n useChannelHidden({\n onChannelHidden,\n setChannels,\n });\n\n useChannelTruncated({\n onChannelTruncated,\n refreshList,\n setChannels,\n setForceUpdate,\n });\n\n useChannelUpdated({\n onChannelUpdated,\n setChannels,\n });\n\n useChannelVisible({\n onChannelVisible,\n setChannels,\n });\n\n useNewMessage({\n filters,\n lockChannelOrder,\n setChannels,\n });\n\n useNewMessageNotification({\n filters,\n onMessageNew,\n setChannels,\n });\n\n useRemovedFromChannelNotification({\n onRemovedFromChannel,\n setChannels,\n });\n\n useUserPresence({\n setChannels,\n });\n\n const channelIdsStr = channels?.reduce((acc, channel) => `${acc}${channel.cid}`, '');\n\n useEffect(() => {\n if (channels === null || staticChannelsActive || !enableOfflineSupport) {\n return;\n }\n\n upsertCidsForQuery({\n cids: channels.map((c) => c.cid),\n filters,\n sort,\n });\n }, [channelIdsStr, staticChannelsActive]);\n\n const channelsContext = useCreateChannelsContext({\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n hasNextPage,\n HeaderErrorIndicator,\n HeaderNetworkDownIndicator,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n maxUnreadCount,\n numberOfSkeletons,\n onSelect,\n Preview,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => {\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n },\n Skeleton,\n });\n\n return (\n <ChannelsProvider value={channelsContext}>\n <List<StreamChatGenerics> />\n </ChannelsProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEFAULT_FILTERS","DEFAULT_OPTIONS","DEFAULT_SORT","ChannelList","props","additionalFlatListProps","EmptyStateIndicator","EmptyStateIndicatorDefault","FooterLoadingIndicator","ChannelListFooterLoadingIndicator","filters","HeaderErrorIndicator","ChannelListHeaderErrorIndicator","HeaderNetworkDownIndicator","ChannelListHeaderNetworkDownIndicator","List","ChannelListMessenger","ListHeaderComponent","LoadingErrorIndicator","LoadingErrorIndicatorDefault","LoadingIndicator","ChannelListLoadingIndicator","loadMoreThreshold","lockChannelOrder","maxUnreadCount","numberOfSkeletons","onAddedToChannel","onChannelDeleted","onChannelHidden","onChannelVisible","onChannelTruncated","onChannelUpdated","onMessageNew","onRemovedFromChannel","onSelect","options","Preview","ChannelPreviewMessenger","PreviewAvatar","PreviewMessage","PreviewStatus","PreviewTitle","PreviewUnreadCount","setFlatListRef","Skeleton","SkeletonDefault","sort","useState","forceUpdate","setForceUpdate","useChatContext","enableOfflineSupport","usePaginatedChannels","channels","error","hasNextPage","loadingChannels","loadingNextPage","loadNextPage","refreshing","refreshList","reloadList","setChannels","staticChannelsActive","useAddedToChannelNotification","useChannelDeleted","useChannelHidden","useChannelTruncated","useChannelUpdated","useChannelVisible","useNewMessage","useNewMessageNotification","useRemovedFromChannelNotification","useUserPresence","channelIdsStr","reduce","acc","channel","cid","useEffect","upsertCidsForQuery","cids","map","c","channelsContext","useCreateChannelsContext","ref"],"sources":["ChannelList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { Channel, ChannelFilters, ChannelOptions, ChannelSort, Event } from 'stream-chat';\n\nimport { ChannelListFooterLoadingIndicator } from './ChannelListFooterLoadingIndicator';\nimport { ChannelListHeaderErrorIndicator } from './ChannelListHeaderErrorIndicator';\nimport { ChannelListHeaderNetworkDownIndicator } from './ChannelListHeaderNetworkDownIndicator';\nimport { ChannelListLoadingIndicator } from './ChannelListLoadingIndicator';\nimport { ChannelListMessenger, ChannelListMessengerProps } from './ChannelListMessenger';\nimport { useAddedToChannelNotification } from './hooks/listeners/useAddedToChannelNotification';\nimport { useChannelDeleted } from './hooks/listeners/useChannelDeleted';\nimport { useChannelHidden } from './hooks/listeners/useChannelHidden';\nimport { useChannelTruncated } from './hooks/listeners/useChannelTruncated';\nimport { useChannelUpdated } from './hooks/listeners/useChannelUpdated';\nimport { useChannelVisible } from './hooks/listeners/useChannelVisible';\nimport { useNewMessage } from './hooks/listeners/useNewMessage';\nimport { useNewMessageNotification } from './hooks/listeners/useNewMessageNotification';\nimport { useRemovedFromChannelNotification } from './hooks/listeners/useRemovedFromChannelNotification';\nimport { useUserPresence } from './hooks/listeners/useUserPresence';\nimport { useCreateChannelsContext } from './hooks/useCreateChannelsContext';\nimport { usePaginatedChannels } from './hooks/usePaginatedChannels';\nimport { Skeleton as SkeletonDefault } from './Skeleton';\n\nimport {\n ChannelsContextValue,\n ChannelsProvider,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { upsertCidsForQuery } from '../../store/apis/upsertCidsForQuery';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreviewMessenger } from '../ChannelPreview/ChannelPreviewMessenger';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport { LoadingErrorIndicator as LoadingErrorIndicatorDefault } from '../Indicators/LoadingErrorIndicator';\n\nexport type ChannelListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'additionalFlatListProps'\n | 'EmptyStateIndicator'\n | 'FooterLoadingIndicator'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'LoadingErrorIndicator'\n | 'LoadingIndicator'\n | 'Preview'\n | 'setFlatListRef'\n | 'ListHeaderComponent'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n | 'loadMoreThreshold'\n | 'Skeleton'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n >\n> & {\n /**\n * Object containing channel query filters\n *\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available filter fields\n *\n * @overrideType object\n * */\n filters?: ChannelFilters<StreamChatGenerics>;\n /**\n * Custom UI component to display the list of channels\n *\n * Default: [ChannelListMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-list-messenger/)\n */\n List?: React.ComponentType<ChannelListMessengerProps<StreamChatGenerics>>;\n /**\n * If set to true, channels won't dynamically sort by most recent message, defaults to false\n */\n lockChannelOrder?: boolean;\n /**\n * Function that overrides default behavior when a user gets added to a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event Object](https://getstream.io/chat/docs/event_object) corresponding to `notification.added_to_channel` event\n *\n * @overrideType Function\n * */\n onAddedToChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets deleted. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.deleted` event\n *\n * @overrideType Function\n * */\n onChannelDeleted?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets hidden. In absence of this prop, the channel will be removed from the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.hidden` event\n *\n * @overrideType Function\n * */\n onChannelHidden?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function to customize behavior when a channel gets truncated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.truncated` event\n *\n * @overrideType Function\n * */\n onChannelTruncated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets updated\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.updated` event\n *\n * @overrideType Function\n * */\n onChannelUpdated?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a channel gets visible. In absence of this prop, the channel will be added to the list.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `channel.visible` event\n *\n * @overrideType Function\n * */\n onChannelVisible?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Override the default listener/handler for event `notification.message_new`\n * This event is received on channel, which is not being watched.\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.message_new` event\n *\n * @overrideType Function\n * */\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Function that overrides default behavior when a user gets removed from a channel\n *\n * @param setChannels Setter for internal state property - `channels`. It's created from useState() hook.\n * @param event An [Event object](https://getstream.io/chat/docs/event_object) corresponding to `notification.removed_from_channel` event\n *\n * @overrideType Function\n * */\n onRemovedFromChannel?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n /**\n * Object containing channel query options\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available option fields\n * */\n options?: ChannelOptions;\n /**\n * Object containing channel sort parameters\n * @see See [Channel query documentation](https://getstream.io/chat/docs/query_channels) for a list of available sorting fields\n * */\n sort?: ChannelSort<StreamChatGenerics>;\n};\n\nconst DEFAULT_FILTERS = {};\nconst DEFAULT_OPTIONS = {};\nconst DEFAULT_SORT = {};\n\n/**\n * This component fetches a list of channels, allowing you to select the channel you want to open.\n * The ChannelList doesn't provide any UI for the underlying React Native FlatList. UI is determined by the `List` component which is\n * provided to the ChannelList component as a prop. By default, the ChannelListMessenger component is used as the list UI.\n *\n * @example ./ChannelList.md\n */\nexport const ChannelList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps = {},\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n FooterLoadingIndicator = ChannelListFooterLoadingIndicator,\n filters = DEFAULT_FILTERS,\n HeaderErrorIndicator = ChannelListHeaderErrorIndicator,\n HeaderNetworkDownIndicator = ChannelListHeaderNetworkDownIndicator,\n List = ChannelListMessenger,\n ListHeaderComponent,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = ChannelListLoadingIndicator,\n // https://stackoverflow.com/a/60666252/10826415\n loadMoreThreshold = 0.1,\n lockChannelOrder = false,\n maxUnreadCount = 255,\n numberOfSkeletons = 6,\n onAddedToChannel,\n onChannelDeleted,\n onChannelHidden,\n onChannelVisible,\n onChannelTruncated,\n onChannelUpdated,\n onMessageNew,\n onRemovedFromChannel,\n onSelect,\n options = DEFAULT_OPTIONS,\n Preview = ChannelPreviewMessenger,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n setFlatListRef,\n Skeleton = SkeletonDefault,\n sort = DEFAULT_SORT,\n } = props;\n\n const [forceUpdate, setForceUpdate] = useState(0);\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const {\n channels,\n error,\n hasNextPage,\n loadingChannels,\n loadingNextPage,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setChannels,\n staticChannelsActive,\n } = usePaginatedChannels<StreamChatGenerics>({\n enableOfflineSupport,\n filters,\n options,\n setForceUpdate,\n sort,\n });\n\n // Setup event listeners\n useAddedToChannelNotification({\n onAddedToChannel,\n setChannels,\n });\n\n useChannelDeleted({\n onChannelDeleted,\n setChannels,\n });\n\n useChannelHidden({\n onChannelHidden,\n setChannels,\n });\n\n useChannelTruncated({\n onChannelTruncated,\n refreshList,\n setChannels,\n setForceUpdate,\n });\n\n useChannelUpdated({\n onChannelUpdated,\n setChannels,\n });\n\n useChannelVisible({\n onChannelVisible,\n setChannels,\n });\n\n useNewMessage({\n lockChannelOrder,\n setChannels,\n });\n\n useNewMessageNotification({\n onMessageNew,\n setChannels,\n });\n\n useRemovedFromChannelNotification({\n onRemovedFromChannel,\n setChannels,\n });\n\n useUserPresence({\n setChannels,\n });\n\n const channelIdsStr = channels?.reduce((acc, channel) => `${acc}${channel.cid}`, '');\n\n useEffect(() => {\n if (channels === null || staticChannelsActive || !enableOfflineSupport) {\n return;\n }\n\n upsertCidsForQuery({\n cids: channels.map((c) => c.cid),\n filters,\n sort,\n });\n }, [channelIdsStr, staticChannelsActive]);\n\n const channelsContext = useCreateChannelsContext({\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n hasNextPage,\n HeaderErrorIndicator,\n HeaderNetworkDownIndicator,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n maxUnreadCount,\n numberOfSkeletons,\n onSelect,\n Preview,\n PreviewAvatar,\n PreviewMessage,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => {\n if (setFlatListRef) {\n setFlatListRef(ref);\n }\n },\n Skeleton,\n });\n\n return (\n <ChannelsProvider value={channelsContext}>\n <List<StreamChatGenerics> />\n </ChannelsProvider>\n );\n};\n"],"mappings":"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"}
@@ -5,12 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.useNewMessage = void 0;
6
6
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
7
  var _react = require("react");
8
- var _lodash = require("lodash");
9
8
  var _ChatContext = require("../../../../contexts/chatContext/ChatContext");
10
9
  var _utils = require("../../utils");
11
10
  var useNewMessage = function useNewMessage(_ref) {
12
- var filters = _ref.filters,
13
- lockChannelOrder = _ref.lockChannelOrder,
11
+ var lockChannelOrder = _ref.lockChannelOrder,
14
12
  setChannels = _ref.setChannels;
15
13
  var _useChatContext = (0, _ChatContext.useChatContext)(),
16
14
  client = _useChatContext.client;
@@ -18,8 +16,7 @@ var useNewMessage = function useNewMessage(_ref) {
18
16
  var handleEvent = function handleEvent(event) {
19
17
  setChannels(function (channels) {
20
18
  if (!channels) return channels;
21
- var areFiltersTypeMatchingToEventChannelType = (0, _lodash.isEmpty)(filters) || event.channel_type === (filters == null ? void 0 : filters.type);
22
- if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id && areFiltersTypeMatchingToEventChannelType) {
19
+ if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {
23
20
  var targetChannelIndex = channels.findIndex(function (c) {
24
21
  return c.cid === event.cid;
25
22
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useNewMessage","filters","lockChannelOrder","setChannels","useChatContext","client","useEffect","handleEvent","event","channels","areFiltersTypeMatchingToEventChannelType","isEmpty","channel_type","type","cid","channel_id","targetChannelIndex","findIndex","c","moveChannelUp","channel","initialized","listener","on","unsubscribe"],"sources":["useNewMessage.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { isEmpty } from 'lodash';\nimport type { Channel, ChannelFilters, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n filters?: ChannelFilters<StreamChatGenerics>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n filters,\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!channels) return channels;\n\n const areFiltersTypeMatchingToEventChannelType =\n isEmpty(filters) || event.channel_type === filters?.type;\n\n if (\n !lockChannelOrder &&\n event.cid &&\n event.channel_type &&\n event.channel_id &&\n areFiltersTypeMatchingToEventChannelType\n ) {\n const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);\n\n if (targetChannelIndex >= 0) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n // If channel doesn't exist in existing list, check in activeChannels as well.\n // It may happen that channel was hidden using channel.hide(). In that case\n // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.\n const channel = client.channel(event.channel_type, event.channel_id);\n\n if (channel.initialized) {\n return [channel, ...channels];\n }\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;AAAA;AAEA;AAGA;AAGA;AASO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,OAMY;EAAA,IAHpCC,OAAO,QAAPA,OAAO;IACPC,gBAAgB,QAAhBA,gBAAgB;IAChBC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAgC,EAAK;MACxDL,WAAW,CAAC,UAACM,QAAQ,EAAK;QACxB,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;QAE9B,IAAMC,wCAAwC,GAC5C,IAAAC,eAAO,EAACV,OAAO,CAAC,IAAIO,KAAK,CAACI,YAAY,MAAKX,OAAO,oBAAPA,OAAO,CAAEY,IAAI;QAE1D,IACE,CAACX,gBAAgB,IACjBM,KAAK,CAACM,GAAG,IACTN,KAAK,CAACI,YAAY,IAClBJ,KAAK,CAACO,UAAU,IAChBL,wCAAwC,EACxC;UACA,IAAMM,kBAAkB,GAAGP,QAAQ,CAACQ,SAAS,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAACJ,GAAG,KAAKN,KAAK,CAACM,GAAG;UAAA,EAAC;UAEzE,IAAIE,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAAG,oBAAa,EAAqB;cACvCV,QAAQ,EAARA,QAAQ;cACRK,GAAG,EAAEN,KAAK,CAACM;YACb,CAAC,CAAC;UACJ;UAKA,IAAMM,OAAO,GAAGf,MAAM,CAACe,OAAO,CAACZ,KAAK,CAACI,YAAY,EAAEJ,KAAK,CAACO,UAAU,CAAC;UAEpE,IAAIK,OAAO,CAACC,WAAW,EAAE;YACvB,QAAQD,OAAO,6CAAKX,QAAQ;UAC9B;QACF;QAEA,2CAAWA,QAAQ;MACrB,CAAC,CAAC;IACJ,CAAC;IAED,IAAMa,QAAQ,GAAGjB,MAAM,oBAANA,MAAM,CAAEkB,EAAE,CAAC,aAAa,EAAEhB,WAAW,CAAC;IACvD,OAAO;MAAA,OAAMe,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
1
+ {"version":3,"names":["useNewMessage","lockChannelOrder","setChannels","useChatContext","client","useEffect","handleEvent","event","channels","cid","channel_type","channel_id","targetChannelIndex","findIndex","c","moveChannelUp","channel","initialized","listener","on","unsubscribe"],"sources":["useNewMessage.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { moveChannelUp } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n lockChannelOrder: boolean;\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n };\n\nexport const useNewMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n lockChannelOrder,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = (event: Event<StreamChatGenerics>) => {\n setChannels((channels) => {\n if (!channels) return channels;\n\n if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {\n const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);\n\n if (targetChannelIndex >= 0) {\n return moveChannelUp<StreamChatGenerics>({\n channels,\n cid: event.cid,\n });\n }\n\n // If channel doesn't exist in existing list, check in activeChannels as well.\n // It may happen that channel was hidden using channel.hide(). In that case\n // We remove it from `channels` state, but its still being watched and exists in client.activeChannels.\n const channel = client.channel(event.channel_type, event.channel_id);\n\n if (channel.initialized) {\n return [channel, ...channels];\n }\n }\n\n return [...channels];\n });\n };\n\n const listener = client?.on('message.new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;AAAA;AAIA;AAGA;AAQO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,OAKY;EAAA,IAFpCC,gBAAgB,QAAhBA,gBAAgB;IAChBC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAgC,EAAK;MACxDL,WAAW,CAAC,UAACM,QAAQ,EAAK;QACxB,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;QAE9B,IAAI,CAACP,gBAAgB,IAAIM,KAAK,CAACE,GAAG,IAAIF,KAAK,CAACG,YAAY,IAAIH,KAAK,CAACI,UAAU,EAAE;UAC5E,IAAMC,kBAAkB,GAAGJ,QAAQ,CAACK,SAAS,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAACL,GAAG,KAAKF,KAAK,CAACE,GAAG;UAAA,EAAC;UAEzE,IAAIG,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAAG,oBAAa,EAAqB;cACvCP,QAAQ,EAARA,QAAQ;cACRC,GAAG,EAAEF,KAAK,CAACE;YACb,CAAC,CAAC;UACJ;UAKA,IAAMO,OAAO,GAAGZ,MAAM,CAACY,OAAO,CAACT,KAAK,CAACG,YAAY,EAAEH,KAAK,CAACI,UAAU,CAAC;UAEpE,IAAIK,OAAO,CAACC,WAAW,EAAE;YACvB,QAAQD,OAAO,6CAAKR,QAAQ;UAC9B;QACF;QAEA,2CAAWA,QAAQ;MACrB,CAAC,CAAC;IACJ,CAAC;IAED,IAAMU,QAAQ,GAAGd,MAAM,oBAANA,MAAM,CAAEe,EAAE,CAAC,aAAa,EAAEb,WAAW,CAAC;IACvD,OAAO;MAAA,OAAMY,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
@@ -7,20 +7,18 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
7
7
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
8
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
9
  var _react = require("react");
10
- var _lodash = require("lodash");
11
10
  var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
12
11
  var _ChatContext = require("../../../../contexts/chatContext/ChatContext");
13
12
  var _utils = require("../../utils");
14
13
  var useNewMessageNotification = function useNewMessageNotification(_ref) {
15
- var filters = _ref.filters,
16
- onMessageNew = _ref.onMessageNew,
14
+ var onMessageNew = _ref.onMessageNew,
17
15
  setChannels = _ref.setChannels;
18
16
  var _useChatContext = (0, _ChatContext.useChatContext)(),
19
17
  client = _useChatContext.client;
20
18
  (0, _react.useEffect)(function () {
21
19
  var handleEvent = function () {
22
20
  var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(event) {
23
- var _event$channel, _event$channel2, _event$channel3, areFiltersTypeMatchingToEventChannelType, channel;
21
+ var _event$channel, _event$channel2, channel;
24
22
  return _regenerator["default"].wrap(function _callee$(_context) {
25
23
  while (1) switch (_context.prev = _context.next) {
26
24
  case 0:
@@ -29,26 +27,25 @@ var useNewMessageNotification = function useNewMessageNotification(_ref) {
29
27
  break;
30
28
  }
31
29
  onMessageNew(setChannels, event);
32
- _context.next = 10;
30
+ _context.next = 9;
33
31
  break;
34
32
  case 4:
35
- areFiltersTypeMatchingToEventChannelType = (0, _lodash.isEmpty)(filters) || ((_event$channel = event.channel) == null ? void 0 : _event$channel.type) === (filters == null ? void 0 : filters.type);
36
- if (!((_event$channel2 = event.channel) != null && _event$channel2.id && (_event$channel3 = event.channel) != null && _event$channel3.type && areFiltersTypeMatchingToEventChannelType)) {
37
- _context.next = 10;
33
+ if (!((_event$channel = event.channel) != null && _event$channel.id && (_event$channel2 = event.channel) != null && _event$channel2.type)) {
34
+ _context.next = 9;
38
35
  break;
39
36
  }
40
- _context.next = 8;
37
+ _context.next = 7;
41
38
  return (0, _utils.getChannel)({
42
39
  client: client,
43
40
  id: event.channel.id,
44
41
  type: event.channel.type
45
42
  });
46
- case 8:
43
+ case 7:
47
44
  channel = _context.sent;
48
45
  setChannels(function (channels) {
49
46
  return channels ? (0, _uniqBy["default"])([channel].concat((0, _toConsumableArray2["default"])(channels)), 'cid') : channels;
50
47
  });
51
- case 10:
48
+ case 9:
52
49
  case "end":
53
50
  return _context.stop();
54
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useNewMessageNotification","filters","onMessageNew","setChannels","useChatContext","client","useEffect","handleEvent","event","areFiltersTypeMatchingToEventChannelType","isEmpty","channel","type","id","getChannel","channels","uniqBy","listener","on","unsubscribe"],"sources":["useNewMessageNotification.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { isEmpty } from 'lodash';\nimport uniqBy from 'lodash/uniqBy';\n\nimport type { Channel, ChannelFilters, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { getChannel } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n filters?: ChannelFilters<StreamChatGenerics>;\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n };\n\nexport const useNewMessageNotification = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n filters,\n onMessageNew,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (typeof onMessageNew === 'function') {\n onMessageNew(setChannels, event);\n } else {\n const areFiltersTypeMatchingToEventChannelType =\n isEmpty(filters) || event.channel?.type === filters?.type;\n\n if (event.channel?.id && event.channel?.type && areFiltersTypeMatchingToEventChannelType) {\n const channel = await getChannel({\n client,\n id: event.channel.id,\n type: event.channel.type,\n });\n setChannels((channels) => (channels ? uniqBy([channel, ...channels], 'cid') : channels));\n }\n }\n };\n\n const listener = client?.on('notification.message_new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AAIA;AAGA;AAYO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,OAMA;EAAA,IAHpCC,OAAO,QAAPA,OAAO;IACPC,YAAY,QAAZA,YAAY;IACZC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW;MAAA,4EAAG,iBAAOC,KAAgC;QAAA;QAAA;UAAA;YAAA;cAAA,MACrD,OAAON,YAAY,KAAK,UAAU;gBAAA;gBAAA;cAAA;cACpCA,YAAY,CAACC,WAAW,EAAEK,KAAK,CAAC;cAAC;cAAA;YAAA;cAE3BC,wCAAwC,GAC5C,IAAAC,eAAO,EAACT,OAAO,CAAC,IAAI,mBAAAO,KAAK,CAACG,OAAO,qBAAb,eAAeC,IAAI,OAAKX,OAAO,oBAAPA,OAAO,CAAEW,IAAI;cAAA,MAEvD,mBAAAJ,KAAK,CAACG,OAAO,aAAb,gBAAeE,EAAE,uBAAIL,KAAK,CAACG,OAAO,aAAb,gBAAeC,IAAI,IAAIH,wCAAwC;gBAAA;gBAAA;cAAA;cAAA;cAAA,OAChE,IAAAK,iBAAU,EAAC;gBAC/BT,MAAM,EAANA,MAAM;gBACNQ,EAAE,EAAEL,KAAK,CAACG,OAAO,CAACE,EAAE;gBACpBD,IAAI,EAAEJ,KAAK,CAACG,OAAO,CAACC;cACtB,CAAC,CAAC;YAAA;cAJID,OAAO;cAKbR,WAAW,CAAC,UAACY,QAAQ;gBAAA,OAAMA,QAAQ,GAAG,IAAAC,kBAAM,GAAEL,OAAO,6CAAKI,QAAQ,IAAG,KAAK,CAAC,GAAGA,QAAQ;cAAA,CAAC,CAAC;YAAC;YAAA;cAAA;UAAA;QAAA;MAAA,CAG9F;MAAA,gBAhBKR,WAAW;QAAA;MAAA;IAAA,GAgBhB;IAED,IAAMU,QAAQ,GAAGZ,MAAM,oBAANA,MAAM,CAAEa,EAAE,CAAC,0BAA0B,EAAEX,WAAW,CAAC;IACpE,OAAO;MAAA,OAAMU,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
1
+ {"version":3,"names":["useNewMessageNotification","onMessageNew","setChannels","useChatContext","client","useEffect","handleEvent","event","channel","id","type","getChannel","channels","uniqBy","listener","on","unsubscribe"],"sources":["useNewMessageNotification.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport uniqBy from 'lodash/uniqBy';\n\nimport type { Channel, Event } from 'stream-chat';\n\nimport { useChatContext } from '../../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport { getChannel } from '../../utils';\n\ntype Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n {\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;\n onMessageNew?: (\n setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,\n event: Event<StreamChatGenerics>,\n ) => void;\n };\n\nexport const useNewMessageNotification = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n onMessageNew,\n setChannels,\n}: Parameters<StreamChatGenerics>) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n useEffect(() => {\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (typeof onMessageNew === 'function') {\n onMessageNew(setChannels, event);\n } else {\n if (event.channel?.id && event.channel?.type) {\n const channel = await getChannel({\n client,\n id: event.channel.id,\n type: event.channel.type,\n });\n setChannels((channels) => (channels ? uniqBy([channel, ...channels], 'cid') : channels));\n }\n }\n };\n\n const listener = client?.on('notification.message_new', handleEvent);\n return () => listener?.unsubscribe();\n }, []);\n};\n"],"mappings":";;;;;;;;AAAA;AAEA;AAIA;AAGA;AAWO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,OAKA;EAAA,IAFpCC,YAAY,QAAZA,YAAY;IACZC,WAAW,QAAXA,WAAW;EAEX,sBAAmB,IAAAC,2BAAc,GAAsB;IAA/CC,MAAM,mBAANA,MAAM;EAEd,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW;MAAA,4EAAG,iBAAOC,KAAgC;QAAA;QAAA;UAAA;YAAA;cAAA,MACrD,OAAON,YAAY,KAAK,UAAU;gBAAA;gBAAA;cAAA;cACpCA,YAAY,CAACC,WAAW,EAAEK,KAAK,CAAC;cAAC;cAAA;YAAA;cAAA,MAE7B,kBAAAA,KAAK,CAACC,OAAO,aAAb,eAAeC,EAAE,uBAAIF,KAAK,CAACC,OAAO,aAAb,gBAAeE,IAAI;gBAAA;gBAAA;cAAA;cAAA;cAAA,OACpB,IAAAC,iBAAU,EAAC;gBAC/BP,MAAM,EAANA,MAAM;gBACNK,EAAE,EAAEF,KAAK,CAACC,OAAO,CAACC,EAAE;gBACpBC,IAAI,EAAEH,KAAK,CAACC,OAAO,CAACE;cACtB,CAAC,CAAC;YAAA;cAJIF,OAAO;cAKbN,WAAW,CAAC,UAACU,QAAQ;gBAAA,OAAMA,QAAQ,GAAG,IAAAC,kBAAM,GAAEL,OAAO,6CAAKI,QAAQ,IAAG,KAAK,CAAC,GAAGA,QAAQ;cAAA,CAAC,CAAC;YAAC;YAAA;cAAA;UAAA;QAAA;MAAA,CAG9F;MAAA,gBAbKN,WAAW;QAAA;MAAA;IAAA,GAahB;IAED,IAAMQ,QAAQ,GAAGV,MAAM,oBAANA,MAAM,CAAEW,EAAE,CAAC,0BAA0B,EAAET,WAAW,CAAC;IACpE,OAAO;MAAA,OAAMQ,QAAQ,oBAARA,QAAQ,CAAEE,WAAW,EAAE;IAAA;EACtC,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.8.1-beta.2"
2
+ "version": "5.8.1-beta.3"
3
3
  }
@@ -1,10 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { Channel, ChannelFilters } from 'stream-chat';
2
+ import type { Channel } from 'stream-chat';
3
3
  import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
4
  declare type Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
5
  lockChannelOrder: boolean;
6
6
  setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;
7
- filters?: ChannelFilters<StreamChatGenerics>;
8
7
  };
9
- export declare const useNewMessage: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ filters, lockChannelOrder, setChannels, }: Parameters<StreamChatGenerics>) => void;
8
+ export declare const useNewMessage: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ lockChannelOrder, setChannels, }: Parameters<StreamChatGenerics>) => void;
10
9
  export {};
@@ -1,10 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { Channel, ChannelFilters, Event } from 'stream-chat';
2
+ import type { Channel, Event } from 'stream-chat';
3
3
  import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
4
  declare type Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
5
  setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;
6
- filters?: ChannelFilters<StreamChatGenerics>;
7
6
  onMessageNew?: (setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>, event: Event<StreamChatGenerics>) => void;
8
7
  };
9
- export declare const useNewMessageNotification: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ filters, onMessageNew, setChannels, }: Parameters<StreamChatGenerics>) => void;
8
+ export declare const useNewMessageNotification: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ onMessageNew, setChannels, }: Parameters<StreamChatGenerics>) => void;
10
9
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.8.1-beta.2",
4
+ "version": "5.8.1-beta.3",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -297,13 +297,11 @@ export const ChannelList = <
297
297
  });
298
298
 
299
299
  useNewMessage({
300
- filters,
301
300
  lockChannelOrder,
302
301
  setChannels,
303
302
  });
304
303
 
305
304
  useNewMessageNotification({
306
- filters,
307
305
  onMessageNew,
308
306
  setChannels,
309
307
  });
@@ -1,7 +1,6 @@
1
1
  import { useEffect } from 'react';
2
2
 
3
- import { isEmpty } from 'lodash';
4
- import type { Channel, ChannelFilters, Event } from 'stream-chat';
3
+ import type { Channel, Event } from 'stream-chat';
5
4
 
6
5
  import { useChatContext } from '../../../../contexts/chatContext/ChatContext';
7
6
 
@@ -12,13 +11,11 @@ type Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultSt
12
11
  {
13
12
  lockChannelOrder: boolean;
14
13
  setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;
15
- filters?: ChannelFilters<StreamChatGenerics>;
16
14
  };
17
15
 
18
16
  export const useNewMessage = <
19
17
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
20
18
  >({
21
- filters,
22
19
  lockChannelOrder,
23
20
  setChannels,
24
21
  }: Parameters<StreamChatGenerics>) => {
@@ -29,16 +26,7 @@ export const useNewMessage = <
29
26
  setChannels((channels) => {
30
27
  if (!channels) return channels;
31
28
 
32
- const areFiltersTypeMatchingToEventChannelType =
33
- isEmpty(filters) || event.channel_type === filters?.type;
34
-
35
- if (
36
- !lockChannelOrder &&
37
- event.cid &&
38
- event.channel_type &&
39
- event.channel_id &&
40
- areFiltersTypeMatchingToEventChannelType
41
- ) {
29
+ if (!lockChannelOrder && event.cid && event.channel_type && event.channel_id) {
42
30
  const targetChannelIndex = channels.findIndex((c) => c.cid === event.cid);
43
31
 
44
32
  if (targetChannelIndex >= 0) {
@@ -1,9 +1,8 @@
1
1
  import { useEffect } from 'react';
2
2
 
3
- import { isEmpty } from 'lodash';
4
3
  import uniqBy from 'lodash/uniqBy';
5
4
 
6
- import type { Channel, ChannelFilters, Event } from 'stream-chat';
5
+ import type { Channel, Event } from 'stream-chat';
7
6
 
8
7
  import { useChatContext } from '../../../../contexts/chatContext/ChatContext';
9
8
 
@@ -13,7 +12,6 @@ import { getChannel } from '../../utils';
13
12
  type Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =
14
13
  {
15
14
  setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>;
16
- filters?: ChannelFilters<StreamChatGenerics>;
17
15
  onMessageNew?: (
18
16
  setChannels: React.Dispatch<React.SetStateAction<Channel<StreamChatGenerics>[] | null>>,
19
17
  event: Event<StreamChatGenerics>,
@@ -23,7 +21,6 @@ type Parameters<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultSt
23
21
  export const useNewMessageNotification = <
24
22
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
25
23
  >({
26
- filters,
27
24
  onMessageNew,
28
25
  setChannels,
29
26
  }: Parameters<StreamChatGenerics>) => {
@@ -34,10 +31,7 @@ export const useNewMessageNotification = <
34
31
  if (typeof onMessageNew === 'function') {
35
32
  onMessageNew(setChannels, event);
36
33
  } else {
37
- const areFiltersTypeMatchingToEventChannelType =
38
- isEmpty(filters) || event.channel?.type === filters?.type;
39
-
40
- if (event.channel?.id && event.channel?.type && areFiltersTypeMatchingToEventChannelType) {
34
+ if (event.channel?.id && event.channel?.type) {
41
35
  const channel = await getChannel({
42
36
  client,
43
37
  id: event.channel.id,
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.8.1-beta.2"
2
+ "version": "5.8.1-beta.3"
3
3
  }