stream-chat-react 14.6.0 → 14.7.0

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 (47) hide show
  1. package/dist/cjs/{ReactPlayerWrapper.30240f76.js → ReactPlayerWrapper.c340ab05.js} +2 -2
  2. package/dist/cjs/{ReactPlayerWrapper.30240f76.js.map → ReactPlayerWrapper.c340ab05.js.map} +1 -1
  3. package/dist/cjs/audioProcessing.22303d69.js.map +1 -1
  4. package/dist/cjs/channel-detail.js +2 -2
  5. package/dist/cjs/channel-detail.js.map +1 -1
  6. package/dist/cjs/emojis.js +2 -2
  7. package/dist/cjs/emojis.js.map +1 -1
  8. package/dist/cjs/index.js +50 -52
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/mp3-encoder.js.map +1 -1
  11. package/dist/cjs/{useChannelHeaderOnlineStatus.6546ac83.js → useChannelHeaderOnlineStatus.d39ede24.js} +25 -9
  12. package/dist/cjs/{useChannelHeaderOnlineStatus.6546ac83.js.map → useChannelHeaderOnlineStatus.d39ede24.js.map} +1 -1
  13. package/dist/cjs/{useMessageComposerController.c0dad9bc.js → useMessageComposerController.f1a3d182.js} +2 -2
  14. package/dist/cjs/{useMessageComposerController.c0dad9bc.js.map → useMessageComposerController.f1a3d182.js.map} +1 -1
  15. package/dist/cjs/{useNotificationApi.eb753f31.js → useNotificationApi.87ba0b39.js} +13 -13
  16. package/dist/cjs/useNotificationApi.87ba0b39.js.map +1 -0
  17. package/dist/css/index.css +3 -3
  18. package/dist/css/index.css.map +1 -1
  19. package/dist/es/audioProcessing.766ca76c.mjs.map +1 -1
  20. package/dist/es/channel-detail.mjs +2 -2
  21. package/dist/es/channel-detail.mjs.map +1 -1
  22. package/dist/es/emojis.mjs +2 -2
  23. package/dist/es/emojis.mjs.map +1 -1
  24. package/dist/es/index.mjs +34 -36
  25. package/dist/es/index.mjs.map +1 -1
  26. package/dist/es/mp3-encoder.mjs.map +1 -1
  27. package/dist/es/{useChannelHeaderOnlineStatus.c5215b13.mjs → useChannelHeaderOnlineStatus.b3a51ca7.mjs} +24 -8
  28. package/dist/es/{useChannelHeaderOnlineStatus.c5215b13.mjs.map → useChannelHeaderOnlineStatus.b3a51ca7.mjs.map} +1 -1
  29. package/dist/es/{useMessageComposerController.29f189b4.mjs → useMessageComposerController.2309f433.mjs} +2 -2
  30. package/dist/es/{useMessageComposerController.29f189b4.mjs.map → useMessageComposerController.2309f433.mjs.map} +1 -1
  31. package/dist/es/{useNotificationApi.fa5cddf9.mjs → useNotificationApi.eff88f29.mjs} +9 -9
  32. package/dist/es/useNotificationApi.eff88f29.mjs.map +1 -0
  33. package/dist/types/components/Channel/Channel.d.ts.map +1 -1
  34. package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
  35. package/dist/types/components/ChannelList/ChannelList.d.ts.map +1 -1
  36. package/dist/types/components/ChannelList/hooks/useChannelListShape.d.ts.map +1 -1
  37. package/dist/types/components/ChannelListItem/hooks/useIsChannelMuted.d.ts.map +1 -1
  38. package/dist/types/components/Message/renderText/regex.d.ts.map +1 -1
  39. package/dist/types/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
  40. package/dist/types/context/ComponentContext.d.ts +2 -0
  41. package/dist/types/context/ComponentContext.d.ts.map +1 -1
  42. package/dist/types/i18n/Streami18n.d.ts +12 -12
  43. package/dist/types/i18n/Streami18n.d.ts.map +1 -1
  44. package/dist/types/i18n/types.d.ts +1 -1
  45. package/package.json +8 -7
  46. package/dist/cjs/useNotificationApi.eb753f31.js.map +0 -1
  47. package/dist/es/useNotificationApi.fa5cddf9.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mp3-encoder.js","names":[],"sources":["../../src/plugins/encoders/mp3.ts"],"sourcesContent":["import {\n renderAudio,\n toAudioBuffer,\n} from '../../components/MediaRecorder/transcode/audioProcessing';\n\nconst ENCODING_BIT_RATE = 128; // kbps;\nconst COUNT_SAMPLES_PER_ENCODED_BLOCK = 1152;\n\nconst float32ArrayToInt16Array = (float32Arr: Float32Array) => {\n const int16Arr = new Int16Array(float32Arr.length);\n for (let i = 0; i < float32Arr.length; i++) {\n const float32Value = float32Arr[i];\n // Clamp the float value between -1 and 1\n const clampedValue = Math.max(-1, Math.min(1, float32Value));\n // Convert the float value to a signed 16-bit integer\n int16Arr[i] = Math.round(clampedValue * 32767);\n }\n return int16Arr;\n};\n\nconst splitDataByChannel = (audioBuffer: AudioBuffer) =>\n Array.from({ length: audioBuffer.numberOfChannels }, (_, i) =>\n audioBuffer.getChannelData(i),\n ).map(float32ArrayToInt16Array);\n\nexport async function encodeToMp3(file: File, sampleRate: number) {\n const lameJs = await import('@breezystack/lamejs');\n const audioBuffer = await renderAudio(await toAudioBuffer(file), sampleRate);\n const channelCount = audioBuffer.numberOfChannels;\n const dataByChannel = splitDataByChannel(audioBuffer);\n const mp3Encoder = new lameJs.Mp3Encoder(channelCount, sampleRate, ENCODING_BIT_RATE);\n\n const dataBuffer: Int8Array[] = [];\n let remaining = dataByChannel[0].length;\n for (\n let i = 0;\n remaining >= COUNT_SAMPLES_PER_ENCODED_BLOCK;\n i += COUNT_SAMPLES_PER_ENCODED_BLOCK\n ) {\n const [leftChannelBlock, rightChannelBlock] = dataByChannel.map((channel) =>\n channel.subarray(i, i + COUNT_SAMPLES_PER_ENCODED_BLOCK),\n );\n dataBuffer.push(\n new Int8Array(mp3Encoder.encodeBuffer(leftChannelBlock, rightChannelBlock)),\n );\n remaining -= COUNT_SAMPLES_PER_ENCODED_BLOCK;\n }\n\n const lastBlock = mp3Encoder.flush();\n if (lastBlock.length) dataBuffer.push(new Int8Array(lastBlock));\n return new Blob(dataBuffer as BlobPart[], { type: 'audio/mp3;sbu_type=voice' });\n}\n"],"mappings":";;;AAKA,IAAM,oBAAoB;AAC1B,IAAM,kCAAkC;AAExC,IAAM,4BAA4B,eAA6B;CAC7D,MAAM,WAAW,IAAI,WAAW,WAAW,MAAM;CACjD,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;EAC1C,MAAM,eAAe,WAAW;EAIhC,SAAS,KAAK,KAAK,MAFE,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,YAAY,CAEjC,IAAe,KAAK;CAC/C;CACA,OAAO;AACT;AAEA,IAAM,sBAAsB,gBAC1B,MAAM,KAAK,EAAE,QAAQ,YAAY,iBAAiB,IAAI,GAAG,MACvD,YAAY,eAAe,CAAC,CAC9B,EAAE,IAAI,wBAAwB;AAEhC,eAAsB,YAAY,MAAY,YAAoB;CAChE,MAAM,SAAS,MAAM,OAAO;CAC5B,MAAM,cAAc,MAAM,wBAAA,YAAY,MAAM,wBAAA,cAAc,IAAI,GAAG,UAAU;CAC3E,MAAM,eAAe,YAAY;CACjC,MAAM,gBAAgB,mBAAmB,WAAW;CACpD,MAAM,aAAa,IAAI,OAAO,WAAW,cAAc,YAAY,iBAAiB;CAEpF,MAAM,aAA0B,CAAC;CACjC,IAAI,YAAY,cAAc,GAAG;CACjC,KACE,IAAI,IAAI,GACR,aAAa,iCACb,KAAK,iCACL;EACA,MAAM,CAAC,kBAAkB,qBAAqB,cAAc,KAAK,YAC/D,QAAQ,SAAS,GAAG,IAAI,+BAA+B,CACzD;EACA,WAAW,KACT,IAAI,UAAU,WAAW,aAAa,kBAAkB,iBAAiB,CAAC,CAC5E;EACA,aAAa;CACf;CAEA,MAAM,YAAY,WAAW,MAAM;CACnC,IAAI,UAAU,QAAQ,WAAW,KAAK,IAAI,UAAU,SAAS,CAAC;CAC9D,OAAO,IAAI,KAAK,YAA0B,EAAE,MAAM,2BAA2B,CAAC;AAChF"}
1
+ {"version":3,"file":"mp3-encoder.js","names":[],"sources":["../../src/plugins/encoders/mp3.ts"],"sourcesContent":["import {\n renderAudio,\n toAudioBuffer,\n} from '../../components/MediaRecorder/transcode/audioProcessing';\n\nconst ENCODING_BIT_RATE = 128; // kbps;\nconst COUNT_SAMPLES_PER_ENCODED_BLOCK = 1152;\n\nconst float32ArrayToInt16Array = (float32Arr: Float32Array) => {\n const int16Arr = new Int16Array(float32Arr.length);\n for (let i = 0; i < float32Arr.length; i++) {\n const float32Value = float32Arr[i];\n // Clamp the float value between -1 and 1\n const clampedValue = Math.max(-1, Math.min(1, float32Value));\n // Convert the float value to a signed 16-bit integer\n int16Arr[i] = Math.round(clampedValue * 32767);\n }\n return int16Arr;\n};\n\nconst splitDataByChannel = (audioBuffer: AudioBuffer) =>\n Array.from({ length: audioBuffer.numberOfChannels }, (_, i) =>\n audioBuffer.getChannelData(i),\n ).map(float32ArrayToInt16Array);\n\nexport async function encodeToMp3(file: File, sampleRate: number) {\n const lameJs = await import('@breezystack/lamejs');\n const audioBuffer = await renderAudio(await toAudioBuffer(file), sampleRate);\n const channelCount = audioBuffer.numberOfChannels;\n const dataByChannel = splitDataByChannel(audioBuffer);\n const mp3Encoder = new lameJs.Mp3Encoder(channelCount, sampleRate, ENCODING_BIT_RATE);\n\n const dataBuffer: Int8Array[] = [];\n let remaining = dataByChannel[0].length;\n for (\n let i = 0;\n remaining >= COUNT_SAMPLES_PER_ENCODED_BLOCK;\n i += COUNT_SAMPLES_PER_ENCODED_BLOCK\n ) {\n const [leftChannelBlock, rightChannelBlock] = dataByChannel.map((channel) =>\n channel.subarray(i, i + COUNT_SAMPLES_PER_ENCODED_BLOCK),\n );\n dataBuffer.push(\n new Int8Array(mp3Encoder.encodeBuffer(leftChannelBlock, rightChannelBlock)),\n );\n remaining -= COUNT_SAMPLES_PER_ENCODED_BLOCK;\n }\n\n const lastBlock = mp3Encoder.flush();\n if (lastBlock.length) dataBuffer.push(new Int8Array(lastBlock));\n return new Blob(dataBuffer as BlobPart[], { type: 'audio/mp3;sbu_type=voice' });\n}\n"],"mappings":";;;AAKA,IAAM,oBAAoB;AAC1B,IAAM,kCAAkC;AAExC,IAAM,4BAA4B,eAA6B;CAC7D,MAAM,WAAW,IAAI,WAAW,WAAW,MAAM;CACjD,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;EAC1C,MAAM,eAAe,WAAW;EAIhC,SAAS,KAAK,KAAK,MAFE,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,YAAY,CAEjC,IAAe,KAAK;CAC/C;CACA,OAAO;AACT;AAEA,IAAM,sBAAsB,gBAC1B,MAAM,KAAK,EAAE,QAAQ,YAAY,iBAAiB,IAAI,GAAG,MACvD,YAAY,eAAe,CAAC,CAC9B,CAAC,CAAC,IAAI,wBAAwB;AAEhC,eAAsB,YAAY,MAAY,YAAoB;CAChE,MAAM,SAAS,MAAM,OAAO;CAC5B,MAAM,cAAc,MAAM,wBAAA,YAAY,MAAM,wBAAA,cAAc,IAAI,GAAG,UAAU;CAC3E,MAAM,eAAe,YAAY;CACjC,MAAM,gBAAgB,mBAAmB,WAAW;CACpD,MAAM,aAAa,IAAI,OAAO,WAAW,cAAc,YAAY,iBAAiB;CAEpF,MAAM,aAA0B,CAAC;CACjC,IAAI,YAAY,cAAc,EAAE,CAAC;CACjC,KACE,IAAI,IAAI,GACR,aAAa,iCACb,KAAK,iCACL;EACA,MAAM,CAAC,kBAAkB,qBAAqB,cAAc,KAAK,YAC/D,QAAQ,SAAS,GAAG,IAAI,+BAA+B,CACzD;EACA,WAAW,KACT,IAAI,UAAU,WAAW,aAAa,kBAAkB,iBAAiB,CAAC,CAC5E;EACA,aAAa;CACf;CAEA,MAAM,YAAY,WAAW,MAAM;CACnC,IAAI,UAAU,QAAQ,WAAW,KAAK,IAAI,UAAU,SAAS,CAAC;CAC9D,OAAO,IAAI,KAAK,YAA0B,EAAE,MAAM,2BAA2B,CAAC;AAChF"}
@@ -1,4 +1,4 @@
1
- const require_useNotificationApi = require("./useNotificationApi.eb753f31.js");
1
+ const require_useNotificationApi = require("./useNotificationApi.87ba0b39.js");
2
2
  let react = require("react");
3
3
  react = require_useNotificationApi.__toESM(react);
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1388,7 +1388,7 @@ function imageToLink({ getTextLabelFrom = "url" } = {}) {
1388
1388
  * ++ ++
1389
1389
  */
1390
1390
  var INS_REGEX = /\+\+(\S(?:[\s\S]*?\S)?)\+\+/g;
1391
- var IGNORE_NODE_TYPES = new Set([
1391
+ var IGNORE_NODE_TYPES = /* @__PURE__ */ new Set([
1392
1392
  "code",
1393
1393
  "inlineCode",
1394
1394
  "link",
@@ -2388,7 +2388,7 @@ var GalleryHeader = ({ currentItem }) => {
2388
2388
  };
2389
2389
  //#endregion
2390
2390
  //#region src/components/VideoPlayer/VideoPlayer.tsx
2391
- var ReactPlayer = react.default.lazy(() => Promise.resolve().then(() => require("./ReactPlayerWrapper.30240f76.js")));
2391
+ var ReactPlayer = react.default.lazy(() => Promise.resolve().then(() => require("./ReactPlayerWrapper.c340ab05.js")));
2392
2392
  var VideoPlayer = ({ isPlaying, thumbnailUrl, videoUrl }) => {
2393
2393
  const { LoadingIndicator: LoadingIndicator$1 = LoadingIndicator, VideoPlayer: VideoPlayerContext } = require_useNotificationApi.useComponentContext();
2394
2394
  return VideoPlayerContext ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VideoPlayerContext, {
@@ -3131,14 +3131,30 @@ function useChannelMembershipState(channel) {
3131
3131
  }
3132
3132
  //#endregion
3133
3133
  //#region src/components/ChannelListItem/hooks/useIsChannelMuted.ts
3134
+ /**
3135
+ * `channel.muteStatus()` throws in two cases:
3136
+ * - the channel has not been initialized yet (i.e. `.watch()`/`.query()` has not
3137
+ * resolved) - the ChannelList can briefly hold such channels, e.g. a
3138
+ * `message.new` for a channel that has not been watched yet (#2474);
3139
+ * - the channel is disconnected (e.g. after `client.disconnectUser()`), in which
3140
+ * case `channel.getClient()` throws even though the channel stays initialized
3141
+ * (#2393 failure class).
3142
+ * Guard against both to avoid crashing the whole app.
3143
+ */
3144
+ var getMuteStatus = (channel) => channel.initialized && !channel.disconnected ? channel.muteStatus() : {
3145
+ createdAt: null,
3146
+ expiresAt: null,
3147
+ muted: false
3148
+ };
3134
3149
  var useIsChannelMuted = (channel) => {
3135
3150
  const { client } = require_useNotificationApi.useChatContext("useIsChannelMuted");
3136
- const [muted, setMuted] = (0, react.useState)(channel.muteStatus());
3151
+ const [muted, setMuted] = (0, react.useState)(() => getMuteStatus(channel));
3137
3152
  (0, react.useEffect)(() => {
3138
- const handleEvent = () => setMuted(channel.muteStatus());
3139
- client.on("notification.channel_mutes_updated", handleEvent);
3140
- return () => client.off("notification.channel_mutes_updated", handleEvent);
3141
- }, [muted]);
3153
+ const handleEvent = () => {
3154
+ setMuted(getMuteStatus(channel));
3155
+ };
3156
+ return client.on("notification.channel_mutes_updated", handleEvent).unsubscribe;
3157
+ }, [channel, client]);
3142
3158
  return muted;
3143
3159
  };
3144
3160
  //#endregion
@@ -4140,4 +4156,4 @@ Object.defineProperty(exports, "useStableCallback", {
4140
4156
  }
4141
4157
  });
4142
4158
 
4143
- //# sourceMappingURL=useChannelHeaderOnlineStatus.6546ac83.js.map
4159
+ //# sourceMappingURL=useChannelHeaderOnlineStatus.d39ede24.js.map