stream-chat-react-native-core 9.0.1-beta.2 → 9.0.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +2 -0
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +3 -1
  4. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  5. package/lib/commonjs/components/Message/Message.js +99 -74
  6. package/lib/commonjs/components/Message/Message.js.map +1 -1
  7. package/lib/commonjs/components/Message/MessageOverlayWrapper.js +64 -0
  8. package/lib/commonjs/components/Message/MessageOverlayWrapper.js.map +1 -0
  9. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +5 -1
  10. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  11. package/lib/commonjs/components/Message/hooks/useShouldUseOverlayStyles.js +8 -1
  12. package/lib/commonjs/components/Message/hooks/useShouldUseOverlayStyles.js.map +1 -1
  13. package/lib/commonjs/components/Message/messageOverlayConstants.js +6 -0
  14. package/lib/commonjs/components/Message/messageOverlayConstants.js.map +1 -0
  15. package/lib/commonjs/components/index.js +11 -0
  16. package/lib/commonjs/components/index.js.map +1 -1
  17. package/lib/commonjs/contexts/messageContext/MessageContext.js +32 -1
  18. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  19. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  20. package/lib/commonjs/version.json +1 -1
  21. package/lib/module/components/Channel/Channel.js +2 -0
  22. package/lib/module/components/Channel/Channel.js.map +1 -1
  23. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +3 -1
  24. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  25. package/lib/module/components/Message/Message.js +99 -74
  26. package/lib/module/components/Message/Message.js.map +1 -1
  27. package/lib/module/components/Message/MessageOverlayWrapper.js +64 -0
  28. package/lib/module/components/Message/MessageOverlayWrapper.js.map +1 -0
  29. package/lib/module/components/Message/hooks/useCreateMessageContext.js +5 -1
  30. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  31. package/lib/module/components/Message/hooks/useShouldUseOverlayStyles.js +8 -1
  32. package/lib/module/components/Message/hooks/useShouldUseOverlayStyles.js.map +1 -1
  33. package/lib/module/components/Message/messageOverlayConstants.js +6 -0
  34. package/lib/module/components/Message/messageOverlayConstants.js.map +1 -0
  35. package/lib/module/components/index.js +11 -0
  36. package/lib/module/components/index.js.map +1 -1
  37. package/lib/module/contexts/messageContext/MessageContext.js +32 -1
  38. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  39. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  40. package/lib/module/version.json +1 -1
  41. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  42. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  43. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  44. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
  45. package/lib/typescript/components/Message/Message.d.ts +1 -1
  46. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  47. package/lib/typescript/components/Message/MessageOverlayWrapper.d.ts +18 -0
  48. package/lib/typescript/components/Message/MessageOverlayWrapper.d.ts.map +1 -0
  49. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  50. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  51. package/lib/typescript/components/Message/hooks/useShouldUseOverlayStyles.d.ts.map +1 -1
  52. package/lib/typescript/components/Message/messageOverlayConstants.d.ts +2 -0
  53. package/lib/typescript/components/Message/messageOverlayConstants.d.ts.map +1 -0
  54. package/lib/typescript/components/index.d.ts +1 -0
  55. package/lib/typescript/components/index.d.ts.map +1 -1
  56. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +26 -0
  57. package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
  58. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +5 -0
  59. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
  60. package/package.json +2 -2
  61. package/src/components/Channel/Channel.tsx +3 -0
  62. package/src/components/Channel/hooks/useCreateMessagesContext.ts +3 -0
  63. package/src/components/Message/Message.tsx +109 -77
  64. package/src/components/Message/MessageItemView/__tests__/Message.test.js +87 -7
  65. package/src/components/Message/MessageOverlayWrapper.tsx +81 -0
  66. package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +17 -2
  67. package/src/components/Message/hooks/useCreateMessageContext.ts +5 -0
  68. package/src/components/Message/hooks/useShouldUseOverlayStyles.ts +15 -2
  69. package/src/components/Message/messageOverlayConstants.ts +1 -0
  70. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +12 -4
  71. package/src/components/index.ts +1 -0
  72. package/src/contexts/messageContext/MessageContext.tsx +44 -0
  73. package/src/contexts/messagesContext/MessagesContext.tsx +5 -0
  74. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import type { ChannelContextValue } from '../../contexts/channelContext/ChannelC
9
9
  import type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';
10
10
  import type { DeepPartial } from '../../contexts/themeContext/ThemeContext';
11
11
  import type { Theme } from '../../contexts/themeContext/utils/theme';
12
+ import type { Rect } from '../../state-store/message-overlay-store';
12
13
  import type { MessageComposerAPIContextValue } from '../messageComposerContext/MessageComposerAPIContext';
13
14
  export type Alignment = 'right' | 'left';
14
15
  export type MessageContextValue = {
@@ -91,6 +92,15 @@ export type MessageContextValue = {
91
92
  onPressIn: ((payload: PressableHandlerPayload) => void) | null;
92
93
  /** The images attached to a message */
93
94
  otherAttachments: Attachment[];
95
+ /**
96
+ * Registers the subtree that should be measured and portaled into the message overlay.
97
+ * Custom message renderers typically interact with this via `MessageOverlayWrapper`.
98
+ */
99
+ registerMessageOverlayTarget: (params: {
100
+ id: string;
101
+ view: View | null;
102
+ }) => void;
103
+ unregisterMessageOverlayTarget: (id: string) => void;
94
104
  reactions: ReactionSummary[];
95
105
  /** Read count of the message */
96
106
  readBy: number | boolean;
@@ -138,4 +148,20 @@ export declare const MessageProvider: ({ children, value, }: PropsWithChildren<{
138
148
  value?: MessageContextValue;
139
149
  }>) => React.JSX.Element;
140
150
  export declare const useMessageContext: () => MessageContextValue;
151
+ type MessageOverlayRuntimeContextValue = {
152
+ overlayTargetRectRef: {
153
+ current: Rect;
154
+ };
155
+ messageOverlayTargetId: string;
156
+ overlayActive: boolean;
157
+ };
158
+ export declare const MessageOverlayRuntimeProvider: ({ children, value, }: PropsWithChildren<{
159
+ value: MessageOverlayRuntimeContextValue;
160
+ }>) => React.JSX.Element;
161
+ export declare const useMessageOverlayRuntimeContext: () => MessageOverlayRuntimeContextValue;
162
+ export declare const MessageOverlayTargetProvider: ({ children, value, }: PropsWithChildren<{
163
+ value: boolean;
164
+ }>) => React.JSX.Element;
165
+ export declare const useMessageOverlayTargetContext: () => boolean;
166
+ export {};
141
167
  //# sourceMappingURL=MessageContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContext.d.ts","sourceRoot":"","sources":["../../../../src/contexts/messageContext/MessageContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageContext.d.ts","sourceRoot":"","sources":["../../../../src/contexts/messageContext/MessageContext.tsx"],"names":[],"mappings":"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"}
@@ -37,6 +37,11 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
37
37
  initialScrollToFirstUnreadMessage: boolean;
38
38
  /** Order to render the message content */
39
39
  messageContentOrder: MessageContentType[];
40
+ /**
41
+ * Overlay target id that should be teleported when a message overlay opens.
42
+ * Custom `MessageOverlayWrapper` usages should pass a matching `targetId`.
43
+ */
44
+ messageOverlayTargetId?: string;
40
45
  removeMessage: (message: {
41
46
  id: string;
42
47
  parent_id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MessagesContext.d.ts","sourceRoot":"","sources":["../../../../src/contexts/messagesContext/MessagesContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagesContext.d.ts","sourceRoot":"","sources":["../../../../src/contexts/messagesContext/MessagesContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACzB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAKzD,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,OAAO,GACP,SAAS,GACT,cAAc,GACd,MAAM,GACN,SAAS,GACT,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG;IAErF,aAAa,EAAE,CACb,OAAO,EAAE,YAAY,EACrB,mBAAmB,CAAC,EAAE,OAAO,GAAG,oBAAoB,KACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,4DAA4D;IAC5D,6BAA6B,EAAE,OAAO,CAAC;IAEvC,2BAA2B,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,cAAc,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,QAAQ,EAAE,OAAO,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC;IACrD;;SAEK;IACL,YAAY,EAAE,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD;;OAEG;IACH,iCAAiC,EAAE,OAAO,CAAC;IAC3C,0CAA0C;IAC1C,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E;;OAEG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,EAAE,CACb,cAAc,EAAE,eAAe,GAAG,YAAY,EAC9C,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;KAClD,EACD,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;IACV;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAEzD;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,EAC1B,OAAO,EACP,OAAO,GACR,EAAE;QACD,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,YAAY,CAAC;KACvB,KAAK,IAAI,CAAC;IAEX,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAEzC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,UAAU,EAAE,CAAC;IAC1E;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,8DAA8D;IAC9D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,+DAA+D;IAC/D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,8DAA8D;IAC9D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,2DAA2D;IAC3D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACzE,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,oCAAoC;IACpC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,uDAAuD;IACvD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,KAAK,OAAO,CAAC;IACxF,+HAA+H;IAC/H,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,iBAAiB,EAAE,CAAC;IAEtE;;OAEG;IACH,0BAA0B,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClD;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,IAAI,CAAC;IACvE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,IAAI,CAAC;IACrE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAExC;;OAEG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAE7C;;;;SAIK;IACL,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,YAAY,EAAE,CAAC;IAEpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,qCAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,sBAG9B,iBAAiB,CAAC;IACnB,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,CAAC,sBAID,CAAC;AAEF,eAAO,MAAM,kBAAkB,4BAU9B,CAAC"}
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": "9.0.1-beta.2",
4
+ "version": "9.0.1-beta.4",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -82,7 +82,7 @@
82
82
  "path": "0.12.7",
83
83
  "react-native-markdown-package": "1.8.2",
84
84
  "react-native-url-polyfill": "^2.0.0",
85
- "stream-chat": "^9.40.0",
85
+ "stream-chat": "^9.41.1",
86
86
  "use-sync-external-store": "^1.5.0"
87
87
  },
88
88
  "peerDependencies": {
@@ -261,6 +261,7 @@ export type ChannelPropsWithContext = Pick<ChannelContextValue, 'channel'> &
261
261
  | 'markdownRules'
262
262
  | 'messageActions'
263
263
  | 'messageContentOrder'
264
+ | 'messageOverlayTargetId'
264
265
  | 'messageTextNumberOfLines'
265
266
  | 'messageSwipeToReplyHitSlop'
266
267
  | 'myMessageTheme'
@@ -464,6 +465,7 @@ const ChannelWithContext = (props: PropsWithChildren<ChannelPropsWithContext>) =
464
465
  'text',
465
466
  'location',
466
467
  ],
468
+ messageOverlayTargetId,
467
469
  messageInputFloating = false,
468
470
  messageId,
469
471
  messageSwipeToReplyHitSlop,
@@ -1665,6 +1667,7 @@ const ChannelWithContext = (props: PropsWithChildren<ChannelPropsWithContext>) =
1665
1667
  markdownRules,
1666
1668
  messageActions,
1667
1669
  messageContentOrder,
1670
+ messageOverlayTargetId,
1668
1671
  messageSwipeToReplyHitSlop,
1669
1672
  messageTextNumberOfLines,
1670
1673
  myMessageTheme,
@@ -37,6 +37,7 @@ export const useCreateMessagesContext = ({
37
37
  markdownRules,
38
38
  messageActions,
39
39
  messageContentOrder,
40
+ messageOverlayTargetId,
40
41
  messageSwipeToReplyHitSlop,
41
42
  messageTextNumberOfLines,
42
43
  myMessageTheme,
@@ -100,6 +101,7 @@ export const useCreateMessagesContext = ({
100
101
  markdownRules,
101
102
  messageActions,
102
103
  messageContentOrder,
104
+ messageOverlayTargetId,
103
105
  messageSwipeToReplyHitSlop,
104
106
  messageTextNumberOfLines,
105
107
  myMessageTheme,
@@ -127,6 +129,7 @@ export const useCreateMessagesContext = ({
127
129
  initialScrollToFirstUnreadMessage,
128
130
  markdownRulesLength,
129
131
  messageContentOrderValue,
132
+ messageOverlayTargetId,
130
133
  supportedReactionsLength,
131
134
  myMessageTheme,
132
135
  targetedMessage,
@@ -19,6 +19,8 @@ import { useMessageActions } from './hooks/useMessageActions';
19
19
  import { useMessageDeliveredData } from './hooks/useMessageDeliveryData';
20
20
  import { useMessageReadData } from './hooks/useMessageReadData';
21
21
  import { useProcessReactions } from './hooks/useProcessReactions';
22
+ import { DEFAULT_MESSAGE_OVERLAY_TARGET_ID } from './messageOverlayConstants';
23
+ import { MessageOverlayWrapper } from './MessageOverlayWrapper';
22
24
  import { measureInWindow } from './utils/measureInWindow';
23
25
  import { messageActions as defaultMessageActions } from './utils/messageActions';
24
26
 
@@ -36,7 +38,11 @@ import {
36
38
  MessageComposerAPIContextValue,
37
39
  useMessageComposerAPIContext,
38
40
  } from '../../contexts/messageComposerContext/MessageComposerAPIContext';
39
- import { MessageContextValue, MessageProvider } from '../../contexts/messageContext/MessageContext';
41
+ import {
42
+ MessageContextValue,
43
+ MessageOverlayRuntimeProvider,
44
+ MessageProvider,
45
+ } from '../../contexts/messageContext/MessageContext';
40
46
  import { useMessageListItemContext } from '../../contexts/messageListItemContext/MessageListItemContext';
41
47
  import {
42
48
  MessagesContextValue,
@@ -207,6 +213,7 @@ export type MessagePropsWithContext = Pick<
207
213
  | 'handleBlockUser'
208
214
  | 'isAttachmentEqual'
209
215
  | 'messageActions'
216
+ | 'messageOverlayTargetId'
210
217
  | 'messageContentOrder'
211
218
  | 'onLongPressMessage'
212
219
  | 'onPressInMessage'
@@ -278,6 +285,7 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
278
285
  members,
279
286
  message,
280
287
  messageActions: messageActionsProp = defaultMessageActions,
288
+ messageOverlayTargetId = DEFAULT_MESSAGE_OVERLAY_TARGET_ID,
281
289
  messageContentOrder: messageContentOrderProp,
282
290
  messagesContext,
283
291
  onLongPressMessage: onLongPressMessageProp,
@@ -323,11 +331,28 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
323
331
  const rectRef = useRef<Rect>(undefined);
324
332
  const bubbleRect = useRef<Rect>(undefined);
325
333
  const contextMenuAnchorRef = useRef<View>(null);
334
+ const messageOverlayTargetsRef = useRef<Record<string, View | null>>({});
335
+ const registerMessageOverlayTarget = useStableCallback(
336
+ ({ id, view }: { id: string; view: View | null }) => {
337
+ messageOverlayTargetsRef.current[id] = view;
338
+ },
339
+ );
340
+ const unregisterMessageOverlayTarget = useStableCallback((id: string) => {
341
+ delete messageOverlayTargetsRef.current[id];
342
+ });
326
343
 
327
344
  const showMessageOverlay = useStableCallback(async () => {
328
345
  dismissKeyboard();
329
346
  try {
330
- const layout = await measureInWindow(messageWrapperRef, insets);
347
+ const activeTargetView = messageOverlayTargetsRef.current[messageOverlayTargetId];
348
+
349
+ if (!activeTargetView) {
350
+ throw new Error(
351
+ `No message overlay target is registered for target id "${messageOverlayTargetId}".`,
352
+ );
353
+ }
354
+
355
+ const layout = await measureInWindow({ current: activeTargetView }, insets);
331
356
  const bubbleLayout = await measureInWindow(contextMenuAnchorRef, insets).catch(() => layout);
332
357
 
333
358
  rectRef.current = layout;
@@ -655,8 +680,6 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
655
680
  unpinMessage: handleTogglePinMessage,
656
681
  };
657
682
 
658
- const messageWrapperRef = useRef<View>(null);
659
-
660
683
  const onLongPress = () => {
661
684
  setNativeScrollability(false);
662
685
  if (hasAttachmentActions || isBlockedMessage(message) || !enableLongPress) {
@@ -771,6 +794,8 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
771
794
  onThreadSelect,
772
795
  otherAttachments: attachments.other,
773
796
  preventPress: overlayActive ? true : preventPress,
797
+ registerMessageOverlayTarget,
798
+ unregisterMessageOverlayTarget,
774
799
  reactions,
775
800
  readBy,
776
801
  setQuotedMessage,
@@ -781,6 +806,14 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
781
806
  threadList,
782
807
  videos: attachments.videos,
783
808
  });
809
+ const messageOverlayRuntimeContext = useMemo(
810
+ () => ({
811
+ overlayTargetRectRef: rectRef,
812
+ messageOverlayTargetId,
813
+ overlayActive,
814
+ }),
815
+ [messageOverlayTargetId, overlayActive],
816
+ );
784
817
 
785
818
  const prevActive = useRef<boolean>(overlayActive);
786
819
 
@@ -817,82 +850,74 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
817
850
 
818
851
  return (
819
852
  <MessageProvider value={messageContext}>
820
- <View style={[style, styles.wrapper]} testID='message-wrapper'>
821
- {overlayActive && rect ? (
822
- <View
823
- style={{
824
- height: rect.h,
825
- width: rect.w,
826
- }}
827
- />
828
- ) : null}
829
- {/*TODO: V9: Find a way to separate these in a dedicated file*/}
830
- <Portal hostName={overlayActive && rect ? 'top-item' : undefined}>
831
- {overlayActive && rect && overlayItemsAnchorRect ? (
832
- <View
833
- onLayout={(e) => {
834
- const { width: w, height: h } = e.nativeEvent.layout;
835
-
836
- setOverlayTopH({
837
- h,
838
- w,
839
- x:
840
- overlayItemAlignment === 'right'
841
- ? overlayItemsAnchorRect.x + overlayItemsAnchorRect.w - w
842
- : overlayItemsAnchorRect.x,
843
- y: rect.y - h,
844
- });
845
- }}
846
- >
847
- <MessageReactionPicker
848
- dismissOverlay={dismissOverlay}
849
- handleReaction={ownCapabilities.sendReaction ? handleReaction : undefined}
850
- />
851
- </View>
852
- ) : null}
853
- </Portal>
854
- <Portal
855
- hostName={overlayActive ? 'message-overlay' : undefined}
856
- style={overlayActive && rect ? { width: rect.w } : undefined}
857
- >
858
- <View ref={messageWrapperRef}>
853
+ <MessageOverlayRuntimeProvider value={messageOverlayRuntimeContext}>
854
+ <View style={[style, styles.wrapper]} testID='message-wrapper'>
855
+ {/*TODO: V9: Find a way to separate these in a dedicated file*/}
856
+ <Portal hostName={overlayActive && rect ? 'top-item' : undefined}>
857
+ {overlayActive && rect && overlayItemsAnchorRect ? (
858
+ <View
859
+ onLayout={(e) => {
860
+ const { width: w, height: h } = e.nativeEvent.layout;
861
+
862
+ setOverlayTopH({
863
+ h,
864
+ w,
865
+ x:
866
+ overlayItemAlignment === 'right'
867
+ ? overlayItemsAnchorRect.x + overlayItemsAnchorRect.w - w
868
+ : overlayItemsAnchorRect.x,
869
+ y: rect.y - h,
870
+ });
871
+ }}
872
+ >
873
+ <MessageReactionPicker
874
+ dismissOverlay={dismissOverlay}
875
+ handleReaction={ownCapabilities.sendReaction ? handleReaction : undefined}
876
+ />
877
+ </View>
878
+ ) : null}
879
+ </Portal>
880
+ <MessageOverlayWrapper targetId={DEFAULT_MESSAGE_OVERLAY_TARGET_ID}>
859
881
  <MessageItemView />
860
- </View>
861
- </Portal>
862
- {showMessageReactions ? (
863
- <BottomSheetModal
864
- lazy={true}
865
- onClose={() => setShowMessageReactions(false)}
866
- visible={showMessageReactions}
867
- height={424}
868
- >
869
- <MessageUserReactions message={message} selectedReaction={selectedReaction} />
870
- </BottomSheetModal>
871
- ) : null}
872
- <Portal hostName={overlayActive && rect ? 'bottom-item' : undefined}>
873
- {overlayActive && rect && overlayItemsAnchorRect ? (
874
- <View
875
- onLayout={(e) => {
876
- const { width: w, height: h } = e.nativeEvent.layout;
877
- setOverlayBottomH({
878
- h,
879
- w,
880
- x:
881
- overlayItemAlignment === 'right'
882
- ? overlayItemsAnchorRect.x + overlayItemsAnchorRect.w - w
883
- : overlayItemsAnchorRect.x,
884
- y: rect.y + rect.h,
885
- });
886
- }}
882
+ </MessageOverlayWrapper>
883
+ {showMessageReactions ? (
884
+ <BottomSheetModal
885
+ lazy={true}
886
+ onClose={() => setShowMessageReactions(false)}
887
+ visible={showMessageReactions}
888
+ height={424}
887
889
  >
888
- <MessageActionList dismissOverlay={dismissOverlay} messageActions={messageActions} />
889
- </View>
890
+ <MessageUserReactions message={message} selectedReaction={selectedReaction} />
891
+ </BottomSheetModal>
890
892
  ) : null}
891
- </Portal>
892
- {isBounceDialogOpen ? (
893
- <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />
894
- ) : null}
895
- </View>
893
+ <Portal hostName={overlayActive && rect ? 'bottom-item' : undefined}>
894
+ {overlayActive && rect && overlayItemsAnchorRect ? (
895
+ <View
896
+ onLayout={(e) => {
897
+ const { width: w, height: h } = e.nativeEvent.layout;
898
+ setOverlayBottomH({
899
+ h,
900
+ w,
901
+ x:
902
+ overlayItemAlignment === 'right'
903
+ ? overlayItemsAnchorRect.x + overlayItemsAnchorRect.w - w
904
+ : overlayItemsAnchorRect.x,
905
+ y: rect.y + rect.h,
906
+ });
907
+ }}
908
+ >
909
+ <MessageActionList
910
+ dismissOverlay={dismissOverlay}
911
+ messageActions={messageActions}
912
+ />
913
+ </View>
914
+ ) : null}
915
+ </Portal>
916
+ {isBounceDialogOpen ? (
917
+ <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />
918
+ ) : null}
919
+ </View>
920
+ </MessageOverlayRuntimeProvider>
896
921
  </MessageProvider>
897
922
  );
898
923
  };
@@ -905,6 +930,7 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
905
930
  groupStyles: prevGroupStyles,
906
931
  isAttachmentEqual,
907
932
  isTargetedMessage: prevIsTargetedMessage,
933
+ messageOverlayTargetId: prevMessageOverlayTargetId,
908
934
  members: prevMembers,
909
935
  message: prevMessage,
910
936
  messagesContext: prevMessagesContext,
@@ -918,6 +944,7 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
918
944
  goToMessage: nextGoToMessage,
919
945
  groupStyles: nextGroupStyles,
920
946
  isTargetedMessage: nextIsTargetedMessage,
947
+ messageOverlayTargetId: nextMessageOverlayTargetId,
921
948
  members: nextMembers,
922
949
  message: nextMessage,
923
950
  messagesContext: nextMessagesContext,
@@ -958,6 +985,11 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
958
985
  return false;
959
986
  }
960
987
 
988
+ const messageOverlayTargetIdEqual = prevMessageOverlayTargetId === nextMessageOverlayTargetId;
989
+ if (!messageOverlayTargetIdEqual) {
990
+ return false;
991
+ }
992
+
961
993
  const messageEqual = checkMessageEquality(prevMessage, nextMessage);
962
994
 
963
995
  if (!messageEqual) {
@@ -1,9 +1,13 @@
1
1
  import React from 'react';
2
2
 
3
+ import { Pressable, Text, View } from 'react-native';
3
4
  import { SafeAreaProvider } from 'react-native-safe-area-context';
4
5
 
5
6
  import { cleanup, fireEvent, render, waitFor } from '@testing-library/react-native';
6
7
 
8
+ import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
9
+ import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
10
+ import { MessageListItemProvider } from '../../../../contexts/messageListItemContext/MessageListItemContext';
7
11
  import { OverlayProvider } from '../../../../contexts/overlayContext/OverlayProvider';
8
12
  import { getOrCreateChannelApi } from '../../../../mock-builders/api/getOrCreateChannel';
9
13
 
@@ -16,7 +20,38 @@ import { getTestClientWithUser } from '../../../../mock-builders/mock';
16
20
  import { Channel } from '../../../Channel/Channel';
17
21
  import { Chat } from '../../../Chat/Chat';
18
22
  import { MessageComposer } from '../../../MessageInput/MessageComposer';
23
+ import { useShouldUseOverlayStyles } from '../../hooks/useShouldUseOverlayStyles';
19
24
  import { Message } from '../../Message';
25
+ import { MessageOverlayWrapper } from '../../MessageOverlayWrapper';
26
+
27
+ const OverlayStateText = ({ label }) => {
28
+ const shouldUseOverlayStyles = useShouldUseOverlayStyles();
29
+
30
+ return <Text>{`${label}:${shouldUseOverlayStyles ? 'overlay' : 'normal'}`}</Text>;
31
+ };
32
+
33
+ const OverlayTrigger = () => {
34
+ const { onLongPress } = useMessageContext();
35
+
36
+ return (
37
+ <Pressable
38
+ onLongPress={() => onLongPress({ emitter: 'message' })}
39
+ testID='custom-overlay-trigger'
40
+ >
41
+ <Text>Open overlay</Text>
42
+ </Pressable>
43
+ );
44
+ };
45
+
46
+ const CustomMessageItemView = () => (
47
+ <View testID='custom-message-item-view'>
48
+ <OverlayStateText label='outside' />
49
+ <MessageOverlayWrapper targetId='custom-overlay-target' testID='custom-overlay-target'>
50
+ <OverlayStateText label='inside' />
51
+ <OverlayTrigger />
52
+ </MessageOverlayWrapper>
53
+ </View>
54
+ );
20
55
 
21
56
  describe('Message', () => {
22
57
  let channel;
@@ -37,16 +72,34 @@ describe('Message', () => {
37
72
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
38
73
  channel = chatClient.channel('messaging', mockedChannel.id);
39
74
 
40
- renderMessage = (options) =>
75
+ renderMessage = (options, channelProps, componentOverrides) =>
41
76
  render(
42
77
  <SafeAreaProvider>
43
78
  <OverlayProvider>
44
- <Chat client={chatClient}>
45
- <Channel channel={channel}>
46
- <Message groupStyles={['bottom']} {...options} />
47
- <MessageComposer />
48
- </Channel>
49
- </Chat>
79
+ <MessageListItemProvider
80
+ value={{
81
+ goToMessage: jest.fn(),
82
+ modifiedTheme: {},
83
+ onThreadSelect: jest.fn(),
84
+ setNativeScrollability: jest.fn(),
85
+ }}
86
+ >
87
+ <Chat client={chatClient}>
88
+ {componentOverrides ? (
89
+ <WithComponents overrides={componentOverrides}>
90
+ <Channel channel={channel} {...channelProps}>
91
+ <Message groupStyles={['bottom']} {...options} />
92
+ <MessageComposer />
93
+ </Channel>
94
+ </WithComponents>
95
+ ) : (
96
+ <Channel channel={channel} {...channelProps}>
97
+ <Message groupStyles={['bottom']} {...options} />
98
+ <MessageComposer />
99
+ </Channel>
100
+ )}
101
+ </Chat>
102
+ </MessageListItemProvider>
50
103
  </OverlayProvider>
51
104
  </SafeAreaProvider>,
52
105
  );
@@ -88,4 +141,31 @@ describe('Message', () => {
88
141
  expect(onLongPressMessage).toHaveBeenCalledTimes(1);
89
142
  });
90
143
  });
144
+
145
+ it('teleports a custom overlay target without applying overlay styles to siblings', async () => {
146
+ const message = generateMessage({ user });
147
+ const { getByTestId, getByText } = renderMessage(
148
+ { message },
149
+ {
150
+ messageOverlayTargetId: 'custom-overlay-target',
151
+ },
152
+ {
153
+ MessageItemView: CustomMessageItemView,
154
+ },
155
+ );
156
+
157
+ await waitFor(() => {
158
+ expect(getByTestId('custom-message-item-view')).toBeTruthy();
159
+ expect(getByText('outside:normal')).toBeTruthy();
160
+ expect(getByText('inside:normal')).toBeTruthy();
161
+ });
162
+
163
+ fireEvent(getByTestId('custom-overlay-trigger'), 'longPress');
164
+
165
+ await waitFor(() => {
166
+ expect(getByText('outside:normal')).toBeTruthy();
167
+ expect(getByText('inside:overlay')).toBeTruthy();
168
+ expect(getByTestId('custom-overlay-target-placeholder')).toBeTruthy();
169
+ });
170
+ });
91
171
  });