stream-chat-react 13.14.0 → 13.14.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.
@@ -24,7 +24,7 @@ export const useChat = ({ client, defaultLanguage = 'en', i18nInstance, initialN
24
24
  useEffect(() => {
25
25
  if (!client)
26
26
  return;
27
- const version = "13.14.0";
27
+ const version = "13.14.2";
28
28
  const userAgent = client.getUserAgent();
29
29
  if (!userAgent.includes('stream-chat-react')) {
30
30
  // result looks like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
@@ -7,6 +7,7 @@ export type EventComponentProps = TimestampFormatterOptions & {
7
7
  message: LocalMessage & {
8
8
  event?: Event;
9
9
  };
10
+ unsafeHTML?: boolean;
10
11
  /** Custom UI component to display user avatar, defaults to and accepts same props as: [Avatar](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Avatar/Avatar.tsx) */
11
12
  Avatar?: React.ComponentType<AvatarProps>;
12
13
  };
@@ -6,15 +6,15 @@ import { getDateString } from '../../i18n/utils';
6
6
  * Component to display system and channel event messages
7
7
  */
8
8
  const UnMemoizedEventComponent = (props) => {
9
- const { Avatar = DefaultAvatar, calendar, calendarFormats, format, message } = props;
9
+ const { Avatar = DefaultAvatar, calendar, calendarFormats, format, message, unsafeHTML = false, } = props;
10
10
  const { t, tDateTimeParser } = useTranslationContext('EventComponent');
11
- const { created_at = '', event, text, type } = message;
11
+ const { created_at = '', event, type } = message;
12
12
  const getDateOptions = { messageCreatedAt: created_at.toString(), tDateTimeParser };
13
13
  if (type === 'system')
14
14
  return (React.createElement("div", { className: 'str-chat__message--system', "data-testid": 'message-system' },
15
15
  React.createElement("div", { className: 'str-chat__message--system__text' },
16
16
  React.createElement("div", { className: 'str-chat__message--system__line' }),
17
- React.createElement("p", null, text),
17
+ unsafeHTML ? (React.createElement("div", { dangerouslySetInnerHTML: { __html: message.html || '' }, "data-unsafe-inner-html": true })) : (React.createElement("p", null, message.text)),
18
18
  React.createElement("div", { className: 'str-chat__message--system__line' })),
19
19
  React.createElement("div", { className: 'str-chat__message--system__date' },
20
20
  React.createElement("strong", null, getDateString({
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
- import type { UpdatedMessage } from 'stream-chat';
3
2
  export type SendButtonProps = {
4
- sendMessage: (event: React.BaseSyntheticEvent, customMessageData?: Omit<UpdatedMessage, 'mentioned_users'>) => void;
3
+ sendMessage: (event: React.BaseSyntheticEvent) => void;
5
4
  } & React.ComponentProps<'button'>;
6
5
  export declare const SendButton: ({ sendMessage, ...rest }: SendButtonProps) => React.JSX.Element;
@@ -1,9 +1,8 @@
1
1
  import type React from 'react';
2
2
  import type { RecordingController } from '../../MediaRecorder/hooks/useMediaRecorder';
3
- import type { UpdatedMessage } from 'stream-chat';
4
3
  import type { MessageInputProps } from '../MessageInput';
5
4
  export type MessageInputHookProps = {
6
- handleSubmit: (event?: React.BaseSyntheticEvent, customMessageData?: Omit<UpdatedMessage, 'mentioned_users'>) => void;
5
+ handleSubmit: (event?: React.BaseSyntheticEvent) => void;
7
6
  onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
8
7
  recordingController: RecordingController;
9
8
  textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
@@ -23,7 +23,7 @@ export function defaultRenderMessages({ channelUnreadUiState, components, custom
23
23
  }
24
24
  else if (message.type === 'system') {
25
25
  renderedMessages.push(React.createElement(MessageListItem, { "data-index": index, "data-message-id": message.id, key: message.id || message.created_at.toISOString() },
26
- React.createElement(MessageSystem, { message: message })));
26
+ React.createElement(MessageSystem, { message: message, unsafeHTML: messageProps.unsafeHTML })));
27
27
  }
28
28
  else {
29
29
  if (!firstMessage) {
@@ -28995,12 +28995,25 @@ var DateSeparator = import_react180.default.memo(
28995
28995
  // src/components/EventComponent/EventComponent.tsx
28996
28996
  var import_react181 = __toESM(require("react"));
28997
28997
  var UnMemoizedEventComponent = (props) => {
28998
- const { Avatar: Avatar2 = Avatar, calendar: calendar3, calendarFormats, format, message } = props;
28998
+ const {
28999
+ Avatar: Avatar2 = Avatar,
29000
+ calendar: calendar3,
29001
+ calendarFormats,
29002
+ format,
29003
+ message,
29004
+ unsafeHTML = false
29005
+ } = props;
28999
29006
  const { t, tDateTimeParser } = useTranslationContext("EventComponent");
29000
- const { created_at = "", event, text: text8, type } = message;
29007
+ const { created_at = "", event, type } = message;
29001
29008
  const getDateOptions = { messageCreatedAt: created_at.toString(), tDateTimeParser };
29002
29009
  if (type === "system")
29003
- return /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system", "data-testid": "message-system" }, /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__text" }, /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__line" }), /* @__PURE__ */ import_react181.default.createElement("p", null, text8), /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__line" })), /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__date" }, /* @__PURE__ */ import_react181.default.createElement("strong", null, getDateString({
29010
+ return /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system", "data-testid": "message-system" }, /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__text" }, /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__line" }), unsafeHTML ? /* @__PURE__ */ import_react181.default.createElement(
29011
+ "div",
29012
+ {
29013
+ dangerouslySetInnerHTML: { __html: message.html || "" },
29014
+ "data-unsafe-inner-html": true
29015
+ }
29016
+ ) : /* @__PURE__ */ import_react181.default.createElement("p", null, message.text), /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__line" })), /* @__PURE__ */ import_react181.default.createElement("div", { className: "str-chat__message--system__date" }, /* @__PURE__ */ import_react181.default.createElement("strong", null, getDateString({
29004
29017
  ...getDateOptions,
29005
29018
  calendar: calendar3,
29006
29019
  calendarFormats,
@@ -29070,7 +29083,7 @@ function defaultRenderMessages({
29070
29083
  "data-message-id": message.id,
29071
29084
  key: message.id || message.created_at.toISOString()
29072
29085
  },
29073
- /* @__PURE__ */ import_react182.default.createElement(MessageSystem, { message })
29086
+ /* @__PURE__ */ import_react182.default.createElement(MessageSystem, { message, unsafeHTML: messageProps.unsafeHTML })
29074
29087
  )
29075
29088
  );
29076
29089
  } else {
@@ -37408,7 +37421,7 @@ var useChat = ({
37408
37421
  };
37409
37422
  (0, import_react289.useEffect)(() => {
37410
37423
  if (!client) return;
37411
- const version = "13.14.0";
37424
+ const version = "13.14.2";
37412
37425
  const userAgent = client.getUserAgent();
37413
37426
  if (!userAgent.includes("stream-chat-react")) {
37414
37427
  client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);