stream-chat-react 11.0.0-rc.4 → 11.0.0-rc.6

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/browser.full-bundle.js +110 -46
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +5 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Emojis/EmojiPicker.d.ts +14 -1
  6. package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -1
  7. package/dist/components/Emojis/EmojiPicker.js +7 -10
  8. package/dist/components/Emojis/index.cjs.js +8 -11
  9. package/dist/components/Message/renderText/index.d.ts +3 -1
  10. package/dist/components/Message/renderText/index.d.ts.map +1 -1
  11. package/dist/components/Message/renderText/index.js +2 -1
  12. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts +3 -0
  13. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts.map +1 -0
  14. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js +10 -0
  15. package/dist/components/Message/renderText/rehypePlugins/index.d.ts +3 -0
  16. package/dist/components/Message/renderText/rehypePlugins/index.d.ts.map +1 -0
  17. package/dist/components/Message/renderText/rehypePlugins/index.js +2 -0
  18. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +5 -0
  19. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts.map +1 -0
  20. package/dist/components/Message/renderText/{rehypePlugins.js → rehypePlugins/mentionsMarkdownPlugin.js} +1 -9
  21. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts +3 -0
  22. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts.map +1 -0
  23. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js +10 -0
  24. package/dist/components/Message/renderText/remarkPlugins/index.d.ts +3 -0
  25. package/dist/components/Message/renderText/remarkPlugins/index.d.ts.map +1 -0
  26. package/dist/components/Message/renderText/remarkPlugins/index.js +2 -0
  27. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.d.ts +3 -0
  28. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.d.ts.map +1 -0
  29. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js +32 -0
  30. package/dist/components/Message/renderText/types.d.ts +3 -0
  31. package/dist/components/Message/renderText/types.d.ts.map +1 -0
  32. package/dist/components/Message/renderText/types.js +1 -0
  33. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  34. package/dist/components/MessageList/MessageList.js +2 -1
  35. package/dist/context/MessageListContext.d.ts +16 -0
  36. package/dist/context/MessageListContext.d.ts.map +1 -0
  37. package/dist/context/MessageListContext.js +17 -0
  38. package/dist/context/index.d.ts +1 -0
  39. package/dist/context/index.d.ts.map +1 -1
  40. package/dist/context/index.js +1 -0
  41. package/dist/{icons-5ee8c22b.js → icons-427fd8d5.js} +20 -0
  42. package/dist/index.cjs.js +77 -31
  43. package/dist/version.d.ts +1 -1
  44. package/dist/version.js +1 -1
  45. package/package.json +11 -4
  46. package/dist/components/Message/renderText/rehypePlugins.d.ts +0 -7
  47. package/dist/components/Message/renderText/rehypePlugins.d.ts.map +0 -1
@@ -1,9 +1,22 @@
1
1
  import React from 'react';
2
+ import type { Options } from '@popperjs/core';
2
3
  export declare type EmojiPickerProps = {
3
4
  ButtonIconComponent?: React.ComponentType;
4
5
  buttonClassName?: string;
5
- emojiPickerContainerClassName?: string;
6
+ pickerContainerClassName?: string;
6
7
  wrapperClassName?: string;
8
+ /**
9
+ * Untyped [properties](https://github.com/missive/emoji-mart/tree/v5.5.2#options--props) to be
10
+ * passed to the [emoji-mart `Picker`](https://github.com/missive/emoji-mart/tree/v5.5.2#-picker) component
11
+ */
12
+ pickerProps?: {
13
+ theme: 'auto' | 'light' | 'dark';
14
+ } & Record<string, unknown>;
15
+ /**
16
+ * [React Popper options](https://popper.js.org/docs/v2/constructors/#options) to be
17
+ * passed to the [react-popper `usePopper`](https://popper.js.org/react-popper/v2/hook/) hook
18
+ */
19
+ popperOptions?: Options;
7
20
  };
8
21
  export declare const EmojiPicker: (props: EmojiPickerProps) => JSX.Element;
9
22
  //# sourceMappingURL=EmojiPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmojiPicker.d.ts","sourceRoot":"","sources":["../../../src/components/Emojis/EmojiPicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,oBAAY,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAeF,eAAO,MAAM,WAAW,UAAW,gBAAgB,gBAmElD,CAAC"}
1
+ {"version":3,"file":"EmojiPicker.d.ts","sourceRoot":"","sources":["../../../src/components/Emojis/EmojiPicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW9C,oBAAY,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7E;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAeF,eAAO,MAAM,WAAW,UAAW,gBAAgB,gBAkElD,CAAC"}
@@ -9,12 +9,12 @@ import { Tooltip } from '../Tooltip';
9
9
  var classNames = {
10
10
  1: {
11
11
  buttonClassName: 'str-chat__input-flat-emojiselect',
12
- emojiPickerContainerClassName: undefined,
12
+ pickerContainerClassName: undefined,
13
13
  wrapperClassName: 'str-chat__emojiselect-wrapper',
14
14
  },
15
15
  2: {
16
16
  buttonClassName: 'str-chat__emoji-picker-button',
17
- emojiPickerContainerClassName: 'str-chat__message-textarea-emoji-picker-container',
17
+ pickerContainerClassName: 'str-chat__message-textarea-emoji-picker-container',
18
18
  wrapperClassName: 'str-chat__message-textarea-emoji-picker',
19
19
  },
20
20
  };
@@ -26,10 +26,8 @@ export var EmojiPicker = function (props) {
26
26
  var _e = useState(false), displayPicker = _e[0], setDisplayPicker = _e[1];
27
27
  var _f = useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
28
28
  var _g = useState(null), popperElement = _g[0], setPopperElement = _g[1];
29
- var _h = usePopper(referenceElement, popperElement, {
30
- placement: themeVersion === '2' ? 'top-end' : 'top-start',
31
- }), attributes = _h.attributes, styles = _h.styles;
32
- var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, emojiPickerContainerClassName = _j.emojiPickerContainerClassName, wrapperClassName = _j.wrapperClassName;
29
+ var _h = usePopper(referenceElement, popperElement, __assign({ placement: themeVersion === '2' ? 'top-end' : 'top-start' }, props.popperOptions)), attributes = _h.attributes, styles = _h.styles;
30
+ var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, pickerContainerClassName = _j.pickerContainerClassName, wrapperClassName = _j.wrapperClassName;
33
31
  var _k = props.ButtonIconComponent, ButtonIconComponent = _k === void 0 ? themeVersion === '2' ? EmojiPickerIcon : EmojiIconLarge : _k;
34
32
  useEffect(function () {
35
33
  if (!popperElement || !referenceElement)
@@ -44,18 +42,17 @@ export var EmojiPicker = function (props) {
44
42
  return function () { return window.removeEventListener('pointerdown', handlePointerDown); };
45
43
  }, [referenceElement, popperElement]);
46
44
  return (React.createElement("div", { className: (_a = props.wrapperClassName) !== null && _a !== void 0 ? _a : wrapperClassName },
47
- displayPicker && (React.createElement("div", __assign({ className: (_b = props.emojiPickerContainerClassName) !== null && _b !== void 0 ? _b : emojiPickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
48
- React.createElement(Picker, { data: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
45
+ displayPicker && (React.createElement("div", __assign({ className: (_b = props.pickerContainerClassName) !== null && _b !== void 0 ? _b : pickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
46
+ React.createElement(Picker, __assign({ data: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
49
47
  switch (_a.label) {
50
48
  case 0: return [4 /*yield*/, import('@emoji-mart/data')];
51
49
  case 1: return [2 /*return*/, (_a.sent()).default];
52
50
  }
53
51
  }); }); }, onEmojiSelect: function (e) {
54
52
  var _a;
55
- // @ts-ignore emoji-mart is missing types
56
53
  insertText(e.native);
57
54
  (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
58
- } }))),
55
+ } }, props.pickerProps)))),
59
56
  themeVersion === '1' && (React.createElement(Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
60
57
  React.createElement("button", { "aria-label": 'Emoji picker', className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React.createElement(ButtonIconComponent, null))));
61
58
  };
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var icons = require('../../icons-5ee8c22b.js');
5
+ var icons = require('../../icons-427fd8d5.js');
6
6
  var React = require('react');
7
7
  var Picker = require('@emoji-mart/react');
8
8
  require('react-dom');
@@ -56,12 +56,12 @@ var Picker__default = /*#__PURE__*/_interopDefaultLegacy(Picker);
56
56
  var classNames = {
57
57
  1: {
58
58
  buttonClassName: 'str-chat__input-flat-emojiselect',
59
- emojiPickerContainerClassName: undefined,
59
+ pickerContainerClassName: undefined,
60
60
  wrapperClassName: 'str-chat__emojiselect-wrapper',
61
61
  },
62
62
  2: {
63
63
  buttonClassName: 'str-chat__emoji-picker-button',
64
- emojiPickerContainerClassName: 'str-chat__message-textarea-emoji-picker-container',
64
+ pickerContainerClassName: 'str-chat__message-textarea-emoji-picker-container',
65
65
  wrapperClassName: 'str-chat__message-textarea-emoji-picker',
66
66
  },
67
67
  };
@@ -73,10 +73,8 @@ var EmojiPicker = function (props) {
73
73
  var _e = React.useState(false), displayPicker = _e[0], setDisplayPicker = _e[1];
74
74
  var _f = React.useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
75
75
  var _g = React.useState(null), popperElement = _g[0], setPopperElement = _g[1];
76
- var _h = icons.usePopper(referenceElement, popperElement, {
77
- placement: themeVersion === '2' ? 'top-end' : 'top-start',
78
- }), attributes = _h.attributes, styles = _h.styles;
79
- var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, emojiPickerContainerClassName = _j.emojiPickerContainerClassName, wrapperClassName = _j.wrapperClassName;
76
+ var _h = icons.usePopper(referenceElement, popperElement, icons.__assign({ placement: themeVersion === '2' ? 'top-end' : 'top-start' }, props.popperOptions)), attributes = _h.attributes, styles = _h.styles;
77
+ var _j = classNames[themeVersion], buttonClassName = _j.buttonClassName, pickerContainerClassName = _j.pickerContainerClassName, wrapperClassName = _j.wrapperClassName;
80
78
  var _k = props.ButtonIconComponent, ButtonIconComponent = _k === void 0 ? themeVersion === '2' ? icons.EmojiPickerIcon : icons.EmojiIconLarge : _k;
81
79
  React.useEffect(function () {
82
80
  if (!popperElement || !referenceElement)
@@ -91,18 +89,17 @@ var EmojiPicker = function (props) {
91
89
  return function () { return window.removeEventListener('pointerdown', handlePointerDown); };
92
90
  }, [referenceElement, popperElement]);
93
91
  return (React__default["default"].createElement("div", { className: (_a = props.wrapperClassName) !== null && _a !== void 0 ? _a : wrapperClassName },
94
- displayPicker && (React__default["default"].createElement("div", icons.__assign({ className: (_b = props.emojiPickerContainerClassName) !== null && _b !== void 0 ? _b : emojiPickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
95
- React__default["default"].createElement(Picker__default["default"], { data: function () { return icons.__awaiter(void 0, void 0, void 0, function () { return icons.__generator(this, function (_a) {
92
+ displayPicker && (React__default["default"].createElement("div", icons.__assign({ className: (_b = props.pickerContainerClassName) !== null && _b !== void 0 ? _b : pickerContainerClassName, style: styles.popper }, attributes.popper, { ref: setPopperElement }),
93
+ React__default["default"].createElement(Picker__default["default"], icons.__assign({ data: function () { return icons.__awaiter(void 0, void 0, void 0, function () { return icons.__generator(this, function (_a) {
96
94
  switch (_a.label) {
97
95
  case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@emoji-mart/data')); })];
98
96
  case 1: return [2 /*return*/, (_a.sent()).default];
99
97
  }
100
98
  }); }); }, onEmojiSelect: function (e) {
101
99
  var _a;
102
- // @ts-ignore emoji-mart is missing types
103
100
  insertText(e.native);
104
101
  (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
105
- } }))),
102
+ } }, props.pickerProps)))),
106
103
  themeVersion === '1' && (React__default["default"].createElement(icons.Tooltip, null, displayPicker ? t('Close emoji picker') : t('Open emoji picker'))),
107
104
  React__default["default"].createElement("button", { "aria-label": 'Emoji picker', className: (_c = props.buttonClassName) !== null && _c !== void 0 ? _c : buttonClassName, onClick: function () { return setDisplayPicker(function (cv) { return !cv; }); }, ref: setReferenceElement, type: 'button' }, ButtonIconComponent && React__default["default"].createElement(ButtonIconComponent, null))));
108
105
  };
@@ -1,5 +1,7 @@
1
1
  export { MentionProps } from './Mention';
2
- export { emojiMarkdownPlugin, mentionsMarkdownPlugin } from './rehypePlugins';
3
2
  export { escapeRegExp, matchMarkdownLinks, messageCodeBlocks } from './regex';
3
+ export * from './rehypePlugins';
4
+ export * from './remarkPlugins';
4
5
  export * from './renderText';
6
+ export { HNode } from './types';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Message/renderText/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9E,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Message/renderText/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
- export { emojiMarkdownPlugin, mentionsMarkdownPlugin } from './rehypePlugins';
2
1
  export { escapeRegExp, matchMarkdownLinks, messageCodeBlocks } from './regex';
2
+ export * from './rehypePlugins';
3
+ export * from './remarkPlugins';
3
4
  export * from './renderText';
@@ -0,0 +1,3 @@
1
+ import type { HNode } from '../types';
2
+ export declare const emojiMarkdownPlugin: () => (node: HNode) => import("hast-util-find-and-replace/lib").Node;
3
+ //# sourceMappingURL=emojiMarkdownPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emojiMarkdownPlugin.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,mBAAmB,eAIL,KAAK,kDAG/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { findAndReplace } from 'hast-util-find-and-replace';
2
+ import { u } from 'unist-builder';
3
+ import emojiRegex from 'emoji-regex';
4
+ export var emojiMarkdownPlugin = function () {
5
+ var replace = function (match) {
6
+ return u('element', { tagName: 'emoji' }, [u('text', match)]);
7
+ };
8
+ var transform = function (node) { return findAndReplace(node, emojiRegex(), replace); };
9
+ return transform;
10
+ };
@@ -0,0 +1,3 @@
1
+ export * from './emojiMarkdownPlugin';
2
+ export * from './mentionsMarkdownPlugin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/rehypePlugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './emojiMarkdownPlugin';
2
+ export * from './mentionsMarkdownPlugin';
@@ -0,0 +1,5 @@
1
+ import { DefaultStreamChatGenerics } from '../../../../types/types';
2
+ import { UserResponse } from 'stream-chat';
3
+ import type { HNode } from '../types';
4
+ export declare const mentionsMarkdownPlugin: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(mentioned_users: UserResponse<StreamChatGenerics>[]) => () => (tree: HNode) => HNode;
5
+ //# sourceMappingURL=mentionsMarkdownPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mentionsMarkdownPlugin.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,sBAAsB,0JAuBR,KAAK,KAAG,KAoClC,CAAC"}
@@ -1,8 +1,7 @@
1
+ import { escapeRegExp } from '../regex';
1
2
  import { findAndReplace } from 'hast-util-find-and-replace';
2
3
  import { u } from 'unist-builder';
3
4
  import { visit } from 'unist-util-visit';
4
- import emojiRegex from 'emoji-regex';
5
- import { escapeRegExp } from './regex';
6
5
  export var mentionsMarkdownPlugin = function (mentioned_users) { return function () {
7
6
  var mentioned_usernames = mentioned_users
8
7
  .map(function (user) { return user.name || user.id; })
@@ -51,10 +50,3 @@ export var mentionsMarkdownPlugin = function (mentioned_users) { return function
51
50
  };
52
51
  return transform;
53
52
  }; };
54
- export var emojiMarkdownPlugin = function () {
55
- var replace = function (match) {
56
- return u('element', { tagName: 'emoji' }, [u('text', match)]);
57
- };
58
- var transform = function (node) { return findAndReplace(node, emojiRegex(), replace); };
59
- return transform;
60
- };
@@ -0,0 +1,3 @@
1
+ import type { HNode } from '../types';
2
+ export declare const htmlToTextPlugin: () => (tree: HNode) => void;
3
+ //# sourceMappingURL=htmlToTextPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlToTextPlugin.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/remarkPlugins/htmlToTextPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAWtC,eAAO,MAAM,gBAAgB,eAJJ,KAAK,SAIiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { visit } from 'unist-util-visit';
2
+ var visitor = function (node) {
3
+ if (node.type !== 'html')
4
+ return;
5
+ node.type = 'text';
6
+ };
7
+ var transform = function (tree) {
8
+ visit(tree, visitor);
9
+ };
10
+ export var htmlToTextPlugin = function () { return transform; };
@@ -0,0 +1,3 @@
1
+ export * from './htmlToTextPlugin';
2
+ export * from './keepLineBreaksPlugin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/remarkPlugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './htmlToTextPlugin';
2
+ export * from './keepLineBreaksPlugin';
@@ -0,0 +1,3 @@
1
+ import type { HNode } from '../types';
2
+ export declare const keepLineBreaksPlugin: () => (tree: HNode) => void;
3
+ //# sourceMappingURL=keepLineBreaksPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keepLineBreaksPlugin.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAmCtC,eAAO,MAAM,oBAAoB,eAJR,KAAK,SAIqB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { __spreadArray } from "tslib";
2
+ import { visit } from 'unist-util-visit';
3
+ import { u } from 'unist-builder';
4
+ var visitor = function (node, index, parent) {
5
+ if (index === null || index === 0)
6
+ return;
7
+ if (!parent)
8
+ return;
9
+ if (!node.position)
10
+ return;
11
+ var prevSibling = parent.children.at(index - 1);
12
+ if (!(prevSibling === null || prevSibling === void 0 ? void 0 : prevSibling.position))
13
+ return;
14
+ if (node.position.start.line === prevSibling.position.start.line)
15
+ return false;
16
+ var ownStartLine = node.position.start.line;
17
+ var prevEndLine = prevSibling.position.end.line;
18
+ // the -1 is adjustment for the single line break into which multiple line breaks are converted
19
+ var countTruncatedLineBreaks = ownStartLine - prevEndLine - 1;
20
+ if (countTruncatedLineBreaks < 1)
21
+ return;
22
+ var lineBreaks = Array.from({ length: countTruncatedLineBreaks }, function () {
23
+ return u('break', { tagName: 'br' });
24
+ });
25
+ // @ts-ignore
26
+ parent.children = __spreadArray(__spreadArray(__spreadArray([], parent.children.slice(0, index), true), lineBreaks, true), parent.children.slice(index), true);
27
+ return;
28
+ };
29
+ var transform = function (tree) {
30
+ visit(tree, visitor);
31
+ };
32
+ export var keepLineBreaksPlugin = function () { return transform; };
@@ -0,0 +1,3 @@
1
+ import { Content, Root } from 'hast';
2
+ export declare type HNode = Content | Root;
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Message/renderText/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,oBAAY,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA0MnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iIAAiI;IACjI,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA0MnE,aAAK,qBAAqB,GACtB,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,YAAY,GACZ,mCAAmC,GACnC,iCAAiC,GACjC,mCAAmC,GACnC,8BAA8B,GAC9B,gCAAgC,GAChC,gCAAgC,GAChC,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,YAAY,CAAC;AAEjB,oBAAY,gBAAgB,CAC1B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG;IAC3E,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,eAAe,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAClD,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC9C,aAAa,EAAE,OAAO,KACnB,UAAU,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iIAAiI;IACjI,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qIAAqI;IACrI,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mLAAmL;IACnL,2BAA2B,CAAC,EAAE,mBAAmB,CAAC;IAClD,iHAAiH;IACjH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4LAA4L;IAC5L,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,6LAA6L;IAC7L,aAAa,CAAC,EAAE,yBAAyB,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yKAAyK;IACzK,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gJA2BvB,CAAC"}
@@ -7,6 +7,7 @@ import { useChannelActionContext, } from '../../context/ChannelActionContext';
7
7
  import { useChannelStateContext, } from '../../context/ChannelStateContext';
8
8
  import { useChatContext } from '../../context/ChatContext';
9
9
  import { useComponentContext } from '../../context/ComponentContext';
10
+ import { MessageListContextProvider } from '../../context/MessageListContext';
10
11
  import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';
11
12
  import { InfiniteScroll } from '../InfiniteScrollPaginator/InfiniteScroll';
12
13
  import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
@@ -110,7 +111,7 @@ var MessageListWithContext = function (props) {
110
111
  }
111
112
  }, [highlightedMessageId]);
112
113
  var showEmptyStateIndicator = elements.length === 0 && !threadList;
113
- return (React.createElement(React.Fragment, null,
114
+ return (React.createElement(MessageListContextProvider, { value: { listElement: listElement, scrollToBottom: scrollToBottom } },
114
115
  React.createElement(MessageListMainPanel, null,
115
116
  React.createElement("div", { className: "".concat(messageListClass, " ").concat(threadListClass), onScroll: onScroll, ref: setListElement, tabIndex: 0 }, showEmptyStateIndicator ? (React.createElement(EmptyStateIndicator, { key: 'empty-state-indicator', listType: threadList ? 'thread' : 'message' })) : (React.createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll str-chat__message-list-scroll', "data-testid": 'reverse-infinite-scroll', hasNextPage: props.hasMoreNewer, hasPreviousPage: props.hasMore, head: props.head, isLoading: props.loadingMore, loader: React.createElement("div", { className: 'str-chat__list__loading', key: 'loading-indicator' }, props.loadingMore && React.createElement(LoadingIndicator, { size: 20 })), loadNextPage: loadMoreNewer, loadPreviousPage: loadMore }, props.internalInfiniteScrollProps, { threshold: loadMoreScrollThreshold }),
116
117
  React.createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
@@ -0,0 +1,16 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ export declare type MessageListContextValue = {
3
+ /** The scroll container within which the messages and typing indicator are rendered */
4
+ listElement: HTMLDivElement | null;
5
+ /** Function that scrolls the `listElement` to the bottom. */
6
+ scrollToBottom: () => void;
7
+ };
8
+ export declare const MessageListContext: React.Context<MessageListContextValue | undefined>;
9
+ /**
10
+ * Context provider for components rendered within the `MessageList`
11
+ */
12
+ export declare const MessageListContextProvider: ({ children, value, }: React.PropsWithChildren<{
13
+ value: MessageListContextValue;
14
+ }>) => JSX.Element;
15
+ export declare const useMessageListContext: (componentName?: string) => MessageListContextValue;
16
+ //# sourceMappingURL=MessageListContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageListContext.d.ts","sourceRoot":"","sources":["../../src/context/MessageListContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAE5E,oBAAY,uBAAuB,GAAG;IACpC,uFAAuF;IACvF,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,oDAAgE,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,0BAA0B;WAI9B,uBAAuB;kBAK/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAAoB,MAAM,4BAY3D,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React, { createContext, useContext } from 'react';
2
+ export var MessageListContext = createContext(undefined);
3
+ /**
4
+ * Context provider for components rendered within the `MessageList`
5
+ */
6
+ export var MessageListContextProvider = function (_a) {
7
+ var children = _a.children, value = _a.value;
8
+ return (React.createElement(MessageListContext.Provider, { value: value }, children));
9
+ };
10
+ export var useMessageListContext = function (componentName) {
11
+ var contextValue = useContext(MessageListContext);
12
+ if (!contextValue) {
13
+ console.warn("The useMessageListContext hook was called outside of the MessageListContext provider. Make sure this hook is called within the MessageList component. The errored call is located in the ".concat(componentName, " component."));
14
+ return {};
15
+ }
16
+ return contextValue;
17
+ };
@@ -4,6 +4,7 @@ export * from './ChatContext';
4
4
  export * from './ComponentContext';
5
5
  export * from './MessageContext';
6
6
  export * from './MessageInputContext';
7
+ export * from './MessageListContext';
7
8
  export * from './TranslationContext';
8
9
  export * from './TypingContext';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
@@ -4,5 +4,6 @@ export * from './ChatContext';
4
4
  export * from './ComponentContext';
5
5
  export * from './MessageContext';
6
6
  export * from './MessageInputContext';
7
+ export * from './MessageListContext';
7
8
  export * from './TranslationContext';
8
9
  export * from './TypingContext';
@@ -330,6 +330,23 @@ var useMessageInputContext = function (componentName) {
330
330
  return contextValue;
331
331
  };
332
332
 
333
+ var MessageListContext = React.createContext(undefined);
334
+ /**
335
+ * Context provider for components rendered within the `MessageList`
336
+ */
337
+ var MessageListContextProvider = function (_a) {
338
+ var children = _a.children, value = _a.value;
339
+ return (React__default["default"].createElement(MessageListContext.Provider, { value: value }, children));
340
+ };
341
+ var useMessageListContext = function (componentName) {
342
+ var contextValue = React.useContext(MessageListContext);
343
+ if (!contextValue) {
344
+ console.warn("The useMessageListContext hook was called outside of the MessageListContext provider. Make sure this hook is called within the MessageList component. The errored call is located in the ".concat(componentName, " component."));
345
+ return {};
346
+ }
347
+ return contextValue;
348
+ };
349
+
333
350
  var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Zugestellt";var Flag$b="Meldung";var Menu$b="Menü";var Mute$b="Stumm schalten";var New$b="Neu";var Pin$b="Pin";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Shuffle$b="Mischen";var Thread$b="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Pin entfernen";var live$b="live";var replyCount_one$b="1 Antwort";var replyCount_other$b="{{ count }} Antworten";var searchResultsCount_one$b="1 Ergebnis";var searchResultsCount_other$b="{{ count }} Ergebnisse";var deTranslations = {"Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, Wiederherstellung der Verbindung...",Delete:Delete$b,Delivered:Delivered$b,"Drag your files here":"Ziehen Sie Ihre Dateien hierher","Drag your files here to add to your post":"Ziehen Sie Ihre Dateien hierher, um sie Ihrem Beitrag hinzuzufügen","Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Verbindungsfehler zum Chat, Aktualisiere die Seite um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error muting a user ...":"Fehler beim Stummschalten eines Nutzers.","Error pinning message":"Fehler beim Pinnen der Nachricht","Error removing message pin":"Fehler beim Entfernen der gepinnten Nachricht","Error unmuting a user ...":"Stummschaltung des Nutzers fehlgeschlagen ...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Hochladen des Bildes fehlgeschlagen","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}",Flag:Flag$b,"Latest Messages":"Neueste Nachrichten","Load more":"Mehr laden",Menu:Menu$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich gemeldet","Message pinned":"Nachricht gepinnt",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No chats here yet…":"Noch keine Chats hier...","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Open emoji picker":"Emoji-Picker öffnen","People matching":"Passende Personen",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Senden der Nachrichtenanfrage fehlgeschlagen","Sending...":"Senden...",Shuffle:Shuffle$b,"Slow Mode ON":"Slow-Mode EIN","Some of the files will not be accepted":"Einige der Dateien werden nicht akzeptiert","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$b,"Type your message":"Nachricht eingeben",Unmute:Unmute$b,Unpin:Unpin$b,"Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","Wait until all attachments have uploaded":"Bitte warten, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Du hast momentan noch keinen Channels","You've reached the maximum number of files":"Die maximale Dateianzahl ist erreicht","ban-command-args":"[@Benutzername] [Text]","ban-command-description":"Einen Benutzer verbannen","giphy-command-args":"[Text]","giphy-command-description":"Poste ein zufälliges Gif in den Kanal",live:live$b,"mute-command-args":"[@Benutzername]","mute-command-description":"Stummschalten eines Benutzers",replyCount_one:replyCount_one$b,replyCount_other:replyCount_other$b,searchResultsCount_one:searchResultsCount_one$b,searchResultsCount_other:searchResultsCount_other$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","unban-command-args":"[@Benutzername]","unban-command-description":"Einen Benutzer entbannen","unmute-command-args":"[@Benutzername]","unmute-command-description":"Stummschaltung eines Benutzers aufheben","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ user }} is typing...":"{{ user }} tippt...","{{ users }} and more are typing...":"{{ users }} und mehr tippen...","{{ users }} and {{ user }} are typing...":"{{ users }} und {{ user }} tippen...","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anhang..."};
334
351
 
335
352
  var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Menu$a="Menu";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Shuffle$a="Shuffle";var Thread$a="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var replyCount_one$a="1 reply";var replyCount_other$a="{{ count }} replies";var searchResultsCount_one$a="1 result";var searchResultsCount_other$a="{{ count }} results";var enTranslations = {"Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Drag your files here":"Drag your files here","Drag your files here to add to your post":"Drag your files here to add to your post","Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,"Latest Messages":"Latest Messages","Load more":"Load more",Menu:Menu$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No chats here yet…":"No chats here yet…","No results found":"No results found","Nothing yet...":"Nothing yet...","Open emoji picker":"Open emoji picker","People matching":"People matching",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...",Shuffle:Shuffle$a,"Slow Mode ON":"Slow Mode ON","Some of the files will not be accepted":"Some of the files will not be accepted","This message was deleted...":"This message was deleted...",Thread:Thread$a,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,replyCount_one:replyCount_one$a,replyCount_other:replyCount_other$a,searchResultsCount_one:searchResultsCount_one$a,searchResultsCount_other:searchResultsCount_other$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ user }} is typing...":"{{ user }} is typing...","{{ users }} and more are typing...":"{{ users }} and more are typing...","{{ users }} and {{ user }} are typing...":"{{ users }} and {{ user }} are typing...","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
@@ -3077,6 +3094,8 @@ exports.LoadingIndicatorIcon = LoadingIndicatorIcon;
3077
3094
  exports.MessageContext = MessageContext;
3078
3095
  exports.MessageInputContext = MessageInputContext;
3079
3096
  exports.MessageInputContextProvider = MessageInputContextProvider;
3097
+ exports.MessageListContext = MessageListContext;
3098
+ exports.MessageListContextProvider = MessageListContextProvider;
3080
3099
  exports.MessageProvider = MessageProvider;
3081
3100
  exports.PopperTooltip = PopperTooltip;
3082
3101
  exports.RetryIcon = RetryIcon;
@@ -3120,6 +3139,7 @@ exports.useChatContext = useChatContext;
3120
3139
  exports.useComponentContext = useComponentContext;
3121
3140
  exports.useMessageContext = useMessageContext;
3122
3141
  exports.useMessageInputContext = useMessageInputContext;
3142
+ exports.useMessageListContext = useMessageListContext;
3123
3143
  exports.usePopper = usePopper;
3124
3144
  exports.useTranslationContext = useTranslationContext;
3125
3145
  exports.useTypingContext = useTypingContext;