{renderChannelHeader?.({ className: 'sendbird-conversation__channel-header' })}
{renderMessageList?.(props)}
{renderMessageInput?.()}
{renderTypingIndicator?.()
- || (
- config?.groupChannel?.enableTypingIndicator
- && config?.groupChannel?.typingIndicatorTypes?.has(TypingIndicatorType.Text)
- && (
-
- )
- )
- }
+ || (config?.groupChannel?.enableTypingIndicator && config?.groupChannel?.typingIndicatorTypes?.has(TypingIndicatorType.Text) && (
+
+ ))}
{!isOnline && }
diff --git a/src/modules/GroupChannel/components/GroupChannelUI/index.tsx b/src/modules/GroupChannel/components/GroupChannelUI/index.tsx
index 0e7734aea..2b02473e2 100644
--- a/src/modules/GroupChannel/components/GroupChannelUI/index.tsx
+++ b/src/modules/GroupChannel/components/GroupChannelUI/index.tsx
@@ -1,50 +1,35 @@
import React from 'react';
-import type { GroupChannelHeaderProps } from '../GroupChannelHeader';
-import type { MessageListProps } from '../../../Channel/components/MessageList';
-import type { GroupChannelMessageListProps } from '../MessageList';
-import { RenderCustomSeparatorProps, RenderMessageParamsType } from '../../../../types';
import { useGroupChannelContext } from '../../context/GroupChannelProvider';
-import { GroupChannelUIView } from './GroupChannelUIView';
-import type { MessageContentProps } from '../../../../ui/MessageContent';
+import { GroupChannelUIBasicProps, GroupChannelUIView } from './GroupChannelUIView';
+
+import GroupChannelHeader from '../GroupChannelHeader';
+import MessageList from '../MessageList';
import MessageInputWrapper from '../MessageInputWrapper';
-export interface GroupChannelUIProps {
- renderPlaceholderLoader?: () => React.ReactElement;
- renderPlaceholderInvalid?: () => React.ReactElement;
- renderPlaceholderEmpty?: () => React.ReactElement;
- renderChannelHeader?: (props: GroupChannelHeaderProps) => React.ReactElement;
- renderMessage?: (props: RenderMessageParamsType) => React.ReactElement;
- renderMessageContent?: (props: MessageContentProps) => React.ReactElement;
- renderMessageList?: (props: MessageListProps | GroupChannelMessageListProps) => React.ReactElement;
- renderMessageInput?: () => React.ReactElement;
- renderFileUploadIcon?: () => React.ReactElement;
- renderVoiceMessageIcon?: () => React.ReactElement;
- renderSendMessageIcon?: () => React.ReactElement;
- renderTypingIndicator?: () => React.ReactElement;
- renderCustomSeparator?: (props: RenderCustomSeparatorProps) => React.ReactElement;
- renderFrozenNotification?: () => React.ReactElement;
-}
+export interface GroupChannelUIProps extends GroupChannelUIBasicProps {}
export const GroupChannelUI = (props: GroupChannelUIProps) => {
const context = useGroupChannelContext();
+ const { currentChannel, channelUrl, loading } = context;
+
+ // Inject components to presentation layer
const {
- currentChannel,
- channelUrl,
- loading,
- } = context;
+ renderChannelHeader = (props) =>
,
+ renderMessageList = (props) =>
,
+ renderMessageInput = () =>
,
+ } = props;
return (
(
- props.renderMessageInput?.()
- ??
- )}
+ channelUrl={channelUrl}
+ renderChannelHeader={renderChannelHeader}
+ renderMessageList={renderMessageList}
+ renderMessageInput={renderMessageInput}
/>
);
};