stream-chat-react-native-core 9.0.0-beta.27 → 9.0.0-beta.28

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 (124) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +1 -1
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/ChannelList/hooks/useChannelActionItems.js +0 -15
  4. package/lib/commonjs/components/ChannelList/hooks/useChannelActionItems.js.map +1 -1
  5. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js +14 -12
  6. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js +1 -0
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  9. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +11 -9
  10. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  11. package/lib/commonjs/components/Message/Message.js +2 -1
  12. package/lib/commonjs/components/Message/Message.js.map +1 -1
  13. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js +7 -3
  14. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  15. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +3 -1
  16. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  17. package/lib/commonjs/components/MessageMenu/MessageUserReactions.js +0 -1
  18. package/lib/commonjs/components/MessageMenu/MessageUserReactions.js.map +1 -1
  19. package/lib/commonjs/components/Poll/components/PollInputDialog.js +1 -1
  20. package/lib/commonjs/components/Poll/components/PollInputDialog.js.map +1 -1
  21. package/lib/commonjs/components/UIComponents/BottomSheetModal.js +141 -40
  22. package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
  23. package/lib/commonjs/components/UIComponents/BottomSheetModal.utils.js +53 -0
  24. package/lib/commonjs/components/UIComponents/BottomSheetModal.utils.js.map +1 -0
  25. package/lib/commonjs/components/UIComponents/StreamBottomSheetModalFlatList.js +9 -5
  26. package/lib/commonjs/components/UIComponents/StreamBottomSheetModalFlatList.js.map +1 -1
  27. package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js +1 -1
  28. package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js.map +1 -1
  29. package/lib/commonjs/contexts/bottomSheetContext/BottomSheetContext.js.map +1 -1
  30. package/lib/commonjs/contexts/messageComposerContext/MessageComposerContext.js +4 -4
  31. package/lib/commonjs/contexts/messageComposerContext/MessageComposerContext.js.map +1 -1
  32. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  33. package/lib/commonjs/hooks/messagePreview/useMessagePreviewText.js +4 -4
  34. package/lib/commonjs/hooks/messagePreview/useMessagePreviewText.js.map +1 -1
  35. package/lib/commonjs/version.json +1 -1
  36. package/lib/module/components/Channel/Channel.js +1 -1
  37. package/lib/module/components/Channel/Channel.js.map +1 -1
  38. package/lib/module/components/ChannelList/hooks/useChannelActionItems.js +0 -15
  39. package/lib/module/components/ChannelList/hooks/useChannelActionItems.js.map +1 -1
  40. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js +14 -12
  41. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  42. package/lib/module/components/ChannelPreview/ChannelPreviewView.js +1 -0
  43. package/lib/module/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  44. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +11 -9
  45. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  46. package/lib/module/components/Message/Message.js +2 -1
  47. package/lib/module/components/Message/Message.js.map +1 -1
  48. package/lib/module/components/Message/MessageItemView/MessageItemView.js +7 -3
  49. package/lib/module/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  50. package/lib/module/components/Message/hooks/useCreateMessageContext.js +3 -1
  51. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  52. package/lib/module/components/MessageMenu/MessageUserReactions.js +0 -1
  53. package/lib/module/components/MessageMenu/MessageUserReactions.js.map +1 -1
  54. package/lib/module/components/Poll/components/PollInputDialog.js +1 -1
  55. package/lib/module/components/Poll/components/PollInputDialog.js.map +1 -1
  56. package/lib/module/components/UIComponents/BottomSheetModal.js +141 -40
  57. package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
  58. package/lib/module/components/UIComponents/BottomSheetModal.utils.js +53 -0
  59. package/lib/module/components/UIComponents/BottomSheetModal.utils.js.map +1 -0
  60. package/lib/module/components/UIComponents/StreamBottomSheetModalFlatList.js +9 -5
  61. package/lib/module/components/UIComponents/StreamBottomSheetModalFlatList.js.map +1 -1
  62. package/lib/module/components/ui/Avatar/ChannelAvatar.js +1 -1
  63. package/lib/module/components/ui/Avatar/ChannelAvatar.js.map +1 -1
  64. package/lib/module/contexts/bottomSheetContext/BottomSheetContext.js.map +1 -1
  65. package/lib/module/contexts/messageComposerContext/MessageComposerContext.js +4 -4
  66. package/lib/module/contexts/messageComposerContext/MessageComposerContext.js.map +1 -1
  67. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  68. package/lib/module/hooks/messagePreview/useMessagePreviewText.js +4 -4
  69. package/lib/module/hooks/messagePreview/useMessagePreviewText.js.map +1 -1
  70. package/lib/module/version.json +1 -1
  71. package/lib/typescript/components/ChannelList/hooks/useChannelActionItems.d.ts.map +1 -1
  72. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts +2 -2
  73. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts.map +1 -1
  74. package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts +1 -1
  75. package/lib/typescript/components/ChannelPreview/ChannelPreviewStatus.d.ts.map +1 -1
  76. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts +2 -2
  77. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts.map +1 -1
  78. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts +3 -3
  79. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
  80. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  81. package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts +1 -1
  82. package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts.map +1 -1
  83. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  84. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  85. package/lib/typescript/components/MessageMenu/MessageUserReactions.d.ts.map +1 -1
  86. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts +5 -1
  87. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
  88. package/lib/typescript/components/UIComponents/BottomSheetModal.utils.d.ts +28 -0
  89. package/lib/typescript/components/UIComponents/BottomSheetModal.utils.d.ts.map +1 -0
  90. package/lib/typescript/components/UIComponents/StreamBottomSheetModalFlatList.d.ts.map +1 -1
  91. package/lib/typescript/components/ui/Avatar/ChannelAvatar.d.ts.map +1 -1
  92. package/lib/typescript/contexts/bottomSheetContext/BottomSheetContext.d.ts +1 -0
  93. package/lib/typescript/contexts/bottomSheetContext/BottomSheetContext.d.ts.map +1 -1
  94. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +4 -2
  95. package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
  96. package/lib/typescript/hooks/messagePreview/useMessagePreviewText.d.ts.map +1 -1
  97. package/package.json +1 -1
  98. package/src/components/Channel/Channel.tsx +1 -1
  99. package/src/components/ChannelList/hooks/__tests__/useChannelActionItems.test.tsx +12 -45
  100. package/src/components/ChannelList/hooks/useChannelActionItems.tsx +1 -19
  101. package/src/components/ChannelPreview/ChannelDetailsBottomSheet.tsx +9 -7
  102. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +1 -1
  103. package/src/components/ChannelPreview/ChannelPreviewView.tsx +3 -2
  104. package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +8 -7
  105. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +1 -1
  106. package/src/components/ChannelPreview/__tests__/ChannelLastMessagePreview.test.tsx +32 -0
  107. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +5 -2
  108. package/src/components/Message/Message.tsx +2 -1
  109. package/src/components/Message/MessageItemView/MessageItemView.tsx +8 -3
  110. package/src/components/Message/MessageItemView/__tests__/MessageContent.test.js +28 -0
  111. package/src/components/Message/MessageItemView/__tests__/MessageItemView.test.js +32 -1
  112. package/src/components/Message/hooks/useCreateMessageContext.ts +3 -0
  113. package/src/components/MessageMenu/MessageUserReactions.tsx +1 -5
  114. package/src/components/Poll/components/PollInputDialog.tsx +1 -1
  115. package/src/components/UIComponents/BottomSheetModal.tsx +237 -53
  116. package/src/components/UIComponents/BottomSheetModal.utils.ts +82 -0
  117. package/src/components/UIComponents/StreamBottomSheetModalFlatList.tsx +14 -5
  118. package/src/components/UIComponents/__tests__/BottomSheetModal.utils.test.ts +111 -0
  119. package/src/components/ui/Avatar/ChannelAvatar.tsx +5 -1
  120. package/src/contexts/bottomSheetContext/BottomSheetContext.tsx +1 -0
  121. package/src/contexts/messageComposerContext/MessageComposerContext.tsx +1 -1
  122. package/src/contexts/messageContext/MessageContext.tsx +4 -2
  123. package/src/hooks/messagePreview/useMessagePreviewText.tsx +5 -6
  124. package/src/version.json +1 -1
@@ -0,0 +1,111 @@
1
+ import {
2
+ BOTTOM_SHEET_HANDLE_TOTAL_HEIGHT,
3
+ getBottomSheetBaseHeight,
4
+ getBottomSheetSnapPointTranslateY,
5
+ getBottomSheetSnapPoints,
6
+ getBottomSheetTopSnapIndex,
7
+ } from '../BottomSheetModal.utils';
8
+
9
+ describe('BottomSheetModal.utils', () => {
10
+ it('caps fixed bottom sheet height by maxHeight', () => {
11
+ expect(
12
+ getBottomSheetBaseHeight({
13
+ contentHeight: undefined,
14
+ enableDynamicSizing: false,
15
+ height: 500,
16
+ maxHeight: 420,
17
+ }),
18
+ ).toBe(420);
19
+ });
20
+
21
+ it('uses measured content height plus handle and safe area when dynamic sizing is enabled', () => {
22
+ expect(
23
+ getBottomSheetBaseHeight({
24
+ contentHeight: 120,
25
+ enableDynamicSizing: true,
26
+ height: 400,
27
+ maxHeight: 500,
28
+ }),
29
+ ).toBe(120 + BOTTOM_SHEET_HANDLE_TOTAL_HEIGHT);
30
+ });
31
+
32
+ it('caps dynamic content height by the provided height', () => {
33
+ expect(
34
+ getBottomSheetBaseHeight({
35
+ contentHeight: 500,
36
+ enableDynamicSizing: true,
37
+ height: 300,
38
+ maxHeight: 600,
39
+ }),
40
+ ).toBe(300);
41
+ });
42
+
43
+ it('keeps the expanded snap point when the sheet is shorter than maxHeight', () => {
44
+ expect(
45
+ getBottomSheetSnapPoints({
46
+ baseHeight: 280,
47
+ maxHeight: 640,
48
+ }),
49
+ ).toEqual([280, 640]);
50
+ });
51
+
52
+ it('returns two snap points for fixed sizing when maxHeight exceeds baseHeight', () => {
53
+ expect(
54
+ getBottomSheetSnapPoints({
55
+ baseHeight: 280,
56
+ maxHeight: 640,
57
+ }),
58
+ ).toEqual([280, 640]);
59
+ });
60
+
61
+ it('returns a single snap point when the sheet is already at maxHeight', () => {
62
+ expect(
63
+ getBottomSheetSnapPoints({
64
+ baseHeight: 640,
65
+ maxHeight: 640,
66
+ }),
67
+ ).toEqual([640]);
68
+ });
69
+
70
+ it('returns the correct top snap index', () => {
71
+ expect(
72
+ getBottomSheetTopSnapIndex({
73
+ baseHeight: 280,
74
+ maxHeight: 640,
75
+ }),
76
+ ).toBe(1);
77
+
78
+ expect(
79
+ getBottomSheetTopSnapIndex({
80
+ baseHeight: 640,
81
+ maxHeight: 640,
82
+ }),
83
+ ).toBe(0);
84
+ });
85
+
86
+ it('returns the correct translateY for each snap point', () => {
87
+ expect(
88
+ getBottomSheetSnapPointTranslateY({
89
+ baseHeight: 280,
90
+ maxHeight: 640,
91
+ snapIndex: 0,
92
+ }),
93
+ ).toBe(360);
94
+
95
+ expect(
96
+ getBottomSheetSnapPointTranslateY({
97
+ baseHeight: 280,
98
+ maxHeight: 640,
99
+ snapIndex: 1,
100
+ }),
101
+ ).toBe(0);
102
+
103
+ expect(
104
+ getBottomSheetSnapPointTranslateY({
105
+ baseHeight: 640,
106
+ maxHeight: 640,
107
+ snapIndex: 0,
108
+ }),
109
+ ).toBe(0);
110
+ });
111
+ });
@@ -58,7 +58,11 @@ export const ChannelAvatar = (props: ChannelAvatarProps) => {
58
58
 
59
59
  if (usersWithoutSelf.length > 1) {
60
60
  return (
61
- <UserAvatarGroup size='xl' users={usersForGroup} showOnlineIndicator={showOnlineIndicator} />
61
+ <UserAvatarGroup
62
+ size={size}
63
+ users={usersForGroup}
64
+ showOnlineIndicator={showOnlineIndicator}
65
+ />
62
66
  );
63
67
  } else {
64
68
  return (
@@ -8,6 +8,7 @@ import { isTestEnvironment } from '../utils/isTestEnvironment';
8
8
  export type BottomSheetContextValue = {
9
9
  close: (closeAnimationFinishedCallback?: () => void) => void;
10
10
  currentSnapIndex: SharedValue<number>;
11
+ topSnapIndex: SharedValue<number>;
11
12
  };
12
13
 
13
14
  export const BottomSheetContext = React.createContext(
@@ -8,7 +8,7 @@ import {
8
8
  } from './MessageComposerAPIContext';
9
9
 
10
10
  import { ChannelProps } from '../../components';
11
- import { useStableCallback } from '../../hooks';
11
+ import { useStableCallback } from '../../hooks/useStableCallback';
12
12
  import { useCreateMessageComposer } from '../messageInputContext/hooks/useCreateMessageComposer';
13
13
  import { ThreadContextValue } from '../threadContext/ThreadContext';
14
14
  import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
@@ -4,7 +4,7 @@ import type { View } from 'react-native';
4
4
  import type { Attachment, LocalMessage } from 'stream-chat';
5
5
 
6
6
  import type { ActionHandler } from '../../components/Attachment/Attachment';
7
- import { ReactionSummary } from '../../components/Message/hooks/useProcessReactions';
7
+ import type { ReactionSummary } from '../../components/Message/hooks/useProcessReactions';
8
8
  import type {
9
9
  MessagePressableHandlerPayload,
10
10
  PressableHandlerPayload,
@@ -15,7 +15,7 @@ import type { MessageContentType } from '../../contexts/messagesContext/Messages
15
15
  import type { DeepPartial } from '../../contexts/themeContext/ThemeContext';
16
16
  import type { Theme } from '../../contexts/themeContext/utils/theme';
17
17
 
18
- import { MessageComposerAPIContextValue } from '../messageComposerContext/MessageComposerAPIContext';
18
+ import type { MessageComposerAPIContextValue } from '../messageComposerContext/MessageComposerAPIContext';
19
19
  import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
20
20
 
21
21
  export type Alignment = 'right' | 'left';
@@ -40,6 +40,8 @@ export type MessageContextValue = {
40
40
  groupStyles: GroupType[];
41
41
  /** Handler for actions. Actions in combination with attachments can be used to build [commands](https://getstream.io/chat/docs/#channel_commands). */
42
42
  handleAction: ActionHandler;
43
+ /** Whether or not any message attachment exposes actions. */
44
+ hasAttachmentActions: boolean;
43
45
  handleToggleReaction: (reactionType: string) => Promise<void>;
44
46
  /** Whether or not message has reactions */
45
47
  hasReactions: boolean;
@@ -35,7 +35,6 @@ export const useMessagePreviewText = ({
35
35
  const onlyAudio = audios?.length === attachmentsLength;
36
36
  const onlyVoiceRecordings =
37
37
  voiceRecordings?.length && voiceRecordings?.length === attachmentsLength;
38
-
39
38
  if (message?.type === 'deleted') {
40
39
  return 'Message deleted';
41
40
  }
@@ -55,8 +54,12 @@ export const useMessagePreviewText = ({
55
54
  return 'Location';
56
55
  }
57
56
 
57
+ if (giphys?.length) {
58
+ return 'Giphy';
59
+ }
60
+
58
61
  if (message?.text) {
59
- return message?.text;
62
+ return message.text;
60
63
  }
61
64
 
62
65
  if (onlyImages) {
@@ -91,10 +94,6 @@ export const useMessagePreviewText = ({
91
94
  }
92
95
  }
93
96
 
94
- if (giphys?.length) {
95
- return 'Giphy';
96
- }
97
-
98
97
  if (onlyFiles && files?.length === 1) {
99
98
  return files?.[0]?.title;
100
99
  }
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "9.0.0-beta.27"
2
+ "version": "9.0.0-beta.28"
3
3
  }