stream-chat-react 10.15.0 → 11.0.0-rc.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.
Files changed (133) hide show
  1. package/dist/browser.full-bundle.js +1249 -4491
  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/Item.d.ts.map +1 -1
  6. package/dist/components/AutoCompleteTextarea/Item.js +4 -3
  7. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  8. package/dist/components/AutoCompleteTextarea/List.js +9 -7
  9. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +1 -1
  10. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  11. package/dist/components/AutoCompleteTextarea/Textarea.js +34 -24
  12. package/dist/components/Channel/Channel.d.ts +7 -13
  13. package/dist/components/Channel/Channel.d.ts.map +1 -1
  14. package/dist/components/Channel/Channel.js +58 -69
  15. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +8 -8
  16. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
  17. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +24 -14
  18. package/dist/components/Emojis/EmojiPicker.d.ts +10 -0
  19. package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -0
  20. package/dist/components/Emojis/EmojiPicker.js +57 -0
  21. package/dist/components/Emojis/index.cjs.js +89 -0
  22. package/dist/components/Emojis/index.d.ts +2 -0
  23. package/dist/components/Emojis/index.d.ts.map +1 -0
  24. package/dist/components/Emojis/index.js +1 -0
  25. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +2 -3
  26. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
  27. package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
  28. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  29. package/dist/components/MessageInput/EditMessageForm.js +4 -7
  30. package/dist/components/MessageInput/MessageInput.d.ts +17 -5
  31. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  32. package/dist/components/MessageInput/MessageInput.js +3 -1
  33. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  34. package/dist/components/MessageInput/MessageInputFlat.js +12 -27
  35. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  36. package/dist/components/MessageInput/MessageInputSmall.js +8 -11
  37. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  38. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +3 -9
  39. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +2 -2
  40. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
  41. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +32 -12
  42. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -19
  43. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  44. package/dist/components/MessageInput/hooks/useMessageInputState.js +3 -15
  45. package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
  46. package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -2
  47. package/dist/components/MessageInput/index.d.ts +0 -1
  48. package/dist/components/MessageInput/index.d.ts.map +1 -1
  49. package/dist/components/MessageInput/index.js +0 -1
  50. package/dist/components/Reactions/ReactionSelector.d.ts +3 -8
  51. package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
  52. package/dist/components/Reactions/ReactionSelector.js +18 -25
  53. package/dist/components/Reactions/ReactionsList.d.ts +3 -8
  54. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  55. package/dist/components/Reactions/ReactionsList.js +9 -12
  56. package/dist/components/Reactions/SimpleReactionsList.d.ts +2 -5
  57. package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
  58. package/dist/components/Reactions/SimpleReactionsList.js +12 -15
  59. package/dist/components/Reactions/SpriteImage.d.ts +12 -0
  60. package/dist/components/Reactions/SpriteImage.d.ts.map +1 -0
  61. package/dist/components/Reactions/SpriteImage.js +28 -0
  62. package/dist/components/Reactions/StreamEmoji.d.ts +18 -0
  63. package/dist/components/Reactions/StreamEmoji.d.ts.map +1 -0
  64. package/dist/components/Reactions/StreamEmoji.js +16 -0
  65. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +7 -7
  66. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
  67. package/dist/components/Reactions/hooks/useProcessReactions.js +14 -18
  68. package/dist/components/Reactions/index.d.ts +3 -0
  69. package/dist/components/Reactions/index.d.ts.map +1 -1
  70. package/dist/components/Reactions/index.js +3 -0
  71. package/dist/components/Reactions/reactionOptions.d.ts +8 -0
  72. package/dist/components/Reactions/reactionOptions.d.ts.map +1 -0
  73. package/dist/components/Reactions/reactionOptions.js +11 -0
  74. package/dist/components/Reactions/utils/utils.d.ts +1 -0
  75. package/dist/components/Reactions/utils/utils.d.ts.map +1 -1
  76. package/dist/components/Reactions/utils/utils.js +12 -0
  77. package/dist/context/ChannelStateContext.d.ts +1 -1
  78. package/dist/context/ChatContext.d.ts +1 -1
  79. package/dist/context/ComponentContext.d.ts +5 -2
  80. package/dist/context/ComponentContext.d.ts.map +1 -1
  81. package/dist/context/MessageInputContext.d.ts +1 -7
  82. package/dist/context/MessageInputContext.d.ts.map +1 -1
  83. package/dist/context/index.d.ts +0 -1
  84. package/dist/context/index.d.ts.map +1 -1
  85. package/dist/context/index.js +0 -1
  86. package/dist/i18n/Streami18n.d.ts +0 -1
  87. package/dist/i18n/Streami18n.d.ts.map +1 -1
  88. package/dist/i18n/de.json +0 -1
  89. package/dist/i18n/en.json +0 -1
  90. package/dist/i18n/es.json +0 -1
  91. package/dist/i18n/fr.json +0 -1
  92. package/dist/i18n/hi.json +0 -1
  93. package/dist/i18n/it.json +0 -1
  94. package/dist/i18n/ja.json +0 -1
  95. package/dist/i18n/ko.json +0 -1
  96. package/dist/i18n/nl.json +0 -1
  97. package/dist/i18n/pt.json +0 -1
  98. package/dist/i18n/ru.json +0 -1
  99. package/dist/i18n/tr.json +0 -1
  100. package/dist/icons-0801b1e9.js +3133 -0
  101. package/dist/index.cjs.js +1038 -4157
  102. package/dist/index_UMD.d.ts +7 -0
  103. package/dist/index_UMD.d.ts.map +1 -0
  104. package/dist/index_UMD.js +8 -0
  105. package/dist/types/types.d.ts +3 -0
  106. package/dist/types/types.d.ts.map +1 -1
  107. package/dist/version.d.ts +1 -1
  108. package/dist/version.d.ts.map +1 -1
  109. package/dist/version.js +1 -1
  110. package/package.json +34 -7
  111. package/dist/components/Channel/emojiData.d.ts +0 -15
  112. package/dist/components/Channel/emojiData.d.ts.map +0 -1
  113. package/dist/components/Channel/emojiData.js +0 -23
  114. package/dist/components/MessageInput/EmojiPicker.d.ts +0 -6
  115. package/dist/components/MessageInput/EmojiPicker.d.ts.map +0 -1
  116. package/dist/components/MessageInput/EmojiPicker.js +0 -23
  117. package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts +0 -3
  118. package/dist/components/MessageInput/hooks/useEmojiIndex.d.ts.map +0 -1
  119. package/dist/components/MessageInput/hooks/useEmojiIndex.js +0 -13
  120. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +0 -11
  121. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +0 -1
  122. package/dist/components/MessageInput/hooks/useEmojiPicker.js +0 -68
  123. package/dist/context/DefaultEmoji.d.ts +0 -3
  124. package/dist/context/DefaultEmoji.d.ts.map +0 -1
  125. package/dist/context/DefaultEmoji.js +0 -3
  126. package/dist/context/DefaultEmojiPicker.d.ts +0 -3
  127. package/dist/context/DefaultEmojiPicker.d.ts.map +0 -1
  128. package/dist/context/DefaultEmojiPicker.js +0 -3
  129. package/dist/context/EmojiContext.d.ts +0 -49
  130. package/dist/context/EmojiContext.d.ts.map +0 -1
  131. package/dist/context/EmojiContext.js +0 -41
  132. package/dist/index.cjs.js.map +0 -1
  133. package/dist/stream-emoji.json +0 -1
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import type { EmojiData, NimbleEmojiIndex } from 'emoji-mart';
3
2
  import type { FileLike } from '../../ReactFileUtilities';
4
3
  import type { Attachment, Message, UserResponse } from 'stream-chat';
5
4
  import type { MessageInputProps } from '../MessageInput';
@@ -9,7 +8,6 @@ import type { FileUpload, ImageUpload, LinkPreviewMap } from '../types';
9
8
  import { SetLinkPreviewMode } from '../types';
10
9
  export declare type MessageInputState<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
11
10
  attachments: Attachment<StreamChatGenerics>[];
12
- emojiPickerIsOpen: boolean;
13
11
  fileOrder: string[];
14
12
  fileUploads: Record<string, FileUpload>;
15
13
  imageOrder: string[];
@@ -19,10 +17,6 @@ export declare type MessageInputState<StreamChatGenerics extends DefaultStreamCh
19
17
  setText: (text: string) => void;
20
18
  text: string;
21
19
  };
22
- declare type SetEmojiPickerIsOpenAction = {
23
- type: 'setEmojiPickerIsOpen';
24
- value: boolean;
25
- };
26
20
  declare type SetTextAction = {
27
21
  getNewText: (currentStateText: string) => string;
28
22
  type: 'setText';
@@ -63,28 +57,22 @@ declare type AddMentionedUserAction<StreamChatGenerics extends DefaultStreamChat
63
57
  type: 'addMentionedUser';
64
58
  user: UserResponse<StreamChatGenerics>;
65
59
  };
66
- export declare type MessageInputReducerAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SetEmojiPickerIsOpenAction | SetTextAction | ClearAction | SetImageUploadAction | SetFileUploadAction | SetLinkPreviewsAction | RemoveImageUploadAction | RemoveFileUploadAction | AddMentionedUserAction<StreamChatGenerics>;
60
+ export declare type MessageInputReducerAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SetTextAction | ClearAction | SetImageUploadAction | SetFileUploadAction | SetLinkPreviewsAction | RemoveImageUploadAction | RemoveFileUploadAction | AddMentionedUserAction<StreamChatGenerics>;
67
61
  export declare type MessageInputHookProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = EnrichURLsController & {
68
- closeEmojiPicker: React.MouseEventHandler<HTMLElement>;
69
- emojiPickerRef: React.MutableRefObject<HTMLDivElement | null>;
70
62
  handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
71
- handleEmojiKeyDown: React.KeyboardEventHandler<HTMLSpanElement>;
72
63
  handleSubmit: (event: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>>, options?: SendMessageOptions) => void;
73
64
  insertText: (textToInsert: string) => void;
74
65
  isUploadEnabled: boolean;
75
66
  maxFilesLeft: number;
76
67
  numberOfUploads: number;
77
68
  onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
78
- onSelectEmoji: (emoji: EmojiData) => void;
79
69
  onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
80
- openEmojiPicker: React.MouseEventHandler<HTMLSpanElement>;
81
70
  removeFile: (id: string) => void;
82
71
  removeImage: (id: string) => void;
83
72
  textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
84
73
  uploadFile: (id: string) => void;
85
74
  uploadImage: (id: string) => void;
86
75
  uploadNewFiles: (files: FileList | File[]) => void;
87
- emojiIndex?: NimbleEmojiIndex;
88
76
  };
89
77
  export declare type CommandsListState = {
90
78
  closeCommandsList: () => void;
@@ -100,26 +88,20 @@ export declare type MentionsListState = {
100
88
  * hook for MessageInput state
101
89
  */
102
90
  export declare const useMessageInputState: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: MessageInputProps<StreamChatGenerics, V>) => MessageInputState<StreamChatGenerics> & EnrichURLsController & {
103
- closeEmojiPicker: React.MouseEventHandler<HTMLElement>;
104
- emojiPickerRef: React.MutableRefObject<HTMLDivElement | null>;
105
91
  handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
106
- handleEmojiKeyDown: React.KeyboardEventHandler<HTMLSpanElement>;
107
92
  handleSubmit: (event: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>> | undefined, options?: SendMessageOptions) => void;
108
93
  insertText: (textToInsert: string) => void;
109
94
  isUploadEnabled: boolean;
110
95
  maxFilesLeft: number;
111
96
  numberOfUploads: number;
112
97
  onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
113
- onSelectEmoji: (emoji: EmojiData) => void;
114
98
  onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
115
- openEmojiPicker: React.MouseEventHandler<HTMLSpanElement>;
116
99
  removeFile: (id: string) => void;
117
100
  removeImage: (id: string) => void;
118
101
  textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
119
102
  uploadFile: (id: string) => void;
120
103
  uploadImage: (id: string) => void;
121
104
  uploadNewFiles: (files: FileList | File[]) => void;
122
- emojiIndex?: NimbleEmojiIndex | undefined;
123
105
  } & CommandsListState & MentionsListState;
124
106
  export {};
125
107
  //# sourceMappingURL=useMessageInputState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAU1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAmB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAoB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE,oBAAY,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,YAAY,EAAE,cAAc,CAAC;IAC7B,eAAe,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACpD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,aAAK,oBAAoB,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,cAAc,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,aAAK,uBAAuB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,aAAK,sBAAsB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,aAAK,sBAAsB,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CACxC,CAAC;AAEF,oBAAY,yBAAyB,CACnC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAE9E,aAAa,GACb,WAAW,GACX,oBAAoB,GACpB,mBAAmB,GACnB,qBAAqB,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;AAE/C,oBAAY,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,oBAAoB,GAAG;IACzB,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC5D,YAAY,EAAE,CACZ,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EACxD,OAAO,CAAC,EAAE,kBAAkB,KACzB,IAAI,CAAC;IACV,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC5E,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC;CACpD,CAAC;AA8NF,oBAAY,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;kBA/PjB,MAAM,kBAAkB,CAAC,mBAAmB,CAAC;0BAElD,MAAM,kBAAkB,kFAErB,kBAAkB,KACzB,IAAI;+BACkB,MAAM,KAAK,IAAI;qBACzB,OAAO;kBACV,MAAM;qBACH,MAAM;qBACN,oBAAoB,CAAC,mBAAmB,CAAC,KAAK,IAAI;8DACT,IAAI;qBAC7C,MAAM,KAAK,IAAI;sBACd,MAAM,KAAK,IAAI;iBACpB,MAAM,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;qBAC1D,MAAM,KAAK,IAAI;sBACd,MAAM,KAAK,IAAI;4BACT,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI;yCAiXnD,CAAC"}
@@ -2,17 +2,14 @@ import { __assign } from "tslib";
2
2
  import { useCallback, useReducer, useState } from 'react';
3
3
  import { nanoid } from 'nanoid';
4
4
  import { useChannelStateContext } from '../../../context/ChannelStateContext';
5
- import { useEmojiIndex } from './useEmojiIndex';
6
5
  import { useAttachments } from './useAttachments';
7
6
  import { useMessageInputText } from './useMessageInputText';
8
- import { useEmojiPicker } from './useEmojiPicker';
9
7
  import { useSubmitHandler } from './useSubmitHandler';
10
8
  import { usePasteHandler } from './usePasteHandler';
11
9
  import { useLinkPreviews } from './useLinkPreviews';
12
10
  import { LinkPreviewState, SetLinkPreviewMode } from '../types';
13
11
  var makeEmptyMessageInputState = function () { return ({
14
12
  attachments: [],
15
- emojiPickerIsOpen: false,
16
13
  fileOrder: [],
17
14
  fileUploads: {},
18
15
  imageOrder: [],
@@ -86,7 +83,6 @@ var initState = function (message) {
86
83
  var mentioned_users = message.mentioned_users || [];
87
84
  return {
88
85
  attachments: attachments,
89
- emojiPickerIsOpen: false,
90
86
  fileOrder: fileOrder,
91
87
  fileUploads: fileUploads,
92
88
  imageOrder: imageOrder,
@@ -103,8 +99,6 @@ var initState = function (message) {
103
99
  var messageInputReducer = function (state, action) {
104
100
  var _a, _b;
105
101
  switch (action.type) {
106
- case 'setEmojiPickerIsOpen':
107
- return __assign(__assign({}, state), { emojiPickerIsOpen: action.value });
108
102
  case 'setText':
109
103
  return __assign(__assign({}, state), { text: action.getNewText(state.text) });
110
104
  case 'clear':
@@ -178,7 +172,7 @@ var messageInputReducer = function (state, action) {
178
172
  */
179
173
  export var useMessageInputState = function (props) {
180
174
  var _a;
181
- var additionalTextareaProps = props.additionalTextareaProps, closeEmojiPickerOnClick = props.closeEmojiPickerOnClick, getDefaultValue = props.getDefaultValue, message = props.message, urlEnrichmentConfig = props.urlEnrichmentConfig;
175
+ var additionalTextareaProps = props.additionalTextareaProps, getDefaultValue = props.getDefaultValue, message = props.message, urlEnrichmentConfig = props.urlEnrichmentConfig;
182
176
  var _b = useChannelStateContext('useMessageInputState'), _c = _b.channelCapabilities, channelCapabilities = _c === void 0 ? {} : _c, channelConfig = _b.channelConfig, enrichURLForPreviewChannelContext = _b.enrichURLForPreview;
183
177
  var defaultValue = (getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue()) || (additionalTextareaProps === null || additionalTextareaProps === void 0 ? void 0 : additionalTextareaProps.defaultValue);
184
178
  var initialStateValue = message ||
@@ -206,8 +200,7 @@ export var useMessageInputState = function (props) {
206
200
  setShowMentionsList(true);
207
201
  };
208
202
  var closeMentionsList = function () { return setShowMentionsList(false); };
209
- var _h = useEmojiPicker(state, dispatch, insertText, textareaRef, closeEmojiPickerOnClick), closeEmojiPicker = _h.closeEmojiPicker, emojiPickerRef = _h.emojiPickerRef, handleEmojiKeyDown = _h.handleEmojiKeyDown, onSelectEmoji = _h.onSelectEmoji, openEmojiPicker = _h.openEmojiPicker;
210
- var _j = useAttachments(props, state, dispatch, textareaRef), maxFilesLeft = _j.maxFilesLeft, numberOfUploads = _j.numberOfUploads, removeFile = _j.removeFile, removeImage = _j.removeImage, uploadFile = _j.uploadFile, uploadImage = _j.uploadImage, uploadNewFiles = _j.uploadNewFiles;
203
+ var _h = useAttachments(props, state, dispatch, textareaRef), maxFilesLeft = _h.maxFilesLeft, numberOfUploads = _h.numberOfUploads, removeFile = _h.removeFile, removeImage = _h.removeImage, uploadFile = _h.uploadFile, uploadImage = _h.uploadImage, uploadNewFiles = _h.uploadNewFiles;
211
204
  var handleSubmit = useSubmitHandler(props, state, dispatch, numberOfUploads, enrichURLsController).handleSubmit;
212
205
  var isUploadEnabled = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.uploads) !== false && channelCapabilities['upload-file'] !== false;
213
206
  var onPaste = usePasteHandler(uploadNewFiles, insertText, isUploadEnabled, enrichURLsController.findAndEnqueueURLsToEnrich).onPaste;
@@ -217,10 +210,5 @@ export var useMessageInputState = function (props) {
217
210
  var setText = useCallback(function (text) {
218
211
  dispatch({ getNewText: function () { return text; }, type: 'setText' });
219
212
  }, []);
220
- return __assign(__assign(__assign({}, state), enrichURLsController), { closeCommandsList: closeCommandsList,
221
- /**
222
- * TODO: fix the below at some point because this type casting is wrong
223
- * and just forced to not have warnings currently with the unknown casting
224
- */
225
- closeEmojiPicker: closeEmojiPicker, closeMentionsList: closeMentionsList, emojiIndex: useEmojiIndex(), emojiPickerRef: emojiPickerRef, handleChange: handleChange, handleEmojiKeyDown: handleEmojiKeyDown, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectEmoji: onSelectEmoji, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openEmojiPicker: openEmojiPicker, openMentionsList: openMentionsList, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, showMentionsList: showMentionsList, textareaRef: textareaRef, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
213
+ return __assign(__assign(__assign({}, state), enrichURLsController), { closeCommandsList: closeCommandsList, closeMentionsList: closeMentionsList, handleChange: handleChange, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openMentionsList: openMentionsList, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, showMentionsList: showMentionsList, textareaRef: textareaRef, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
226
214
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageInputText.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputText.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,mBAAmB,6UAOD,oBAAoB,CAAC,4BAA4B,CAAC;;+BAmB9D,MAAM;;CAyExB,CAAC"}
1
+ {"version":3,"file":"useMessageInputText.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputText.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,eAAO,MAAM,mBAAmB,6UAOD,oBAAoB,CAAC,4BAA4B,CAAC;;+BAmB9D,MAAM;;CAwExB,CAAC"}
@@ -17,7 +17,7 @@ export var useMessageInputText = function (props, state, dispatch, findAndEnqueu
17
17
  var insertText = useCallback(function (textToInsert) {
18
18
  var maxLength = (additionalTextareaProps || {}).maxLength;
19
19
  if (!textareaRef.current) {
20
- dispatch({
20
+ return dispatch({
21
21
  getNewText: function (text) {
22
22
  var updatedText = text + textToInsert;
23
23
  if (maxLength && updatedText.length > maxLength) {
@@ -27,7 +27,6 @@ export var useMessageInputText = function (props, state, dispatch, findAndEnqueu
27
27
  },
28
28
  type: 'setText',
29
29
  });
30
- return;
31
30
  }
32
31
  var _a = textareaRef.current, selectionEnd = _a.selectionEnd, selectionStart = _a.selectionStart;
33
32
  newCursorPosition.current = selectionStart + textToInsert.length;
@@ -2,7 +2,6 @@ export * from './AttachmentPreviewList';
2
2
  export * from './CooldownTimer';
3
3
  export * from './DefaultTriggerProvider';
4
4
  export * from './EditMessageForm';
5
- export * from './EmojiPicker';
6
5
  export * from './hooks';
7
6
  export * from './icons';
8
7
  export * from './MessageInput';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
@@ -2,7 +2,6 @@ export * from './AttachmentPreviewList';
2
2
  export * from './CooldownTimer';
3
3
  export * from './DefaultTriggerProvider';
4
4
  export * from './EditMessageForm';
5
- export * from './EmojiPicker';
6
5
  export * from './hooks';
7
6
  export * from './icons';
8
7
  export * from './MessageInput';
@@ -1,12 +1,9 @@
1
1
  import React from 'react';
2
2
  import { AvatarProps } from '../Avatar';
3
- import { ReactionEmoji } from '../Channel/emojiData';
4
- import type { NimbleEmojiProps } from 'emoji-mart';
5
3
  import type { ReactionResponse } from 'stream-chat';
6
4
  import type { DefaultStreamChatGenerics } from '../../types/types';
5
+ import type { ReactionOptions } from './reactionOptions';
7
6
  export declare type ReactionSelectorProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
8
- /** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
9
- additionalEmojiProps?: Partial<NimbleEmojiProps>;
10
7
  /** 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
8
  Avatar?: React.ElementType<AvatarProps>;
12
9
  /** If true, shows the user's avatar with the reaction */
@@ -18,11 +15,9 @@ export declare type ReactionSelectorProps<StreamChatGenerics extends DefaultStre
18
15
  /** An array of the own reaction objects to distinguish own reactions visually */
19
16
  own_reactions?: ReactionResponse<StreamChatGenerics>[];
20
17
  /** An object that keeps track of the count of each type of reaction on a message */
21
- reaction_counts?: {
22
- [key: string]: number;
23
- };
18
+ reaction_counts?: Record<string, number>;
24
19
  /** A list of the currently supported reactions on a message */
25
- reactionOptions?: ReactionEmoji[];
20
+ reactionOptions?: ReactionOptions;
26
21
  /** If true, adds a CSS class that reverses the horizontal positioning of the selector */
27
22
  reverse?: boolean;
28
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsE,MAAM,OAAO,CAAC;AAK3F,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAwB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC1D,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAiMF;;GAEG;AACH,eAAO,MAAM,gBAAgB,gIAES,CAAC"}
1
+ {"version":3,"file":"ReactionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,+LAA+L;IAC/L,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC1D,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAkLF;;GAEG;AACH,eAAO,MAAM,gBAAgB,gIAES,CAAC"}
@@ -1,29 +1,22 @@
1
- import { __assign } from "tslib";
2
- import React, { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'react';
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
3
2
  import clsx from 'clsx';
4
3
  import { isMutableRef } from './utils/utils';
5
4
  import { Avatar as DefaultAvatar } from '../Avatar';
6
- import { getStrippedEmojiData } from '../Channel/emojiData';
7
5
  import { useComponentContext } from '../../context/ComponentContext';
8
- import { useEmojiContext } from '../../context/EmojiContext';
9
6
  import { useMessageContext } from '../../context/MessageContext';
10
7
  var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
11
8
  var _a;
12
- var _b = props.additionalEmojiProps, additionalEmojiProps = _b === void 0 ? {} : _b, propAvatar = props.Avatar, _c = props.detailedView, detailedView = _c === void 0 ? true : _c, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _d = props.reverse, reverse = _d === void 0 ? false : _d;
13
- var contextAvatar = useComponentContext('ReactionSelector').Avatar;
14
- var _e = useEmojiContext('ReactionSelector'), Emoji = _e.Emoji, emojiConfig = _e.emojiConfig;
15
- var _f = useMessageContext('ReactionSelector'), contextHandleReaction = _f.handleReaction, message = _f.message;
16
- var _g = emojiConfig || {}, defaultMinimalEmojis = _g.defaultMinimalEmojis, fullEmojiData = _g.emojiData, emojiSetDef = _g.emojiSetDef;
9
+ var propAvatar = props.Avatar, _b = props.detailedView, detailedView = _b === void 0 ? true : _b, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propOwnReactions = props.own_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _c = props.reverse, reverse = _c === void 0 ? false : _c;
10
+ var _d = useComponentContext('ReactionSelector'), contextAvatar = _d.Avatar, contextReactionOptions = _d.reactionOptions;
11
+ var _e = useMessageContext('ReactionSelector'), contextHandleReaction = _e.handleReaction, message = _e.message;
12
+ var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
17
13
  var Avatar = propAvatar || contextAvatar || DefaultAvatar;
18
14
  var handleReaction = propHandleReaction || contextHandleReaction;
19
15
  var latestReactions = propLatestReactions || (message === null || message === void 0 ? void 0 : message.latest_reactions) || [];
20
16
  var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
21
17
  var reactionCounts = propReactionCounts || (message === null || message === void 0 ? void 0 : message.reaction_counts) || {};
22
- var reactionOptions = propReactionOptions || defaultMinimalEmojis;
23
- var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
24
- var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
25
- var _h = useState(null), tooltipReactionType = _h[0], setTooltipReactionType = _h[1];
26
- var _j = useState(null), tooltipPositions = _j[0], setTooltipPositions = _j[1];
18
+ var _f = useState(null), tooltipReactionType = _f[0], setTooltipReactionType = _f[1];
19
+ var _g = useState(null), tooltipPositions = _g[0], setTooltipPositions = _g[1];
27
20
  var targetRef = useRef(null);
28
21
  var tooltipRef = useRef(null);
29
22
  var showTooltip = useCallback(function (event, reactionType) {
@@ -80,17 +73,17 @@ var UnMemoizedReactionSelector = React.forwardRef(function (props, ref) {
80
73
  } },
81
74
  React.createElement("div", { className: 'arrow', style: { left: tooltipPositions === null || tooltipPositions === void 0 ? void 0 : tooltipPositions.arrow } }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
82
75
  _a.map(function (user, i, users) { return (React.createElement("span", { className: 'latest-user-username', key: "key-".concat(i, "-").concat(user) }, "".concat(user).concat(i < users.length - 1 ? ', ' : ''))); }))),
83
- React.createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (reactionOption) {
84
- var latestUser = getLatestUserForReactionType(reactionOption.id);
85
- var count = reactionCounts && reactionCounts[reactionOption.id];
86
- return (React.createElement("li", { key: "item-".concat(reactionOption.id) },
87
- React.createElement("button", { "aria-label": "Select Reaction: ".concat(reactionOption.name), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
88
- 'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionOption.id),
89
- }), "data-text": reactionOption.id, onClick: function (event) { return handleReaction(reactionOption.id, event); } },
90
- !!count && detailedView && (React.createElement("div", { className: 'latest-user str-chat__message-reactions-last-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionOption.id); }, onMouseLeave: hideTooltip }, latestUser ? (React.createElement(Avatar, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React.createElement("div", { className: 'latest-user-not-found' })))),
91
- React.createElement(Suspense, { fallback: null },
92
- React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
93
- React.createElement(Emoji, __assign({ data: emojiData, emoji: reactionOption, size: 20 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef))))),
76
+ React.createElement("ul", { className: 'str-chat__message-reactions-list str-chat__message-reactions-options' }, reactionOptions.map(function (_a) {
77
+ var Component = _a.Component, reactionName = _a.name, reactionType = _a.type;
78
+ var latestUser = getLatestUserForReactionType(reactionType);
79
+ var count = reactionCounts && reactionCounts[reactionType];
80
+ return (React.createElement("li", { key: reactionType },
81
+ React.createElement("button", { "aria-label": "Select Reaction: ".concat(reactionName || reactionType), className: clsx('str-chat__message-reactions-list-item str-chat__message-reactions-option', {
82
+ 'str-chat__message-reactions-option-selected': iHaveReactedWithReaction(reactionType),
83
+ }), "data-text": reactionType, onClick: function (event) { return handleReaction(reactionType, event); } },
84
+ !!count && detailedView && (React.createElement("div", { className: 'latest-user str-chat__message-reactions-last-user', onClick: hideTooltip, onMouseEnter: function (e) { return showTooltip(e, reactionType); }, onMouseLeave: hideTooltip }, latestUser ? (React.createElement(Avatar, { image: latestUser.image, name: latestUser.name, size: 20, user: latestUser })) : (React.createElement("div", { className: 'latest-user-not-found' })))),
85
+ React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
86
+ React.createElement(Component, null)),
94
87
  Boolean(count) && detailedView && (React.createElement("span", { className: 'str-chat__message-reactions-list-item__count' }, count || '')))));
95
88
  }))));
96
89
  });
@@ -1,21 +1,16 @@
1
- import type { NimbleEmojiProps } from 'emoji-mart';
2
1
  import type { ReactionResponse } from 'stream-chat';
3
2
  import type { ReactEventHandler } from '../Message/types';
4
3
  import type { DefaultStreamChatGenerics } from '../../types/types';
5
- import type { ReactionEmoji } from '../Channel/emojiData';
4
+ import type { ReactionOptions } from './reactionOptions';
6
5
  export declare type ReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
7
- /** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
8
- additionalEmojiProps?: Partial<NimbleEmojiProps>;
9
6
  /** Custom on click handler for an individual reaction, defaults to `onReactionListClick` from the `MessageContext` */
10
7
  onClick?: ReactEventHandler;
11
8
  /** An array of the own reaction objects to distinguish own reactions visually */
12
9
  own_reactions?: ReactionResponse<StreamChatGenerics>[];
13
10
  /** An object that keeps track of the count of each type of reaction on a message */
14
- reaction_counts?: {
15
- [key: string]: number;
16
- };
11
+ reaction_counts?: Record<string, number>;
17
12
  /** A list of the currently supported reactions on a message */
18
- reactionOptions?: ReactionEmoji[];
13
+ reactionOptions?: ReactionOptions;
19
14
  /** An array of the reaction objects to display in the list */
20
15
  reactions?: ReactionResponse<StreamChatGenerics>[];
21
16
  /** Display the reactions in the list in reverse order, defaults to false */
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,oBAAY,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,sHAAsH;IACtH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACnD,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAyHF;;GAEG;AACH,eAAO,MAAM,aAAa,yJAAwE,CAAC"}
1
+ {"version":3,"file":"ReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/ReactionsList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,sHAAsH;IACtH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACnD,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAgHF;;GAEG;AACH,eAAO,MAAM,aAAa,yJAAwE,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { __assign, __rest } from "tslib";
2
- import React, { Suspense, useState } from 'react';
2
+ import React, { useState } from 'react';
3
3
  import clsx from 'clsx';
4
- import { useEmojiContext } from '../../context/EmojiContext';
5
4
  import { useMessageContext } from '../../context/MessageContext';
6
5
  import { useChatContext } from '../../context/ChatContext';
7
6
  import { useProcessReactions } from './hooks/useProcessReactions';
@@ -21,9 +20,8 @@ var ButtonWithTooltip = function (_a) {
21
20
  };
22
21
  var UnMemoizedReactionsList = function (props) {
23
22
  var onClick = props.onClick, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["onClick", "reverse"]);
24
- var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
25
23
  var onReactionListClick = useMessageContext('ReactionsList').onReactionListClick;
26
- var _c = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _c.additionalEmojiProps, aggregatedUserNamesByType = _c.aggregatedUserNamesByType, emojiData = _c.emojiData, getEmojiByReactionType = _c.getEmojiByReactionType, iHaveReactedWithReaction = _c.iHaveReactedWithReaction, latestReactions = _c.latestReactions, latestReactionTypes = _c.latestReactionTypes, reactionCounts = _c.reactionCounts, supportedReactionsArePresent = _c.supportedReactionsArePresent, totalReactionCount = _c.totalReactionCount;
24
+ var _b = useProcessReactions(rest), aggregatedUserNamesByType = _b.aggregatedUserNamesByType, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, reactionCounts = _b.reactionCounts, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
27
25
  if (!latestReactions.length)
28
26
  return null;
29
27
  if (!supportedReactionsArePresent)
@@ -33,17 +31,16 @@ var UnMemoizedReactionsList = function (props) {
33
31
  }), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyUp: onClick || onReactionListClick, role: 'figure' },
34
32
  React.createElement("ul", { className: 'str-chat__message-reactions' },
35
33
  latestReactionTypes.map(function (reactionType) {
36
- var emojiObject = getEmojiByReactionType(reactionType);
34
+ var ReactionOption = getEmojiByReactionType(reactionType);
37
35
  var isOwnReaction = iHaveReactedWithReaction(reactionType);
38
- return emojiObject ? (React.createElement("li", { className: clsx('str-chat__message-reaction', {
36
+ return (ReactionOption && (React.createElement("li", { className: clsx('str-chat__message-reaction', {
39
37
  'str-chat__message-reaction-own': isOwnReaction,
40
- }), key: emojiObject.id },
41
- React.createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
42
- React.createElement(Suspense, { fallback: null },
43
- React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
44
- React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, additionalEmojiProps)))),
38
+ }), key: reactionType },
39
+ React.createElement(ButtonWithTooltip, { "aria-label": "Reactions: ".concat(reactionType), "data-testid": "reactions-list-button-".concat(reactionType), title: aggregatedUserNamesByType[reactionType].join(', '), type: 'button' },
40
+ React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
41
+ React.createElement(ReactionOption.Component, null)),
45
42
  "\u00A0",
46
- React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))) : null;
43
+ React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))));
47
44
  }),
48
45
  React.createElement("li", null,
49
46
  React.createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))));
@@ -1,11 +1,8 @@
1
1
  import React from 'react';
2
- import type { NimbleEmojiProps } from 'emoji-mart';
3
2
  import type { ReactionResponse } from 'stream-chat';
4
3
  import type { DefaultStreamChatGenerics } from '../../types/types';
5
- import type { ReactionEmoji } from '../Channel/emojiData';
4
+ import type { ReactionOptions } from './reactionOptions';
6
5
  export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
7
- /** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
8
- additionalEmojiProps?: Partial<NimbleEmojiProps>;
9
6
  /** Function that adds/removes a reaction on a message (overrides the function stored in `MessageContext`) */
10
7
  handleReaction?: (reactionType: string, event: React.BaseSyntheticEvent) => Promise<void>;
11
8
  /** An array of the own reaction objects to distinguish own reactions visually */
@@ -15,7 +12,7 @@ export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultS
15
12
  [key: string]: number;
16
13
  };
17
14
  /** A list of the currently supported reactions on a message */
18
- reactionOptions?: ReactionEmoji[];
15
+ reactionOptions?: ReactionOptions;
19
16
  /** An array of the reaction objects to display in the list */
20
17
  reactions?: ReactionResponse<StreamChatGenerics>[];
21
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAYrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsC1D,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AAsGF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
1
+ {"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsCzD,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AA4FF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
@@ -1,11 +1,10 @@
1
- import { __assign, __rest } from "tslib";
2
- import React, { Suspense, useState } from 'react';
1
+ import { __rest } from "tslib";
2
+ import React, { useState } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { useChatContext } from '../../context/ChatContext';
5
- import { useEmojiContext } from '../../context/EmojiContext';
6
5
  import { useMessageContext } from '../../context/MessageContext';
7
- import { useEnterLeaveHandlers } from '../Tooltip/hooks';
8
6
  import { useProcessReactions } from './hooks/useProcessReactions';
7
+ import { useEnterLeaveHandlers } from '../Tooltip/hooks';
9
8
  import { PopperTooltip } from '../Tooltip';
10
9
  // todo: merge with ReactionsList/ButtonWithTooltip
11
10
  // avoiding breaking change of replacing <span> with <button>
@@ -23,10 +22,9 @@ var WithTooltip = function (_a) {
23
22
  };
24
23
  var UnMemoizedSimpleReactionsList = function (props) {
25
24
  var propHandleReaction = props.handleReaction, rest = __rest(props, ["handleReaction"]);
26
- var _a = useEmojiContext('SimpleReactionsList'), Emoji = _a.Emoji, emojiConfig = _a.emojiConfig;
27
25
  var contextHandleReaction = useMessageContext('SimpleReactionsList').handleReaction;
28
- var _b = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _b.additionalEmojiProps, emojiData = _b.emojiData, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
29
- var _c = useState(undefined), tooltipReactionType = _c[0], setTooltipReactionType = _c[1];
26
+ var _a = useProcessReactions(rest), getEmojiByReactionType = _a.getEmojiByReactionType, iHaveReactedWithReaction = _a.iHaveReactedWithReaction, latestReactions = _a.latestReactions, latestReactionTypes = _a.latestReactionTypes, supportedReactionsArePresent = _a.supportedReactionsArePresent, totalReactionCount = _a.totalReactionCount;
27
+ var _b = useState(undefined), tooltipReactionType = _b[0], setTooltipReactionType = _b[1];
30
28
  var themeVersion = useChatContext('SimpleReactionsList').themeVersion;
31
29
  var handleReaction = propHandleReaction || contextHandleReaction;
32
30
  if (!latestReactions.length)
@@ -46,22 +44,21 @@ var UnMemoizedSimpleReactionsList = function (props) {
46
44
  };
47
45
  return (React.createElement("div", { className: 'str-chat__message-reactions-container' },
48
46
  React.createElement("ul", { className: 'str-chat__simple-reactions-list str-chat__message-reactions', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
49
- latestReactionTypes.map(function (reactionType, i) {
47
+ latestReactionTypes.map(function (reactionType) {
50
48
  var _a;
51
- var emojiObject = getEmojiByReactionType(reactionType);
49
+ var ReactionOption = getEmojiByReactionType(reactionType);
52
50
  var isOwnReaction = iHaveReactedWithReaction(reactionType);
53
- var tooltipVisible = emojiObject && tooltipReactionType === (emojiObject === null || emojiObject === void 0 ? void 0 : emojiObject.id);
51
+ var tooltipVisible = tooltipReactionType === reactionType;
54
52
  var tooltipContent = (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 : _a.join(', ');
55
- return emojiObject ? (React.createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
53
+ return (ReactionOption && (React.createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
56
54
  'str-chat__message-reaction-own': isOwnReaction,
57
- }), key: "".concat(emojiObject.id, "-").concat(i), onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
55
+ }), key: reactionType, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
58
56
  React.createElement(WithTooltip, { onMouseEnter: function () { return setTooltipReactionType(reactionType); }, onMouseLeave: function () { return setTooltipReactionType(undefined); }, title: tooltipContent },
59
- React.createElement(Suspense, { fallback: null },
60
- React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, additionalEmojiProps))),
57
+ React.createElement(ReactionOption.Component, null),
61
58
  "\u00A0",
62
59
  tooltipVisible && themeVersion === '1' && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip' },
63
60
  React.createElement("div", { className: 'arrow' }),
64
- tooltipContent))))) : null;
61
+ tooltipContent))))));
65
62
  }),
66
63
  React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, totalReactionCount))));
67
64
  };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export declare type SpriteImageProps = {
3
+ columns: number;
4
+ position: [number, number];
5
+ rows: number;
6
+ spriteUrl: string;
7
+ fallback?: React.ReactNode;
8
+ height?: number;
9
+ width?: number;
10
+ };
11
+ export declare const SpriteImage: ({ columns, fallback, height, position, rows, spriteUrl, width, }: SpriteImageProps) => JSX.Element;
12
+ //# sourceMappingURL=SpriteImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteImage.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SpriteImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,WAAW,qEAQrB,gBAAgB,gBAgClB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { getImageDimensions } from './utils/utils';
3
+ export var SpriteImage = function (_a) {
4
+ var columns = _a.columns, fallback = _a.fallback, height = _a.height, position = _a.position, rows = _a.rows, spriteUrl = _a.spriteUrl, width = _a.width;
5
+ var _b = useState([0, 0]), _c = _b[0], spriteWidth = _c[0], spriteHeight = _c[1], setSpriteDimensions = _b[1];
6
+ useEffect(function () {
7
+ getImageDimensions(spriteUrl).then(setSpriteDimensions).catch(console.error);
8
+ }, [spriteUrl]);
9
+ var x = position[0], y = position[1];
10
+ var spriteItemWidth = spriteWidth / columns;
11
+ var spriteItemHeight = spriteHeight / rows;
12
+ var resizeRatio = 1;
13
+ if (!width && height)
14
+ resizeRatio = height / spriteItemHeight;
15
+ if (width && !height)
16
+ resizeRatio = width / spriteItemWidth;
17
+ if (resizeRatio === Infinity)
18
+ resizeRatio = 1;
19
+ if (!spriteHeight || !spriteWidth)
20
+ return React.createElement(React.Fragment, null, fallback);
21
+ return (React.createElement("div", { "data-testid": 'sprite-image', style: {
22
+ backgroundImage: "url('".concat(spriteUrl, "')"),
23
+ backgroundPosition: "".concat(x * (100 / (columns - 1)), "% ").concat(y * (100 / (rows - 1)), "%"),
24
+ backgroundSize: "".concat(columns * 100, "% ").concat(rows * 100, "%"),
25
+ height: height !== null && height !== void 0 ? height : spriteItemHeight * resizeRatio,
26
+ width: width !== null && width !== void 0 ? width : spriteItemWidth * resizeRatio,
27
+ } }));
28
+ };
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { SpriteImageProps } from './SpriteImage';
3
+ import type { Readable } from '../../types/types';
4
+ declare const StreamSpriteEmojiPositions: {
5
+ angry: number[];
6
+ haha: number[];
7
+ like: number[];
8
+ love: number[];
9
+ sad: number[];
10
+ wow: number[];
11
+ };
12
+ declare type StreamEmojiType = keyof typeof StreamSpriteEmojiPositions;
13
+ export declare const StreamEmoji: ({ fallback, type, }: {
14
+ type: StreamEmojiType;
15
+ fallback?: React.ReactNode;
16
+ }) => JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=StreamEmoji.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamEmoji.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/StreamEmoji.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAA,MAAM,0BAA0B;;;;;;;CAO/B,CAAC;AAEF,aAAK,eAAe,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAI/D,eAAO,MAAM,WAAW;UAGJ,eAAe;;iBAYlC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { SpriteImage } from './SpriteImage';
3
+ var StreamSpriteEmojiPositions = {
4
+ angry: [1, 1],
5
+ haha: [1, 0],
6
+ like: [0, 0],
7
+ love: [1, 2],
8
+ sad: [0, 1],
9
+ wow: [0, 2],
10
+ };
11
+ var STREAM_SPRITE_URL = 'https://getstream.imgix.net/images/emoji-sprite.png';
12
+ export var StreamEmoji = function (_a) {
13
+ var fallback = _a.fallback, type = _a.type;
14
+ var position = StreamSpriteEmojiPositions[type];
15
+ return (React.createElement(SpriteImage, { columns: 2, fallback: fallback, height: 18, position: position, rows: 3, spriteUrl: STREAM_SPRITE_URL }));
16
+ };