stream-chat-react-native-core 9.0.1-beta.1 → 9.0.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 (102) 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 -11
  16. package/lib/commonjs/components/index.js.map +1 -1
  17. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +0 -2
  18. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  19. package/lib/commonjs/contexts/messageContext/MessageContext.js +32 -1
  20. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  21. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  22. package/lib/commonjs/hooks/index.js +4 -4
  23. package/lib/commonjs/hooks/index.js.map +1 -1
  24. package/lib/commonjs/version.json +1 -1
  25. package/lib/module/components/Channel/Channel.js +2 -0
  26. package/lib/module/components/Channel/Channel.js.map +1 -1
  27. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +3 -1
  28. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  29. package/lib/module/components/Message/Message.js +99 -74
  30. package/lib/module/components/Message/Message.js.map +1 -1
  31. package/lib/module/components/Message/MessageOverlayWrapper.js +64 -0
  32. package/lib/module/components/Message/MessageOverlayWrapper.js.map +1 -0
  33. package/lib/module/components/Message/hooks/useCreateMessageContext.js +5 -1
  34. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  35. package/lib/module/components/Message/hooks/useShouldUseOverlayStyles.js +8 -1
  36. package/lib/module/components/Message/hooks/useShouldUseOverlayStyles.js.map +1 -1
  37. package/lib/module/components/Message/messageOverlayConstants.js +6 -0
  38. package/lib/module/components/Message/messageOverlayConstants.js.map +1 -0
  39. package/lib/module/components/index.js +11 -11
  40. package/lib/module/components/index.js.map +1 -1
  41. package/lib/module/contexts/componentsContext/defaultComponents.js +0 -2
  42. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  43. package/lib/module/contexts/messageContext/MessageContext.js +32 -1
  44. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  45. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  46. package/lib/module/hooks/index.js +4 -4
  47. package/lib/module/hooks/index.js.map +1 -1
  48. package/lib/module/version.json +1 -1
  49. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  50. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  51. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  52. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
  53. package/lib/typescript/components/Message/Message.d.ts +1 -1
  54. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  55. package/lib/typescript/components/Message/MessageOverlayWrapper.d.ts +18 -0
  56. package/lib/typescript/components/Message/MessageOverlayWrapper.d.ts.map +1 -0
  57. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  58. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  59. package/lib/typescript/components/Message/hooks/useShouldUseOverlayStyles.d.ts.map +1 -1
  60. package/lib/typescript/components/Message/messageOverlayConstants.d.ts +2 -0
  61. package/lib/typescript/components/Message/messageOverlayConstants.d.ts.map +1 -0
  62. package/lib/typescript/components/index.d.ts +1 -1
  63. package/lib/typescript/components/index.d.ts.map +1 -1
  64. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +0 -1
  65. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  66. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +26 -0
  67. package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
  68. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +5 -0
  69. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
  70. package/lib/typescript/hooks/index.d.ts +1 -1
  71. package/lib/typescript/hooks/index.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/src/components/Channel/Channel.tsx +3 -0
  74. package/src/components/Channel/hooks/useCreateMessagesContext.ts +3 -0
  75. package/src/components/Message/Message.tsx +109 -77
  76. package/src/components/Message/MessageItemView/__tests__/Message.test.js +87 -7
  77. package/src/components/Message/MessageOverlayWrapper.tsx +81 -0
  78. package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +17 -2
  79. package/src/components/Message/hooks/useCreateMessageContext.ts +5 -0
  80. package/src/components/Message/hooks/useShouldUseOverlayStyles.ts +15 -2
  81. package/src/components/Message/messageOverlayConstants.ts +1 -0
  82. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +12 -4
  83. package/src/components/index.ts +1 -1
  84. package/src/contexts/componentsContext/defaultComponents.ts +0 -2
  85. package/src/contexts/messageContext/MessageContext.tsx +44 -0
  86. package/src/contexts/messagesContext/MessagesContext.tsx +5 -0
  87. package/src/hooks/index.ts +1 -1
  88. package/src/version.json +1 -1
  89. package/lib/commonjs/components/MessageMenu/MessageMenu.js +0 -29
  90. package/lib/commonjs/components/MessageMenu/MessageMenu.js.map +0 -1
  91. package/lib/commonjs/hooks/useAudioPlayerControl.js +0 -43
  92. package/lib/commonjs/hooks/useAudioPlayerControl.js.map +0 -1
  93. package/lib/module/components/MessageMenu/MessageMenu.js +0 -29
  94. package/lib/module/components/MessageMenu/MessageMenu.js.map +0 -1
  95. package/lib/module/hooks/useAudioPlayerControl.js +0 -43
  96. package/lib/module/hooks/useAudioPlayerControl.js.map +0 -1
  97. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts +0 -40
  98. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts.map +0 -1
  99. package/lib/typescript/hooks/useAudioPlayerControl.d.ts +0 -18
  100. package/lib/typescript/hooks/useAudioPlayerControl.d.ts.map +0 -1
  101. package/src/components/MessageMenu/MessageMenu.tsx +0 -107
  102. package/src/hooks/useAudioPlayerControl.ts +0 -59
@@ -9,11 +9,13 @@ import type {
9
9
  MessagePressableHandlerPayload,
10
10
  PressableHandlerPayload,
11
11
  } from '../../components/Message/Message';
12
+ import { DEFAULT_MESSAGE_OVERLAY_TARGET_ID } from '../../components/Message/messageOverlayConstants';
12
13
  import type { GroupType } from '../../components/MessageList/hooks/useMessageList';
13
14
  import type { ChannelContextValue } from '../../contexts/channelContext/ChannelContext';
14
15
  import type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';
15
16
  import type { DeepPartial } from '../../contexts/themeContext/ThemeContext';
16
17
  import type { Theme } from '../../contexts/themeContext/utils/theme';
18
+ import type { Rect } from '../../state-store/message-overlay-store';
17
19
 
18
20
  import type { MessageComposerAPIContextValue } from '../messageComposerContext/MessageComposerAPIContext';
19
21
  import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
@@ -100,6 +102,12 @@ export type MessageContextValue = {
100
102
  onPressIn: ((payload: PressableHandlerPayload) => void) | null;
101
103
  /** The images attached to a message */
102
104
  otherAttachments: Attachment[];
105
+ /**
106
+ * Registers the subtree that should be measured and portaled into the message overlay.
107
+ * Custom message renderers typically interact with this via `MessageOverlayWrapper`.
108
+ */
109
+ registerMessageOverlayTarget: (params: { id: string; view: View | null }) => void;
110
+ unregisterMessageOverlayTarget: (id: string) => void;
103
111
  reactions: ReactionSummary[];
104
112
  /** Read count of the message */
105
113
  readBy: number | boolean;
@@ -164,3 +172,39 @@ export const useMessageContext = () => {
164
172
 
165
173
  return contextValue;
166
174
  };
175
+
176
+ type MessageOverlayRuntimeContextValue = {
177
+ overlayTargetRectRef: { current: Rect };
178
+ messageOverlayTargetId: string;
179
+ overlayActive: boolean;
180
+ };
181
+
182
+ const MessageOverlayRuntimeContext = React.createContext<MessageOverlayRuntimeContextValue>({
183
+ overlayTargetRectRef: { current: undefined },
184
+ messageOverlayTargetId: DEFAULT_MESSAGE_OVERLAY_TARGET_ID,
185
+ overlayActive: false,
186
+ });
187
+
188
+ export const MessageOverlayRuntimeProvider = ({
189
+ children,
190
+ value,
191
+ }: PropsWithChildren<{ value: MessageOverlayRuntimeContextValue }>) => (
192
+ <MessageOverlayRuntimeContext.Provider value={value}>
193
+ {children}
194
+ </MessageOverlayRuntimeContext.Provider>
195
+ );
196
+
197
+ export const useMessageOverlayRuntimeContext = () => useContext(MessageOverlayRuntimeContext);
198
+
199
+ const MessageOverlayTargetContext = React.createContext(false);
200
+
201
+ export const MessageOverlayTargetProvider = ({
202
+ children,
203
+ value,
204
+ }: PropsWithChildren<{ value: boolean }>) => (
205
+ <MessageOverlayTargetContext.Provider value={value}>
206
+ {children}
207
+ </MessageOverlayTargetContext.Provider>
208
+ );
209
+
210
+ export const useMessageOverlayTargetContext = () => useContext(MessageOverlayTargetContext);
@@ -75,6 +75,11 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
75
75
  initialScrollToFirstUnreadMessage: boolean;
76
76
  /** Order to render the message content */
77
77
  messageContentOrder: MessageContentType[];
78
+ /**
79
+ * Overlay target id that should be teleported when a message overlay opens.
80
+ * Custom `MessageOverlayWrapper` usages should pass a matching `targetId`.
81
+ */
82
+ messageOverlayTargetId?: string;
78
83
  removeMessage: (message: { id: string; parent_id?: string }) => Promise<void>;
79
84
  /**
80
85
  * Override the api request for retry message functionality.
@@ -12,7 +12,7 @@ export * from './useClientNotifications';
12
12
  export * from './useInAppNotificationsState';
13
13
  export * from './usePortalSettledCallback';
14
14
  export * from './useRAFCoalescedValue';
15
- export * from './useAudioPlayerControl';
15
+ export * from './useAudioPlayer';
16
16
  export * from './useAttachmentPickerState';
17
17
  export * from './messagePreview/useMessageDeliveryStatus';
18
18
  export * from './messagePreview/useGroupedAttachments';
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "9.0.1-beta.1"
2
+ "version": "9.0.1-beta.3"
3
3
  }
@@ -1,29 +0,0 @@
1
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- exports.MessageMenu = void 0;
6
- var _react = _interopRequireDefault(require("react"));
7
- var _reactNative = require("react-native");
8
- var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
9
- var _BottomSheetModal = require("../UIComponents/BottomSheetModal");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- var _this = this,
12
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageMenu/MessageMenu.tsx";
13
- var MessageMenu = exports.MessageMenu = function MessageMenu(props) {
14
- var dismissOverlay = props.dismissOverlay,
15
- showMessageReactions = props.showMessageReactions,
16
- visible = props.visible,
17
- children = props.children;
18
- var _useWindowDimensions = (0, _reactNative.useWindowDimensions)(),
19
- height = _useWindowDimensions.height;
20
- var _useTheme = (0, _ThemeContext.useTheme)(),
21
- bottomSheetHeight = _useTheme.theme.messageMenu.bottomSheet.height;
22
- return (0, _jsxRuntime.jsx)(_BottomSheetModal.BottomSheetModal, {
23
- height: bottomSheetHeight ? bottomSheetHeight : !showMessageReactions ? height / 5 : height / 2,
24
- onClose: dismissOverlay,
25
- visible: visible,
26
- children: children
27
- });
28
- };
29
- //# sourceMappingURL=MessageMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_BottomSheetModal","_jsxRuntime","_this","_jsxFileName","MessageMenu","exports","props","dismissOverlay","showMessageReactions","visible","children","_useWindowDimensions","useWindowDimensions","height","_useTheme","useTheme","bottomSheetHeight","theme","messageMenu","bottomSheet","jsx","BottomSheetModal","onClose"],"sourceRoot":"../../../../src","sources":["components/MessageMenu/MessageMenu.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAoE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,IAAAK,KAAA;EAAAC,YAAA;AA2C7D,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,KAAuB,EAAK;EACtD,IACEC,cAAc,GAeZD,KAAK,CAfPC,cAAc;IAWdC,oBAAoB,GAIlBF,KAAK,CAJPE,oBAAoB;IACpBC,OAAO,GAGLH,KAAK,CAHPG,OAAO;IAEPC,QAAQ,GACNJ,KAAK,CADPI,QAAQ;EAEV,IAAAC,oBAAA,GAAmB,IAAAC,gCAAmB,EAAC,CAAC;IAAhCC,MAAM,GAAAF,oBAAA,CAANE,MAAM;EAkBd,IAAAC,SAAA,GAMI,IAAAC,sBAAQ,EAAC,CAAC;IAHeC,iBAAiB,GAAAF,SAAA,CAF5CG,KAAK,CACHC,WAAW,CACTC,WAAW,CAAIN,MAAM;EAK3B,OACE,IAAAZ,WAAA,CAAAmB,GAAA,EAACpB,iBAAA,CAAAqB,gBAAgB;IACfR,MAAM,EACJG,iBAAiB,GAAGA,iBAAiB,GAAG,CAACR,oBAAoB,GAAGK,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CACvF;IACDS,OAAO,EAAEf,cAAe;IACxBE,OAAO,EAAEA,OAAQ;IAAAC,QAAA,EAEhBA;EAAQ,CACO,CAAC;AAEvB,CAAC","ignoreList":[]}
@@ -1,43 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- exports.useAudioPlayerControl = void 0;
5
- var _react = require("react");
6
- var _AudioPlayerContext = require("../contexts/audioPlayerContext/AudioPlayerContext");
7
- var makeAudioPlayerId = function makeAudioPlayerId(_ref) {
8
- var requester = _ref.requester,
9
- src = _ref.src,
10
- id = _ref.id;
11
- return `${requester != null ? requester : 'requester-unknown'}:${src}:${id != null ? id : ''}`;
12
- };
13
- var useAudioPlayerControl = exports.useAudioPlayerControl = function useAudioPlayerControl(_ref2) {
14
- var duration = _ref2.duration,
15
- mimeType = _ref2.mimeType,
16
- playbackRates = _ref2.playbackRates,
17
- previewVoiceRecording = _ref2.previewVoiceRecording,
18
- _ref2$requester = _ref2.requester,
19
- requester = _ref2$requester === void 0 ? '' : _ref2$requester,
20
- type = _ref2.type,
21
- uri = _ref2.uri,
22
- fileId = _ref2.id;
23
- var _useAudioPlayerContex = (0, _AudioPlayerContext.useAudioPlayerContext)(),
24
- audioPlayerPool = _useAudioPlayerContex.audioPlayerPool;
25
- var id = makeAudioPlayerId({
26
- id: fileId,
27
- requester: requester,
28
- src: uri != null ? uri : ''
29
- });
30
- var audioPlayer = (0, _react.useMemo)(function () {
31
- return audioPlayerPool == null ? void 0 : audioPlayerPool.getOrAddPlayer({
32
- duration: duration != null ? duration : 0,
33
- id: id,
34
- mimeType: mimeType != null ? mimeType : '',
35
- playbackRates: playbackRates,
36
- previewVoiceRecording: previewVoiceRecording,
37
- type: type != null ? type : 'audio',
38
- uri: uri != null ? uri : ''
39
- });
40
- }, [audioPlayerPool, duration, id, mimeType, playbackRates, previewVoiceRecording, type, uri]);
41
- return audioPlayer;
42
- };
43
- //# sourceMappingURL=useAudioPlayerControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_AudioPlayerContext","makeAudioPlayerId","_ref","requester","src","id","useAudioPlayerControl","exports","_ref2","duration","mimeType","playbackRates","previewVoiceRecording","_ref2$requester","type","uri","fileId","_useAudioPlayerContex","useAudioPlayerContext","audioPlayerPool","audioPlayer","useMemo","getOrAddPlayer"],"sourceRoot":"../../../src","sources":["hooks/useAudioPlayerControl.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AAmBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA;EAAA,IACrBC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,EAAE,GAAAH,IAAA,CAAFG,EAAE;EAAA,OAKE,GAAGF,SAAS,WAATA,SAAS,GAAI,mBAAmB,IAAIC,GAAG,IAAIC,EAAE,WAAFA,EAAE,GAAI,EAAE,EAAE;AAAA;AAEvD,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAAE,KAAA,EASA;EAAA,IARhCC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACRC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACRC,aAAa,GAAAH,KAAA,CAAbG,aAAa;IACbC,qBAAqB,GAAAJ,KAAA,CAArBI,qBAAqB;IAAAC,eAAA,GAAAL,KAAA,CACrBL,SAAS;IAATA,SAAS,GAAAU,eAAA,cAAG,EAAE,GAAAA,eAAA;IACdC,IAAI,GAAAN,KAAA,CAAJM,IAAI;IACJC,GAAG,GAAAP,KAAA,CAAHO,GAAG;IACCC,MAAM,GAAAR,KAAA,CAAVH,EAAE;EAEF,IAAAY,qBAAA,GAA4B,IAAAC,yCAAqB,EAAC,CAAC;IAA3CC,eAAe,GAAAF,qBAAA,CAAfE,eAAe;EACvB,IAAMd,EAAE,GAAGJ,iBAAiB,CAAC;IAAEI,EAAE,EAAEW,MAAM;IAAEb,SAAS,EAATA,SAAS;IAAEC,GAAG,EAAEW,GAAG,WAAHA,GAAG,GAAI;EAAG,CAAC,CAAC;EACvE,IAAMK,WAAW,GAAG,IAAAC,cAAO,EACzB;IAAA,OACEF,eAAe,oBAAfA,eAAe,CAAEG,cAAc,CAAC;MAC9Bb,QAAQ,EAAEA,QAAQ,WAARA,QAAQ,GAAI,CAAC;MACvBJ,EAAE,EAAFA,EAAE;MACFK,QAAQ,EAAEA,QAAQ,WAARA,QAAQ,GAAI,EAAE;MACxBC,aAAa,EAAbA,aAAa;MACbC,qBAAqB,EAArBA,qBAAqB;MACrBE,IAAI,EAAEA,IAAI,WAAJA,IAAI,GAAI,OAAO;MACrBC,GAAG,EAAEA,GAAG,WAAHA,GAAG,GAAI;IACd,CAAC,CAAC;EAAA,GACJ,CAACI,eAAe,EAAEV,QAAQ,EAAEJ,EAAE,EAAEK,QAAQ,EAAEC,aAAa,EAAEC,qBAAqB,EAAEE,IAAI,EAAEC,GAAG,CAC3F,CAAC;EAED,OAAOK,WAAW;AACpB,CAAC","ignoreList":[]}
@@ -1,29 +0,0 @@
1
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- exports.MessageMenu = void 0;
6
- var _react = _interopRequireDefault(require("react"));
7
- var _reactNative = require("react-native");
8
- var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
9
- var _BottomSheetModal = require("../UIComponents/BottomSheetModal");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- var _this = this,
12
- _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageMenu/MessageMenu.tsx";
13
- var MessageMenu = exports.MessageMenu = function MessageMenu(props) {
14
- var dismissOverlay = props.dismissOverlay,
15
- showMessageReactions = props.showMessageReactions,
16
- visible = props.visible,
17
- children = props.children;
18
- var _useWindowDimensions = (0, _reactNative.useWindowDimensions)(),
19
- height = _useWindowDimensions.height;
20
- var _useTheme = (0, _ThemeContext.useTheme)(),
21
- bottomSheetHeight = _useTheme.theme.messageMenu.bottomSheet.height;
22
- return (0, _jsxRuntime.jsx)(_BottomSheetModal.BottomSheetModal, {
23
- height: bottomSheetHeight ? bottomSheetHeight : !showMessageReactions ? height / 5 : height / 2,
24
- onClose: dismissOverlay,
25
- visible: visible,
26
- children: children
27
- });
28
- };
29
- //# sourceMappingURL=MessageMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_BottomSheetModal","_jsxRuntime","_this","_jsxFileName","MessageMenu","exports","props","dismissOverlay","showMessageReactions","visible","children","_useWindowDimensions","useWindowDimensions","height","_useTheme","useTheme","bottomSheetHeight","theme","messageMenu","bottomSheet","jsx","BottomSheetModal","onClose"],"sourceRoot":"../../../../src","sources":["components/MessageMenu/MessageMenu.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAoE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,IAAAK,KAAA;EAAAC,YAAA;AA2C7D,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,KAAuB,EAAK;EACtD,IACEC,cAAc,GAeZD,KAAK,CAfPC,cAAc;IAWdC,oBAAoB,GAIlBF,KAAK,CAJPE,oBAAoB;IACpBC,OAAO,GAGLH,KAAK,CAHPG,OAAO;IAEPC,QAAQ,GACNJ,KAAK,CADPI,QAAQ;EAEV,IAAAC,oBAAA,GAAmB,IAAAC,gCAAmB,EAAC,CAAC;IAAhCC,MAAM,GAAAF,oBAAA,CAANE,MAAM;EAkBd,IAAAC,SAAA,GAMI,IAAAC,sBAAQ,EAAC,CAAC;IAHeC,iBAAiB,GAAAF,SAAA,CAF5CG,KAAK,CACHC,WAAW,CACTC,WAAW,CAAIN,MAAM;EAK3B,OACE,IAAAZ,WAAA,CAAAmB,GAAA,EAACpB,iBAAA,CAAAqB,gBAAgB;IACfR,MAAM,EACJG,iBAAiB,GAAGA,iBAAiB,GAAG,CAACR,oBAAoB,GAAGK,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CACvF;IACDS,OAAO,EAAEf,cAAe;IACxBE,OAAO,EAAEA,OAAQ;IAAAC,QAAA,EAEhBA;EAAQ,CACO,CAAC;AAEvB,CAAC","ignoreList":[]}
@@ -1,43 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- exports.useAudioPlayerControl = void 0;
5
- var _react = require("react");
6
- var _AudioPlayerContext = require("../contexts/audioPlayerContext/AudioPlayerContext");
7
- var makeAudioPlayerId = function makeAudioPlayerId(_ref) {
8
- var requester = _ref.requester,
9
- src = _ref.src,
10
- id = _ref.id;
11
- return `${requester != null ? requester : 'requester-unknown'}:${src}:${id != null ? id : ''}`;
12
- };
13
- var useAudioPlayerControl = exports.useAudioPlayerControl = function useAudioPlayerControl(_ref2) {
14
- var duration = _ref2.duration,
15
- mimeType = _ref2.mimeType,
16
- playbackRates = _ref2.playbackRates,
17
- previewVoiceRecording = _ref2.previewVoiceRecording,
18
- _ref2$requester = _ref2.requester,
19
- requester = _ref2$requester === void 0 ? '' : _ref2$requester,
20
- type = _ref2.type,
21
- uri = _ref2.uri,
22
- fileId = _ref2.id;
23
- var _useAudioPlayerContex = (0, _AudioPlayerContext.useAudioPlayerContext)(),
24
- audioPlayerPool = _useAudioPlayerContex.audioPlayerPool;
25
- var id = makeAudioPlayerId({
26
- id: fileId,
27
- requester: requester,
28
- src: uri != null ? uri : ''
29
- });
30
- var audioPlayer = (0, _react.useMemo)(function () {
31
- return audioPlayerPool == null ? void 0 : audioPlayerPool.getOrAddPlayer({
32
- duration: duration != null ? duration : 0,
33
- id: id,
34
- mimeType: mimeType != null ? mimeType : '',
35
- playbackRates: playbackRates,
36
- previewVoiceRecording: previewVoiceRecording,
37
- type: type != null ? type : 'audio',
38
- uri: uri != null ? uri : ''
39
- });
40
- }, [audioPlayerPool, duration, id, mimeType, playbackRates, previewVoiceRecording, type, uri]);
41
- return audioPlayer;
42
- };
43
- //# sourceMappingURL=useAudioPlayerControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_AudioPlayerContext","makeAudioPlayerId","_ref","requester","src","id","useAudioPlayerControl","exports","_ref2","duration","mimeType","playbackRates","previewVoiceRecording","_ref2$requester","type","uri","fileId","_useAudioPlayerContex","useAudioPlayerContext","audioPlayerPool","audioPlayer","useMemo","getOrAddPlayer"],"sourceRoot":"../../../src","sources":["hooks/useAudioPlayerControl.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AAmBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA;EAAA,IACrBC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,EAAE,GAAAH,IAAA,CAAFG,EAAE;EAAA,OAKE,GAAGF,SAAS,WAATA,SAAS,GAAI,mBAAmB,IAAIC,GAAG,IAAIC,EAAE,WAAFA,EAAE,GAAI,EAAE,EAAE;AAAA;AAEvD,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAAE,KAAA,EASA;EAAA,IARhCC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IACRC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACRC,aAAa,GAAAH,KAAA,CAAbG,aAAa;IACbC,qBAAqB,GAAAJ,KAAA,CAArBI,qBAAqB;IAAAC,eAAA,GAAAL,KAAA,CACrBL,SAAS;IAATA,SAAS,GAAAU,eAAA,cAAG,EAAE,GAAAA,eAAA;IACdC,IAAI,GAAAN,KAAA,CAAJM,IAAI;IACJC,GAAG,GAAAP,KAAA,CAAHO,GAAG;IACCC,MAAM,GAAAR,KAAA,CAAVH,EAAE;EAEF,IAAAY,qBAAA,GAA4B,IAAAC,yCAAqB,EAAC,CAAC;IAA3CC,eAAe,GAAAF,qBAAA,CAAfE,eAAe;EACvB,IAAMd,EAAE,GAAGJ,iBAAiB,CAAC;IAAEI,EAAE,EAAEW,MAAM;IAAEb,SAAS,EAATA,SAAS;IAAEC,GAAG,EAAEW,GAAG,WAAHA,GAAG,GAAI;EAAG,CAAC,CAAC;EACvE,IAAMK,WAAW,GAAG,IAAAC,cAAO,EACzB;IAAA,OACEF,eAAe,oBAAfA,eAAe,CAAEG,cAAc,CAAC;MAC9Bb,QAAQ,EAAEA,QAAQ,WAARA,QAAQ,GAAI,CAAC;MACvBJ,EAAE,EAAFA,EAAE;MACFK,QAAQ,EAAEA,QAAQ,WAARA,QAAQ,GAAI,EAAE;MACxBC,aAAa,EAAbA,aAAa;MACbC,qBAAqB,EAArBA,qBAAqB;MACrBE,IAAI,EAAEA,IAAI,WAAJA,IAAI,GAAI,OAAO;MACrBC,GAAG,EAAEA,GAAG,WAAHA,GAAG,GAAI;IACd,CAAC,CAAC;EAAA,GACJ,CAACI,eAAe,EAAEV,QAAQ,EAAEJ,EAAE,EAAEK,QAAQ,EAAEC,aAAa,EAAEC,qBAAqB,EAAEE,IAAI,EAAEC,GAAG,CAC3F,CAAC;EAED,OAAOK,WAAW;AACpB,CAAC","ignoreList":[]}
@@ -1,40 +0,0 @@
1
- import React, { PropsWithChildren } from 'react';
2
- import { MessageActionType } from './MessageActionListItem';
3
- import { MessageContextValue } from '../../contexts/messageContext/MessageContext';
4
- export type MessageMenuProps = PropsWithChildren<Partial<Pick<MessageContextValue, 'message'>> & {
5
- /**
6
- * Function to close the message actions bottom sheet
7
- * @returns void
8
- */
9
- dismissOverlay: () => void;
10
- /**
11
- * An array of message actions to render
12
- */
13
- messageActions: MessageActionType[];
14
- /**
15
- * Boolean to determine if there are message actions
16
- */
17
- showMessageReactions: boolean;
18
- /**
19
- * Boolean to determine if the overlay is visible.
20
- */
21
- visible: boolean;
22
- /**
23
- * Function to handle reaction on press
24
- * @param reactionType
25
- * @returns
26
- */
27
- handleReaction?: (reactionType: string) => Promise<void>;
28
- /**
29
- * The selected reaction
30
- */
31
- selectedReaction?: string;
32
- layout: {
33
- x: number;
34
- y: number;
35
- w: number;
36
- h: number;
37
- };
38
- }>;
39
- export declare const MessageMenu: (props: MessageMenuProps) => React.JSX.Element;
40
- //# sourceMappingURL=MessageMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageMenu/MessageMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAIjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAInF,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAC9C,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,GAAG;IAC9C;;;OAGG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,CACF,CAAC;AAIF,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,sBAuDlD,CAAC"}
@@ -1,18 +0,0 @@
1
- import { AudioPlayerOptions } from '../state-store/audio-player';
2
- export type UseAudioPlayerControlProps = {
3
- /**
4
- * Identifier of the entity that requested the audio playback, e.g. message ID.
5
- * Asset to specific audio player is a many-to-many relationship
6
- * - one URL can be associated with multiple UI elements,
7
- * - one UI element can display multiple audio sources.
8
- * Therefore, the AudioPlayer ID is a combination of request:src.
9
- *
10
- * The requester string can take into consideration whether there are multiple instances of
11
- * the same URL requested by the same requester (message has multiple attachments with the same asset URL).
12
- * In reality the fact that one message has multiple attachments with the same asset URL
13
- * could be considered a bad practice or a bug.
14
- */
15
- requester?: string;
16
- } & Partial<AudioPlayerOptions>;
17
- export declare const useAudioPlayerControl: ({ duration, mimeType, playbackRates, previewVoiceRecording, requester, type, uri, id: fileId, }: UseAudioPlayerControlProps) => import("../state-store/audio-player").AudioPlayer;
18
- //# sourceMappingURL=useAudioPlayerControl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAudioPlayerControl.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAudioPlayerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAYhC,eAAO,MAAM,qBAAqB,GAAI,iGASnC,0BAA0B,sDAkB5B,CAAC"}
@@ -1,107 +0,0 @@
1
- import React, { PropsWithChildren } from 'react';
2
-
3
- import { useWindowDimensions } from 'react-native';
4
-
5
- import { MessageActionType } from './MessageActionListItem';
6
-
7
- import { MessageContextValue } from '../../contexts/messageContext/MessageContext';
8
- import { useTheme } from '../../contexts/themeContext/ThemeContext';
9
- import { BottomSheetModal } from '../UIComponents/BottomSheetModal';
10
-
11
- export type MessageMenuProps = PropsWithChildren<
12
- Partial<Pick<MessageContextValue, 'message'>> & {
13
- /**
14
- * Function to close the message actions bottom sheet
15
- * @returns void
16
- */
17
- dismissOverlay: () => void;
18
- /**
19
- * An array of message actions to render
20
- */
21
- messageActions: MessageActionType[];
22
- /**
23
- * Boolean to determine if there are message actions
24
- */
25
- showMessageReactions: boolean;
26
- /**
27
- * Boolean to determine if the overlay is visible.
28
- */
29
- visible: boolean;
30
- /**
31
- * Function to handle reaction on press
32
- * @param reactionType
33
- * @returns
34
- */
35
- handleReaction?: (reactionType: string) => Promise<void>;
36
- /**
37
- * The selected reaction
38
- */
39
- selectedReaction?: string;
40
-
41
- layout: {
42
- x: number;
43
- y: number;
44
- w: number;
45
- h: number;
46
- };
47
- }
48
- >;
49
-
50
- // TODO: V9: Either remove this or refactor it so that it's useful again, as its logic
51
- // is offloaded to other components now.
52
- export const MessageMenu = (props: MessageMenuProps) => {
53
- const {
54
- dismissOverlay,
55
- // handleReaction,
56
- // message: propMessage,
57
- // MessageActionList: propMessageActionList,
58
- // MessageActionListItem: propMessageActionListItem,
59
- // messageActions,
60
- // MessageReactionPicker: propMessageReactionPicker,
61
- // MessageUserReactions: propMessageUserReactions,
62
- // MessageUserReactionsAvatar: propMessageUserReactionsAvatar,
63
- // MessageUserReactionsItem: propMessageUserReactionsItem,
64
- // selectedReaction,
65
- showMessageReactions,
66
- visible,
67
- // layout,
68
- children,
69
- } = props;
70
- const { height } = useWindowDimensions();
71
- // const {
72
- // MessageActionList: contextMessageActionList,
73
- // MessageActionListItem: contextMessageActionListItem,
74
- // MessageReactionPicker: contextMessageReactionPicker,
75
- // MessageUserReactions: contextMessageUserReactions,
76
- // MessageUserReactionsAvatar: contextMessageUserReactionsAvatar,
77
- // MessageUserReactionsItem: contextMessageUserReactionsItem,
78
- // } = useMessagesContext();
79
- // const { message: contextMessage } = useMessageContext();
80
- // const MessageActionList = propMessageActionList ?? contextMessageActionList;
81
- // const MessageActionListItem = propMessageActionListItem ?? contextMessageActionListItem;
82
- // const MessageReactionPicker = propMessageReactionPicker ?? contextMessageReactionPicker;
83
- // const MessageUserReactions = propMessageUserReactions ?? contextMessageUserReactions;
84
- // const MessageUserReactionsAvatar =
85
- // propMessageUserReactionsAvatar ?? contextMessageUserReactionsAvatar;
86
- // const MessageUserReactionsItem = propMessageUserReactionsItem ?? contextMessageUserReactionsItem;
87
- // const message = propMessage ?? contextMessage;
88
- const {
89
- theme: {
90
- messageMenu: {
91
- bottomSheet: { height: bottomSheetHeight },
92
- },
93
- },
94
- } = useTheme();
95
-
96
- return (
97
- <BottomSheetModal
98
- height={
99
- bottomSheetHeight ? bottomSheetHeight : !showMessageReactions ? height / 5 : height / 2
100
- }
101
- onClose={dismissOverlay}
102
- visible={visible}
103
- >
104
- {children}
105
- </BottomSheetModal>
106
- );
107
- };
@@ -1,59 +0,0 @@
1
- import { useMemo } from 'react';
2
-
3
- import { useAudioPlayerContext } from '../contexts/audioPlayerContext/AudioPlayerContext';
4
- import { AudioPlayerOptions } from '../state-store/audio-player';
5
-
6
- export type UseAudioPlayerControlProps = {
7
- /**
8
- * Identifier of the entity that requested the audio playback, e.g. message ID.
9
- * Asset to specific audio player is a many-to-many relationship
10
- * - one URL can be associated with multiple UI elements,
11
- * - one UI element can display multiple audio sources.
12
- * Therefore, the AudioPlayer ID is a combination of request:src.
13
- *
14
- * The requester string can take into consideration whether there are multiple instances of
15
- * the same URL requested by the same requester (message has multiple attachments with the same asset URL).
16
- * In reality the fact that one message has multiple attachments with the same asset URL
17
- * could be considered a bad practice or a bug.
18
- */
19
- requester?: string;
20
- } & Partial<AudioPlayerOptions>;
21
-
22
- const makeAudioPlayerId = ({
23
- requester,
24
- src,
25
- id,
26
- }: {
27
- src: string;
28
- requester?: string;
29
- id?: string;
30
- }) => `${requester ?? 'requester-unknown'}:${src}:${id ?? ''}`;
31
-
32
- export const useAudioPlayerControl = ({
33
- duration,
34
- mimeType,
35
- playbackRates,
36
- previewVoiceRecording,
37
- requester = '',
38
- type,
39
- uri,
40
- id: fileId,
41
- }: UseAudioPlayerControlProps) => {
42
- const { audioPlayerPool } = useAudioPlayerContext();
43
- const id = makeAudioPlayerId({ id: fileId, requester, src: uri ?? '' });
44
- const audioPlayer = useMemo(
45
- () =>
46
- audioPlayerPool?.getOrAddPlayer({
47
- duration: duration ?? 0,
48
- id,
49
- mimeType: mimeType ?? '',
50
- playbackRates,
51
- previewVoiceRecording,
52
- type: type ?? 'audio',
53
- uri: uri ?? '',
54
- }),
55
- [audioPlayerPool, duration, id, mimeType, playbackRates, previewVoiceRecording, type, uri],
56
- );
57
-
58
- return audioPlayer;
59
- };