stream-chat-react 10.14.0 → 10.15.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 (117) hide show
  1. package/dist/browser.full-bundle.js +6528 -6421
  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/AutoCompleteTextarea/List.js +1 -1
  6. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  7. package/dist/components/Avatar/Avatar.js +1 -1
  8. package/dist/components/DateSeparator/DateSeparator.js +1 -1
  9. package/dist/components/EventComponent/EventComponent.js +1 -1
  10. package/dist/components/Message/FixedHeightMessage.js +1 -1
  11. package/dist/components/Message/MessageText.js +2 -2
  12. package/dist/components/Message/index.d.ts +1 -0
  13. package/dist/components/Message/index.d.ts.map +1 -1
  14. package/dist/components/Message/index.js +1 -0
  15. package/dist/components/Message/renderText/Anchor.d.ts +4 -0
  16. package/dist/components/Message/renderText/Anchor.d.ts.map +1 -0
  17. package/dist/components/Message/renderText/Anchor.js +10 -0
  18. package/dist/components/Message/renderText/Emoji.d.ts +3 -0
  19. package/dist/components/Message/renderText/Emoji.d.ts.map +1 -0
  20. package/dist/components/Message/renderText/Emoji.js +5 -0
  21. package/dist/components/Message/renderText/Mention.d.ts +18 -0
  22. package/dist/components/Message/renderText/Mention.d.ts.map +1 -0
  23. package/dist/components/Message/renderText/Mention.js +5 -0
  24. package/dist/components/Message/renderText/index.d.ts +5 -0
  25. package/dist/components/Message/renderText/index.d.ts.map +1 -0
  26. package/dist/components/Message/renderText/index.js +3 -0
  27. package/dist/components/Message/renderText/regex.d.ts +5 -0
  28. package/dist/components/Message/renderText/regex.d.ts.map +1 -0
  29. package/dist/components/Message/renderText/regex.js +21 -0
  30. package/dist/components/Message/renderText/rehypePlugins.d.ts +7 -0
  31. package/dist/components/Message/renderText/rehypePlugins.d.ts.map +1 -0
  32. package/dist/components/Message/renderText/rehypePlugins.js +60 -0
  33. package/dist/components/Message/renderText/renderText.d.ts +21 -0
  34. package/dist/components/Message/renderText/renderText.d.ts.map +1 -0
  35. package/dist/components/Message/renderText/renderText.js +126 -0
  36. package/dist/components/Message/types.d.ts +1 -1
  37. package/dist/components/Message/types.d.ts.map +1 -1
  38. package/dist/components/Message/utils.d.ts +1 -0
  39. package/dist/components/Message/utils.d.ts.map +1 -1
  40. package/dist/components/Message/utils.js +8 -0
  41. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  42. package/dist/components/MessageList/MessageList.js +1 -3
  43. package/dist/components/MessageList/VirtualizedMessageList.d.ts +36 -6
  44. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  45. package/dist/components/MessageList/VirtualizedMessageList.js +39 -122
  46. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +23 -0
  47. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -0
  48. package/dist/components/MessageList/VirtualizedMessageListComponents.js +70 -0
  49. package/dist/components/MessageList/hooks/MessageList/index.d.ts +5 -0
  50. package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +1 -0
  51. package/dist/components/MessageList/hooks/MessageList/index.js +4 -0
  52. package/dist/components/MessageList/hooks/{useEnrichedMessages.d.ts → MessageList/useEnrichedMessages.d.ts} +3 -3
  53. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -0
  54. package/dist/components/MessageList/hooks/{useEnrichedMessages.js → MessageList/useEnrichedMessages.js} +3 -3
  55. package/dist/components/MessageList/hooks/{useMessageListElements.d.ts → MessageList/useMessageListElements.d.ts} +4 -4
  56. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -0
  57. package/dist/components/MessageList/hooks/{useMessageListElements.js → MessageList/useMessageListElements.js} +9 -9
  58. package/dist/components/MessageList/hooks/{useMessageListScrollManager.d.ts → MessageList/useMessageListScrollManager.d.ts} +2 -2
  59. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -0
  60. package/dist/components/MessageList/hooks/{useMessageListScrollManager.js → MessageList/useMessageListScrollManager.js} +1 -1
  61. package/dist/components/MessageList/hooks/{useScrollLocationLogic.d.ts → MessageList/useScrollLocationLogic.d.ts} +2 -2
  62. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -0
  63. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +7 -0
  64. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +1 -0
  65. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.js +6 -0
  66. package/dist/components/MessageList/hooks/{useGiphyPreview.d.ts → VirtualizedMessageList/useGiphyPreview.d.ts} +2 -2
  67. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +1 -0
  68. package/dist/components/MessageList/hooks/{useGiphyPreview.js → VirtualizedMessageList/useGiphyPreview.js} +1 -1
  69. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +10 -0
  70. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +1 -0
  71. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +20 -0
  72. package/dist/components/MessageList/hooks/{useNewMessageNotification.d.ts → VirtualizedMessageList/useNewMessageNotification.d.ts} +2 -2
  73. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -0
  74. package/dist/components/MessageList/hooks/{usePrependMessagesCount.d.ts → VirtualizedMessageList/usePrependMessagesCount.d.ts} +2 -2
  75. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +1 -0
  76. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +12 -0
  77. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +1 -0
  78. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +28 -0
  79. package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.d.ts → VirtualizedMessageList/useShouldForceScrollToBottom.d.ts} +2 -2
  80. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +1 -0
  81. package/dist/components/MessageList/hooks/index.d.ts +7 -7
  82. package/dist/components/MessageList/hooks/index.d.ts.map +1 -1
  83. package/dist/components/MessageList/hooks/index.js +7 -7
  84. package/dist/context/MessageContext.d.ts +1 -1
  85. package/dist/context/MessageContext.d.ts.map +1 -1
  86. package/dist/index.cjs.js +627 -584
  87. package/dist/index.cjs.js.map +1 -1
  88. package/dist/index.d.ts +0 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +0 -2
  91. package/dist/utils/generateRandomId.d.ts +6 -0
  92. package/dist/utils/generateRandomId.d.ts.map +1 -0
  93. package/dist/utils/generateRandomId.js +5 -0
  94. package/dist/utils/getWholeChar.d.ts +2 -0
  95. package/dist/utils/getWholeChar.d.ts.map +1 -0
  96. package/dist/utils/getWholeChar.js +26 -0
  97. package/dist/utils/index.d.ts +4 -0
  98. package/dist/utils/index.d.ts.map +1 -0
  99. package/dist/utils/index.js +3 -0
  100. package/dist/version.d.ts +1 -1
  101. package/dist/version.js +1 -1
  102. package/package.json +2 -2
  103. package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +0 -1
  104. package/dist/components/MessageList/hooks/useGiphyPreview.d.ts.map +0 -1
  105. package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +0 -1
  106. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +0 -1
  107. package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +0 -1
  108. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +0 -1
  109. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +0 -1
  110. package/dist/components/MessageList/hooks/useShouldForceScrollToBottom.d.ts.map +0 -1
  111. package/dist/utils.d.ts +0 -42
  112. package/dist/utils.d.ts.map +0 -1
  113. package/dist/utils.js +0 -253
  114. /package/dist/components/MessageList/hooks/{useScrollLocationLogic.js → MessageList/useScrollLocationLogic.js} +0 -0
  115. /package/dist/components/MessageList/hooks/{useNewMessageNotification.js → VirtualizedMessageList/useNewMessageNotification.js} +0 -0
  116. /package/dist/components/MessageList/hooks/{usePrependMessagesCount.js → VirtualizedMessageList/usePrependMessagesCount.js} +0 -0
  117. /package/dist/components/MessageList/hooks/{useShouldForceScrollToBottom.js → VirtualizedMessageList/useShouldForceScrollToBottom.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -2,5 +2,4 @@ export * from './components';
2
2
  export * from './context';
3
3
  export * from './i18n';
4
4
  export * from './utils';
5
- export { getChannel } from './utils/getChannel';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,4 @@
1
1
  export * from './components';
2
2
  export * from './context';
3
3
  export * from './i18n';
4
- // todo: distribute utils into separate files
5
4
  export * from './utils';
6
- export { getChannel } from './utils/getChannel';
@@ -0,0 +1,6 @@
1
+ import { nanoid } from 'nanoid';
2
+ /**
3
+ * @deprecated will be removed in the next major release
4
+ */
5
+ export declare const generateRandomId: typeof nanoid;
6
+ //# sourceMappingURL=generateRandomId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateRandomId.d.ts","sourceRoot":"","sources":["../../src/utils/generateRandomId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { nanoid } from 'nanoid';
2
+ /**
3
+ * @deprecated will be removed in the next major release
4
+ */
5
+ export var generateRandomId = nanoid;
@@ -0,0 +1,2 @@
1
+ export declare const getWholeChar: (str: string, i: number) => string;
2
+ //# sourceMappingURL=getWholeChar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWholeChar.d.ts","sourceRoot":"","sources":["../../src/utils/getWholeChar.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,QAAS,MAAM,KAAK,MAAM,WAgClD,CAAC"}
@@ -0,0 +1,26 @@
1
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt#getting_whole_characters
2
+ export var getWholeChar = function (str, i) {
3
+ var code = str.charCodeAt(i);
4
+ if (Number.isNaN(code))
5
+ return '';
6
+ if (code < 0xd800 || code > 0xdfff)
7
+ return str.charAt(i);
8
+ if (0xd800 <= code && code <= 0xdbff) {
9
+ if (str.length <= i + 1) {
10
+ throw 'High surrogate without following low surrogate';
11
+ }
12
+ var next = str.charCodeAt(i + 1);
13
+ if (0xdc00 > next || next > 0xdfff) {
14
+ throw 'High surrogate without following low surrogate';
15
+ }
16
+ return str.charAt(i) + str.charAt(i + 1);
17
+ }
18
+ if (i === 0) {
19
+ throw 'Low surrogate without preceding high surrogate';
20
+ }
21
+ var prev = str.charCodeAt(i - 1);
22
+ if (0xd800 > prev || prev > 0xdbff) {
23
+ throw 'Low surrogate without preceding high surrogate';
24
+ }
25
+ return '';
26
+ };
@@ -0,0 +1,4 @@
1
+ export * from './generateRandomId';
2
+ export * from './getChannel';
3
+ export * from './getWholeChar';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './generateRandomId';
2
+ export * from './getChannel';
3
+ export * from './getWholeChar';
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "10.14.0";
1
+ export declare const version = "10.15.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '10.14.0';
1
+ export var version = '10.15.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stream-chat-react",
3
- "version": "10.14.0",
3
+ "version": "10.15.0",
4
4
  "description": "React components to create chat conversations or livestream style chat",
5
5
  "author": "GetStream",
6
6
  "homepage": "https://getstream.io/chat/",
@@ -169,7 +169,7 @@
169
169
  "rollup-plugin-url": "^3.0.1",
170
170
  "rollup-plugin-visualizer": "^4.2.0",
171
171
  "semantic-release": "^19.0.5",
172
- "stream-chat": "^8.12.4",
172
+ "stream-chat": "^8.13.1",
173
173
  "style-loader": "^2.0.0",
174
174
  "ts-jest": "^26.5.1",
175
175
  "typescript": "^4.7.4",
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEnrichedMessages.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useEnrichedMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,UAAU,EAAgC,MAAM,UAAU,CAAC;AAKpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,mBAAmB;;0BAIR,OAAO;yBACR,OAAO;6BACH,OAAO;;mBAEjB,OAAO;mLAKL,OAAO,KACnB,UAAU;;;;;CAsDhB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGiphyPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useGiphyPreview.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,eAAe,2GAGJ,OAAO;;;CAsB9B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageListElements.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMessageListElements.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAmB,UAAU,EAAE,MAAM,UAAU,CAAC;AAWvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,aAAK,kBAAkB,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,aAAK,2BAA2B,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,eAAO,MAAM,sBAAsB,iKAkGlC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageListScrollManager.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMessageListScrollManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,oBAAY,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;IACjD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAGF,wBAAgB,2BAA2B,CACzC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,MAAM,EAAE,iCAAiC,CAAC,kBAAkB,CAAC,oBAmErC,MAAM,UAG/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNewMessageNotification.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useNewMessageNotification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,wBAAgB,yBAAyB,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAEhF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAC7C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,CAAC,EAAE,OAAO;;;;;;EA6CvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrependMessagesCount.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/usePrependMessagesCount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,wBAAgB,yBAAyB,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,UA2DzE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScrollLocationLogic.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useScrollLocationLogic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,oBAAY,4BAA4B,CACtC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;sBA0DvB,aAAa,CAAC,cAAc,CAAC;;;CAgCxC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useShouldForceScrollToBottom.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useShouldForceScrollToBottom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,wBAAgB,4BAA4B,CAC1C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,iBA2BtE"}
package/dist/utils.d.ts DELETED
@@ -1,42 +0,0 @@
1
- import { ComponentType } from 'react';
2
- import { nanoid } from 'nanoid';
3
- import { Options } from 'react-markdown';
4
- import type { ReactMarkdownProps } from 'react-markdown/lib/complex-types';
5
- import type { Content, Root } from 'hast';
6
- import type { UserResponse } from 'stream-chat';
7
- import type { DefaultStreamChatGenerics } from './types/types';
8
- export declare const isOnlyEmojis: (text?: string) => boolean;
9
- declare type HNode = Content | Root;
10
- export declare const matchMarkdownLinks: (message: string) => (string | null)[];
11
- export declare const messageCodeBlocks: (message: string) => RegExpMatchArray;
12
- export declare type MentionProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ReactMarkdownProps & {
13
- /**
14
- * @deprecated will be removed in the next major release, transition to using `node.mentionedUser` instead
15
- */
16
- mentioned_user: UserResponse<StreamChatGenerics>;
17
- node: {
18
- /**
19
- * @deprecated will be removed in the next major release, transition to using `node.mentionedUser` instead
20
- */
21
- mentioned_user: UserResponse<StreamChatGenerics>;
22
- mentionedUser: UserResponse<StreamChatGenerics>;
23
- };
24
- };
25
- export declare const markDownRenderers: RenderTextOptions['customMarkDownRenderers'];
26
- export declare const emojiMarkdownPlugin: () => (node: HNode) => import("hast-util-find-and-replace/lib").Node;
27
- export declare const mentionsMarkdownPlugin: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(mentioned_users: UserResponse<StreamChatGenerics>[]) => () => (tree: HNode) => HNode;
28
- export declare type RenderTextOptions<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
29
- customMarkDownRenderers?: Options['components'] & Partial<{
30
- emoji: ComponentType<ReactMarkdownProps>;
31
- mention: ComponentType<MentionProps<StreamChatGenerics>>;
32
- }>;
33
- };
34
- export declare const renderText: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(text?: string, mentionedUsers?: UserResponse<StreamChatGenerics>[] | undefined, { customMarkDownRenderers }?: RenderTextOptions) => JSX.Element | null;
35
- export declare function escapeRegExp(text: string): string;
36
- /**
37
- * @deprecated will be removed in the next major release
38
- */
39
- export declare const generateRandomId: typeof nanoid;
40
- export declare const getWholeChar: (str: string, i: number) => string;
41
- export {};
42
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAkB,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAsB,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AASxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,YAAY,UAAW,MAAM,YAOzC,CAAC;AAsBF,aAAK,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5B,eAAO,MAAM,kBAAkB,YAAa,MAAM,sBAajD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,qBAIhD,CAAC;AA4CF,oBAAY,YAAY,CACtB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,kBAAkB,GAAG;IACvB;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACjD,IAAI,EAAE;QACJ;;WAEG;QACH,cAAc,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;KACjD,CAAC;CACH,CAAC;AAWF,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,yBAAyB,CAI1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAIL,KAAK,kDAG/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,0JAuBR,KAAK,KAAG,KAoClC,CAAC;AAEF,oBAAY,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,uBAAuB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7C,OAAO,CAAC;QACN,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAC1D,CAAC,CAAC;CACN,CAAC;AAEF,eAAO,MAAM,UAAU,4FAGd,MAAM,iGAEgB,iBAAiB,uBAqG/C,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAAS,CAAC;AAGvC,eAAO,MAAM,YAAY,QAAS,MAAM,KAAK,MAAM,WAgClD,CAAC"}
package/dist/utils.js DELETED
@@ -1,253 +0,0 @@
1
- import { __assign, __rest, __spreadArray } from "tslib";
2
- import React from 'react';
3
- import emojiRegex from 'emoji-regex';
4
- import { find } from 'linkifyjs';
5
- import { nanoid } from 'nanoid';
6
- import { findAndReplace } from 'hast-util-find-and-replace';
7
- import ReactMarkdown, { uriTransformer } from 'react-markdown';
8
- import { u } from 'unist-builder';
9
- import { visit } from 'unist-util-visit';
10
- import remarkGfm from 'remark-gfm';
11
- import uniqBy from 'lodash.uniqby';
12
- import clsx from 'clsx';
13
- export var isOnlyEmojis = function (text) {
14
- if (!text)
15
- return false;
16
- var noEmojis = text.replace(emojiRegex(), '');
17
- var noSpace = noEmojis.replace(/[\s\n]/gm, '');
18
- return !noSpace;
19
- };
20
- var allowedMarkups = [
21
- 'html',
22
- 'text',
23
- 'br',
24
- 'p',
25
- 'em',
26
- 'strong',
27
- 'a',
28
- 'ol',
29
- 'ul',
30
- 'li',
31
- 'code',
32
- 'pre',
33
- 'blockquote',
34
- 'del',
35
- // custom types (tagNames)
36
- 'emoji',
37
- 'mention',
38
- ];
39
- export var matchMarkdownLinks = function (message) {
40
- var regexMdLinks = /\[([^[]+)\](\(.*\))/gm;
41
- var matches = message.match(regexMdLinks);
42
- var singleMatch = /\[([^[]+)\]\((.*)\)/;
43
- var links = matches
44
- ? matches.map(function (match) {
45
- var i = singleMatch.exec(match);
46
- return i && [i[1], i[2]];
47
- })
48
- : [];
49
- return links.flat();
50
- };
51
- export var messageCodeBlocks = function (message) {
52
- var codeRegex = /```[a-z]*\n[\s\S]*?\n```|`[a-z]*[\s\S]*?`/gm;
53
- var matches = message.match(codeRegex);
54
- return matches || [];
55
- };
56
- var detectHttp = /(http(s?):\/\/)?(www\.)?/;
57
- function formatUrlForDisplay(url) {
58
- try {
59
- return decodeURIComponent(url).replace(detectHttp, '');
60
- }
61
- catch (e) {
62
- return url;
63
- }
64
- }
65
- function encodeDecode(url) {
66
- try {
67
- return encodeURI(decodeURIComponent(url));
68
- }
69
- catch (error) {
70
- return url;
71
- }
72
- }
73
- var Anchor = function (_a) {
74
- var children = _a.children, href = _a.href;
75
- var isEmail = href === null || href === void 0 ? void 0 : href.startsWith('mailto:');
76
- var isUrl = href === null || href === void 0 ? void 0 : href.startsWith('http');
77
- if (!href || (!isEmail && !isUrl))
78
- return React.createElement(React.Fragment, null, children);
79
- return (React.createElement("a", { className: clsx({ 'str-chat__message-url-link': isUrl }), href: href, rel: 'nofollow noreferrer noopener', target: '_blank' }, children));
80
- };
81
- var Emoji = function (_a) {
82
- var children = _a.children;
83
- return (React.createElement("span", { className: 'inline-text-emoji', "data-testid": 'inline-text-emoji' }, children));
84
- };
85
- var Mention = function (_a) {
86
- var children = _a.children, mentionedUser = _a.node.mentionedUser;
87
- return (React.createElement("span", { className: 'str-chat__message-mention', "data-user-id": mentionedUser.id }, children));
88
- };
89
- export var markDownRenderers = {
90
- a: Anchor,
91
- emoji: Emoji,
92
- mention: Mention,
93
- };
94
- export var emojiMarkdownPlugin = function () {
95
- var replace = function (match) {
96
- return u('element', { tagName: 'emoji' }, [u('text', match)]);
97
- };
98
- var transform = function (node) { return findAndReplace(node, emojiRegex(), replace); };
99
- return transform;
100
- };
101
- export var mentionsMarkdownPlugin = function (mentioned_users) { return function () {
102
- var mentioned_usernames = mentioned_users
103
- .map(function (user) { return user.name || user.id; })
104
- .filter(Boolean)
105
- .map(escapeRegExp);
106
- var mentionedUsersRegex = new RegExp(mentioned_usernames.map(function (username) { return "@".concat(username); }).join('|'), 'g');
107
- var replace = function (match) {
108
- var usernameOrId = match.replace('@', '');
109
- var user = mentioned_users.find(function (_a) {
110
- var id = _a.id, name = _a.name;
111
- return name === usernameOrId || id === usernameOrId;
112
- });
113
- return u('element', { mentionedUser: user, tagName: 'mention' }, [u('text', match)]);
114
- };
115
- var transform = function (tree) {
116
- if (!mentioned_usernames.length)
117
- return tree;
118
- // handles special cases of mentions where user.name is an e-mail
119
- // Remark GFM translates all e-mail-like text nodes to links creating
120
- // two separate child nodes "@" and "your.name@as.email" instead of
121
- // keeping it as one text node with value "@your.name@as.email"
122
- // this piece finds these two separated nodes and merges them together
123
- // before "replace" function takes over
124
- visit(tree, function (node, index, parent) {
125
- var _a;
126
- if (index === null)
127
- return;
128
- if (!parent)
129
- return;
130
- var nextChild = parent.children.at(index + 1);
131
- var nextChildHref = (_a = nextChild === null || nextChild === void 0 ? void 0 : nextChild.properties) === null || _a === void 0 ? void 0 : _a.href;
132
- if (node.type === 'text' &&
133
- // text value has to have @ sign at the end of the string
134
- // and no other characters except whitespace can precede it
135
- // valid cases: "text @", "@", " @"
136
- // invalid cases: "text@", "@text",
137
- /.?\s?@$|^@$/.test(node.value) &&
138
- (nextChildHref === null || nextChildHref === void 0 ? void 0 : nextChildHref.startsWith('mailto:'))) {
139
- var newTextValue = node.value.replace(/@$/, '');
140
- var username = nextChildHref.replace('mailto:', '');
141
- parent.children[index] = u('text', newTextValue);
142
- parent.children[index + 1] = u('text', "@".concat(username));
143
- }
144
- });
145
- return findAndReplace(tree, mentionedUsersRegex, replace);
146
- };
147
- return transform;
148
- }; };
149
- export var renderText = function (text, mentionedUsers, _a) {
150
- var _b = _a === void 0 ? {} : _a, customMarkDownRenderers = _b.customMarkDownRenderers;
151
- // take the @ mentions and turn them into markdown?
152
- // translate links
153
- if (!text)
154
- return null;
155
- if (text.trim().length === 1)
156
- return React.createElement(React.Fragment, null, text);
157
- var newText = text;
158
- var markdownLinks = matchMarkdownLinks(newText);
159
- var codeBlocks = messageCodeBlocks(newText);
160
- // extract all valid links/emails within text and replace it with proper markup
161
- uniqBy(__spreadArray(__spreadArray([], find(newText, 'email'), true), find(newText, 'url'), true), 'value').forEach(function (_a) {
162
- var href = _a.href, type = _a.type, value = _a.value;
163
- var linkIsInBlock = codeBlocks.some(function (block) { return block === null || block === void 0 ? void 0 : block.includes(value); });
164
- // check if message is already markdown
165
- var noParsingNeeded = markdownLinks &&
166
- markdownLinks.filter(function (text) {
167
- var strippedHref = href === null || href === void 0 ? void 0 : href.replace(detectHttp, '');
168
- var strippedText = text === null || text === void 0 ? void 0 : text.replace(detectHttp, '');
169
- if (!strippedHref || !strippedText)
170
- return false;
171
- return strippedHref.includes(strippedText) || strippedText.includes(strippedHref);
172
- });
173
- if (noParsingNeeded.length > 0 || linkIsInBlock)
174
- return;
175
- try {
176
- // special case for mentions:
177
- // it could happen that a user's name matches with an e-mail format pattern.
178
- // in that case, we check whether the found e-mail is actually a mention
179
- // by naively checking for an existence of @ sign in front of it.
180
- if (type === 'email' && mentionedUsers) {
181
- var emailMatchesWithName = mentionedUsers.some(function (u) { return u.name === value; });
182
- if (emailMatchesWithName) {
183
- newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), function (match, position) {
184
- var isMention = newText.charAt(position - 1) === '@';
185
- // in case of mention, we leave the match in its original form,
186
- // and we let `mentionsMarkdownPlugin` to do its job
187
- return isMention ? match : "[".concat(match, "](").concat(encodeDecode(href), ")");
188
- });
189
- return;
190
- }
191
- }
192
- var displayLink = type === 'email' ? value : formatUrlForDisplay(href);
193
- newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[".concat(displayLink, "](").concat(encodeDecode(href), ")"));
194
- }
195
- catch (e) {
196
- void e;
197
- }
198
- });
199
- var rehypePlugins = [emojiMarkdownPlugin];
200
- if (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) {
201
- rehypePlugins.push(mentionsMarkdownPlugin(mentionedUsers));
202
- }
203
- // TODO: remove in the next major release
204
- if (customMarkDownRenderers === null || customMarkDownRenderers === void 0 ? void 0 : customMarkDownRenderers.mention) {
205
- var MentionComponent_1 = customMarkDownRenderers['mention'];
206
- // eslint-disable-next-line react/display-name
207
- customMarkDownRenderers['mention'] = function (_a) {
208
- var node = _a.node, rest = __rest(_a, ["node"]);
209
- return (React.createElement(MentionComponent_1
210
- // @ts-ignore
211
- , __assign({
212
- // @ts-ignore
213
- mentioned_user: node.mentionedUser,
214
- // @ts-ignore
215
- node: __assign({ mentioned_user: node.mentionedUser }, node) }, rest)));
216
- };
217
- }
218
- var rehypeComponents = __assign(__assign({}, markDownRenderers), customMarkDownRenderers);
219
- return (React.createElement(ReactMarkdown, { allowedElements: allowedMarkups, components: rehypeComponents, rehypePlugins: rehypePlugins, remarkPlugins: [[remarkGfm, { singleTilde: false }]], skipHtml: true, transformLinkUri: function (uri) { return (uri.startsWith('app://') ? uri : uriTransformer(uri)); }, unwrapDisallowed: true }, newText));
220
- };
221
- export function escapeRegExp(text) {
222
- return text.replace(/[-[\]{}()*+?.,/\\^$|#]/g, '\\$&');
223
- }
224
- /**
225
- * @deprecated will be removed in the next major release
226
- */
227
- export var generateRandomId = nanoid;
228
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt#getting_whole_characters
229
- export var getWholeChar = function (str, i) {
230
- var code = str.charCodeAt(i);
231
- if (Number.isNaN(code))
232
- return '';
233
- if (code < 0xd800 || code > 0xdfff)
234
- return str.charAt(i);
235
- if (0xd800 <= code && code <= 0xdbff) {
236
- if (str.length <= i + 1) {
237
- throw 'High surrogate without following low surrogate';
238
- }
239
- var next = str.charCodeAt(i + 1);
240
- if (0xdc00 > next || next > 0xdfff) {
241
- throw 'High surrogate without following low surrogate';
242
- }
243
- return str.charAt(i) + str.charAt(i + 1);
244
- }
245
- if (i === 0) {
246
- throw 'Low surrogate without preceding high surrogate';
247
- }
248
- var prev = str.charCodeAt(i - 1);
249
- if (0xd800 > prev || prev > 0xdbff) {
250
- throw 'Low surrogate without preceding high surrogate';
251
- }
252
- return '';
253
- };