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

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 (39) hide show
  1. package/lib/commonjs/components/index.js +0 -11
  2. package/lib/commonjs/components/index.js.map +1 -1
  3. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +0 -2
  4. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  5. package/lib/commonjs/hooks/index.js +4 -4
  6. package/lib/commonjs/hooks/index.js.map +1 -1
  7. package/lib/commonjs/version.json +1 -1
  8. package/lib/module/components/index.js +0 -11
  9. package/lib/module/components/index.js.map +1 -1
  10. package/lib/module/contexts/componentsContext/defaultComponents.js +0 -2
  11. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  12. package/lib/module/hooks/index.js +4 -4
  13. package/lib/module/hooks/index.js.map +1 -1
  14. package/lib/module/version.json +1 -1
  15. package/lib/typescript/components/index.d.ts +0 -1
  16. package/lib/typescript/components/index.d.ts.map +1 -1
  17. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +0 -1
  18. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  19. package/lib/typescript/hooks/index.d.ts +1 -1
  20. package/lib/typescript/hooks/index.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/components/index.ts +0 -1
  23. package/src/contexts/componentsContext/defaultComponents.ts +0 -2
  24. package/src/hooks/index.ts +1 -1
  25. package/src/version.json +1 -1
  26. package/lib/commonjs/components/MessageMenu/MessageMenu.js +0 -29
  27. package/lib/commonjs/components/MessageMenu/MessageMenu.js.map +0 -1
  28. package/lib/commonjs/hooks/useAudioPlayerControl.js +0 -43
  29. package/lib/commonjs/hooks/useAudioPlayerControl.js.map +0 -1
  30. package/lib/module/components/MessageMenu/MessageMenu.js +0 -29
  31. package/lib/module/components/MessageMenu/MessageMenu.js.map +0 -1
  32. package/lib/module/hooks/useAudioPlayerControl.js +0 -43
  33. package/lib/module/hooks/useAudioPlayerControl.js.map +0 -1
  34. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts +0 -40
  35. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts.map +0 -1
  36. package/lib/typescript/hooks/useAudioPlayerControl.d.ts +0 -18
  37. package/lib/typescript/hooks/useAudioPlayerControl.d.ts.map +0 -1
  38. package/src/components/MessageMenu/MessageMenu.tsx +0 -107
  39. package/src/hooks/useAudioPlayerControl.ts +0 -59
@@ -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
- };