Skip to content

Commit 50e3c62

Browse files
authored
feat: allow to override EditMessageModal and thus its additionalMessageInputProps (#2853)
1 parent 51ea875 commit 50e3c62

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

src/components/Channel/Channel.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ type ChannelPropsForwardedToComponentContext = Pick<
106106
| 'CustomMessageActionsList'
107107
| 'DateSeparator'
108108
| 'EditMessageInput'
109+
| 'EditMessageModal'
109110
| 'EmojiPicker'
110111
| 'emojiSearchIndex'
111112
| 'EmptyStateIndicator'
@@ -1207,6 +1208,7 @@ const ChannelInner = (
12071208
CustomMessageActionsList: props.CustomMessageActionsList,
12081209
DateSeparator: props.DateSeparator,
12091210
EditMessageInput: props.EditMessageInput,
1211+
EditMessageModal: props.EditMessageModal,
12101212
EmojiPicker: props.EmojiPicker,
12111213
emojiSearchIndex: props.emojiSearchIndex,
12121214
EmptyStateIndicator: props.EmptyStateIndicator,
@@ -1276,6 +1278,7 @@ const ChannelInner = (
12761278
props.CustomMessageActionsList,
12771279
props.DateSeparator,
12781280
props.EditMessageInput,
1281+
props.EditMessageModal,
12791282
props.EmojiPicker,
12801283
props.emojiSearchIndex,
12811284
props.EmptyStateIndicator,

src/components/Message/MessageSimple.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626

2727
import { Avatar as DefaultAvatar } from '../Avatar';
2828
import { Attachment as DefaultAttachment } from '../Attachment';
29-
import { EditMessageModal } from '../MessageInput';
29+
import { EditMessageModal as DefaultEditMessageModal } from '../MessageInput';
3030
import { Poll } from '../Poll';
3131
import { ReactionsList as DefaultReactionList } from '../Reactions';
3232
import { MessageBounceModal } from '../MessageBounce/MessageBounceModal';
@@ -69,6 +69,7 @@ const MessageSimpleWithContext = (props: MessageSimpleWithContextProps) => {
6969
const {
7070
Attachment = DefaultAttachment,
7171
Avatar = DefaultAvatar,
72+
EditMessageModal = DefaultEditMessageModal,
7273
MessageOptions = DefaultMessageOptions,
7374
// TODO: remove this "passthrough" in the next
7475
// major release and use the new default instead

src/components/MessageInput/EditMessageForm.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,14 @@ export const EditMessageForm = () => {
6868
);
6969
};
7070

71+
export type EditMessageModalProps = Pick<
72+
MessageUIComponentProps,
73+
'additionalMessageInputProps'
74+
>;
75+
7176
export const EditMessageModal = ({
7277
additionalMessageInputProps,
73-
}: Pick<MessageUIComponentProps, 'additionalMessageInputProps'>) => {
78+
}: EditMessageModalProps) => {
7479
const { EditMessageInput = EditMessageForm, Modal = DefaultModal } =
7580
useComponentContext();
7681
const { clearEditingState } = useMessageContext();

src/context/ComponentContext.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type {
1010
CooldownTimerProps,
1111
CustomMessageActionsListProps,
1212
DateSeparatorProps,
13+
EditMessageModalProps,
1314
EmojiSearchIndex,
1415
EmptyStateIndicatorProps,
1516
EventComponentProps,
@@ -96,6 +97,8 @@ export type ComponentContextValue = {
9697
DateSeparator?: React.ComponentType<DateSeparatorProps>;
9798
/** Custom UI component to override default edit message input, defaults to and accepts same props as: [EditMessageForm](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/EditMessageForm.tsx) */
9899
EditMessageInput?: React.ComponentType<MessageInputProps>;
100+
/** Custom UI component to override default EditMessageModal, defaults to and accepts same props as: [EditMessageModal](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/EditMessageForm.tsx) */
101+
EditMessageModal?: React.ComponentType<EditMessageModalProps>;
99102
/** Custom UI component for rendering button with emoji picker in MessageInput */
100103
EmojiPicker?: React.ComponentType;
101104
/** Mechanism to be used with autocomplete and text replace features of the `MessageInput` component, see [emoji-mart `SearchIndex`](https://github.com/missive/emoji-mart#%EF%B8%8F%EF%B8%8F-headless-search) */

0 commit comments

Comments
 (0)