stream-chat-react 14.6.0 → 14.6.1
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.
- package/dist/cjs/{ReactPlayerWrapper.30240f76.js → ReactPlayerWrapper.c340ab05.js} +2 -2
- package/dist/cjs/{ReactPlayerWrapper.30240f76.js.map → ReactPlayerWrapper.c340ab05.js.map} +1 -1
- package/dist/cjs/audioProcessing.22303d69.js.map +1 -1
- package/dist/cjs/channel-detail.js +2 -2
- package/dist/cjs/channel-detail.js.map +1 -1
- package/dist/cjs/emojis.js +2 -2
- package/dist/cjs/emojis.js.map +1 -1
- package/dist/cjs/index.js +48 -50
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mp3-encoder.js.map +1 -1
- package/dist/cjs/{useChannelHeaderOnlineStatus.6546ac83.js → useChannelHeaderOnlineStatus.d39ede24.js} +25 -9
- package/dist/cjs/{useChannelHeaderOnlineStatus.6546ac83.js.map → useChannelHeaderOnlineStatus.d39ede24.js.map} +1 -1
- package/dist/cjs/{useMessageComposerController.c0dad9bc.js → useMessageComposerController.f1a3d182.js} +2 -2
- package/dist/cjs/{useMessageComposerController.c0dad9bc.js.map → useMessageComposerController.f1a3d182.js.map} +1 -1
- package/dist/cjs/{useNotificationApi.eb753f31.js → useNotificationApi.87ba0b39.js} +13 -13
- package/dist/cjs/useNotificationApi.87ba0b39.js.map +1 -0
- package/dist/css/index.css +3 -3
- package/dist/css/index.css.map +1 -1
- package/dist/es/audioProcessing.766ca76c.mjs.map +1 -1
- package/dist/es/channel-detail.mjs +2 -2
- package/dist/es/channel-detail.mjs.map +1 -1
- package/dist/es/emojis.mjs +2 -2
- package/dist/es/emojis.mjs.map +1 -1
- package/dist/es/index.mjs +32 -34
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/mp3-encoder.mjs.map +1 -1
- package/dist/es/{useChannelHeaderOnlineStatus.c5215b13.mjs → useChannelHeaderOnlineStatus.b3a51ca7.mjs} +24 -8
- package/dist/es/{useChannelHeaderOnlineStatus.c5215b13.mjs.map → useChannelHeaderOnlineStatus.b3a51ca7.mjs.map} +1 -1
- package/dist/es/{useMessageComposerController.29f189b4.mjs → useMessageComposerController.2309f433.mjs} +2 -2
- package/dist/es/{useMessageComposerController.29f189b4.mjs.map → useMessageComposerController.2309f433.mjs.map} +1 -1
- package/dist/es/{useNotificationApi.fa5cddf9.mjs → useNotificationApi.eff88f29.mjs} +9 -9
- package/dist/es/useNotificationApi.eff88f29.mjs.map +1 -0
- package/dist/types/components/Channel/Channel.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useChannelListShape.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useIsChannelMuted.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/regex.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
- package/dist/types/i18n/Streami18n.d.ts +12 -12
- package/dist/types/i18n/Streami18n.d.ts.map +1 -1
- package/dist/types/i18n/types.d.ts +1 -1
- package/package.json +8 -7
- package/dist/cjs/useNotificationApi.eb753f31.js.map +0 -1
- package/dist/es/useNotificationApi.fa5cddf9.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mp3-encoder.mjs","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,
|
|
1
|
+
{"version":3,"file":"mp3-encoder.mjs","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,YAAY,MAAM,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
|
-
import { Ar as useDialogIsOpen, Er as DialogPortalEntry, Fr as useModalDialogIsTopmost, Ft as IconChevronLeft, It as IconChevronRight, Jn as IconXmark, Jt as IconExclamationTriangleFill, Kt as IconExclamationMark, Lr as useStateStore, Mr as useDialogOnNearestManager, Nr as useModalDialog, Pr as useModalDialogIsOpen, Qn as useStableId, R as usePopoverPosition, Tn as IconRefresh, Vr as useComponentContext, Vt as IconDownload, Wr as useChatContext, Z as isMessageDeleted, Zn as Button, bn as IconPlayFill, bt as IconArrowLeft, en as IconImage, in as IconLoading, jt as IconCheckmark, kr as useDialog, mr as isDate, n as hasSystemNotificationTag, pr as getDateString, qr as useChannelStateContext, qt as IconExclamationMarkFill, r as useNotificationApi, rr as isNotificationForPanel, ur as useTranslationContext, xr as modalDialogManagerId, yr as DialogManagerProvider, yt as IconArrowDownCircle, zn as IconUser } from "./useNotificationApi.
|
|
1
|
+
import { Ar as useDialogIsOpen, Er as DialogPortalEntry, Fr as useModalDialogIsTopmost, Ft as IconChevronLeft, It as IconChevronRight, Jn as IconXmark, Jt as IconExclamationTriangleFill, Kt as IconExclamationMark, Lr as useStateStore, Mr as useDialogOnNearestManager, Nr as useModalDialog, Pr as useModalDialogIsOpen, Qn as useStableId, R as usePopoverPosition, Tn as IconRefresh, Vr as useComponentContext, Vt as IconDownload, Wr as useChatContext, Z as isMessageDeleted, Zn as Button, bn as IconPlayFill, bt as IconArrowLeft, en as IconImage, in as IconLoading, jt as IconCheckmark, kr as useDialog, mr as isDate, n as hasSystemNotificationTag, pr as getDateString, qr as useChannelStateContext, qt as IconExclamationMarkFill, r as useNotificationApi, rr as isNotificationForPanel, ur as useTranslationContext, xr as modalDialogManagerId, yr as DialogManagerProvider, yt as IconArrowDownCircle, zn as IconUser } from "./useNotificationApi.eff88f29.mjs";
|
|
2
2
|
import React, { createContext, createElement, forwardRef, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { isGiphyAttachment, isImageAttachment, isLocalImageAttachment, isLocalVideoAttachment, isScrapedContent, isVideoAttachment } from "stream-chat";
|
|
@@ -1384,7 +1384,7 @@ function imageToLink({ getTextLabelFrom = "url" } = {}) {
|
|
|
1384
1384
|
* ++ ++
|
|
1385
1385
|
*/
|
|
1386
1386
|
var INS_REGEX = /\+\+(\S(?:[\s\S]*?\S)?)\+\+/g;
|
|
1387
|
-
var IGNORE_NODE_TYPES = new Set([
|
|
1387
|
+
var IGNORE_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
1388
1388
|
"code",
|
|
1389
1389
|
"inlineCode",
|
|
1390
1390
|
"link",
|
|
@@ -3127,14 +3127,30 @@ function useChannelMembershipState(channel) {
|
|
|
3127
3127
|
}
|
|
3128
3128
|
//#endregion
|
|
3129
3129
|
//#region src/components/ChannelListItem/hooks/useIsChannelMuted.ts
|
|
3130
|
+
/**
|
|
3131
|
+
* `channel.muteStatus()` throws in two cases:
|
|
3132
|
+
* - the channel has not been initialized yet (i.e. `.watch()`/`.query()` has not
|
|
3133
|
+
* resolved) - the ChannelList can briefly hold such channels, e.g. a
|
|
3134
|
+
* `message.new` for a channel that has not been watched yet (#2474);
|
|
3135
|
+
* - the channel is disconnected (e.g. after `client.disconnectUser()`), in which
|
|
3136
|
+
* case `channel.getClient()` throws even though the channel stays initialized
|
|
3137
|
+
* (#2393 failure class).
|
|
3138
|
+
* Guard against both to avoid crashing the whole app.
|
|
3139
|
+
*/
|
|
3140
|
+
var getMuteStatus = (channel) => channel.initialized && !channel.disconnected ? channel.muteStatus() : {
|
|
3141
|
+
createdAt: null,
|
|
3142
|
+
expiresAt: null,
|
|
3143
|
+
muted: false
|
|
3144
|
+
};
|
|
3130
3145
|
var useIsChannelMuted = (channel) => {
|
|
3131
3146
|
const { client } = useChatContext("useIsChannelMuted");
|
|
3132
|
-
const [muted, setMuted] = useState(
|
|
3147
|
+
const [muted, setMuted] = useState(() => getMuteStatus(channel));
|
|
3133
3148
|
useEffect(() => {
|
|
3134
|
-
const handleEvent = () =>
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3149
|
+
const handleEvent = () => {
|
|
3150
|
+
setMuted(getMuteStatus(channel));
|
|
3151
|
+
};
|
|
3152
|
+
return client.on("notification.channel_mutes_updated", handleEvent).unsubscribe;
|
|
3153
|
+
}, [channel, client]);
|
|
3138
3154
|
return muted;
|
|
3139
3155
|
};
|
|
3140
3156
|
//#endregion
|
|
@@ -3597,4 +3613,4 @@ function useChannelHeaderOnlineStatus({ channel: channelOverride, watcherCount:
|
|
|
3597
3613
|
//#endregion
|
|
3598
3614
|
export { ContextMenuBackButton as $, GalleryUI as A, MessageTranslationViewContext as At, FileIcon as B, Checkmark as C, LoadingIndicator as Ct, SwitchFieldLabel as D, ModalContext as Dt, SwitchFieldDescription as E, useNotificationConfigurationContext as Et, useGalleryContext as F, MessageProvider as Ft, Timestamp as G, FILE_ICON_NO_LABEL_CLASSNAME as H, toBaseImageDescriptors as I, useMessageContext as It, htmlToTextPlugin as J, plusPlusToEmphasis as K, BaseImage as L, VideoPlayer as M, getTranslatedMessageText as Mt, GalleryContext as N, useMessageTranslationViewContext as Nt, SwitchFieldTitle as O, ModalContextProvider as Ot, toGalleryItemDescriptors as P, MessageContext as Pt, ContextMenu as Q, ImagePlaceholder as R, Checkbox as S, FileSizeIndicator as St, SwitchField as T, NotificationConfigurationProvider as Tt, DownloadButton as U, FILE_ICON_GRAPHIC_CLASSNAME as V, MessageTimestamp as W, Prompt as X, GlobalModal as Y, BaseContextMenuButton as Z, getLatestMessagePreview as _, Alert as _t, pickNewest as a, DEFAULT_CONTEXT_MENU_KEYBOARD_NAVIGATION_ITEM_SELECTOR as at, ListItemLayoutContent as b, useAriaIdentifiers as bt, useIsUserMuted as c, useContextMenuContext as ct, useSelectedChannelState as d, ChannelAvatar as dt, ContextMenuBody as et, isDmChannel as f, Badge as ft, getGroupChannelDisplayInfo as g, useDialogAnchor as gt, getChannelDisplayImage as h, DialogAnchor as ht, createDefaultPickNext as i, ContextMenuRoot as it, VideoThumbnail as j, MessageTranslationViewProvider as jt, Gallery as k, useModalContext as kt, useIsChannelMuted as l, createRovingFocusKeyDownHandler as lt, useChannelDisplayName as m, Avatar as mt, useChannelHasMembersOnline as n, ContextMenuContent as nt, pickOldest as o, EmojiContextMenuButton as ot, useChannelPreviewInfo as p, ErrorBadge as pt, imageToLink as q, NotificationList as r, ContextMenuHeader as rt, Notification as s, UserContextMenuButton as st, useChannelHeaderOnlineStatus as t, ContextMenuButton as tt, useChannelMembershipState as u, GroupAvatar as ut, renderPreviewText as v, Header as vt, Switch as w, useNotifications as wt, TextInput as x, useStableCallback as xt, ListItemLayout as y, Root as yt, formatTime as z };
|
|
3599
3615
|
|
|
3600
|
-
//# sourceMappingURL=useChannelHeaderOnlineStatus.
|
|
3616
|
+
//# sourceMappingURL=useChannelHeaderOnlineStatus.b3a51ca7.mjs.map
|