Skip to content

Commit 0831e26

Browse files
authored
fix: Do not render date separator when renderCustomSeparator is null (#147)
Fixes: https://sendbird.atlassian.net/browse/UIKIT-1746
1 parent d225569 commit 0831e26

File tree

5 files changed

+21
-15
lines changed

5 files changed

+21
-15
lines changed

src/index.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ interface ChannelUIProps {
609609
renderMessage?: (props: RenderMessageProps) => React.ComponentType;
610610
renderMessageInput?: () => React.ReactNode;
611611
renderTypingIndicator?: () => React.ReactNode;
612-
renderCustomSeperator?: () => React.ReactNode;
612+
renderCustomSeparator?: () => React.ReactNode;
613613
}
614614

615615
type CoreMessageType = Sendbird.AdminMessage | Sendbird.UserMessage | Sendbird.FileMessage;
@@ -659,15 +659,15 @@ type MessageUIProps = {
659659
handleScroll: () => void;
660660
// for extending
661661
renderMessage?: (props: RenderMessageProps) => React.ReactNode;
662-
renderCustomSeperator?: () => React.ReactNode;
662+
renderCustomSeparator?: () => React.ReactNode;
663663
renderEditInput?: () => React.ReactNode;
664664
renderMessageContent?: () => React.ReactNode;
665665
};
666666

667667
type MessageListProps = {
668668
renderMessage?: (props: RenderMessageProps) => React.ReactNode;
669669
renderPlaceholderEmpty?: () => React.ReactNode;
670-
renderCustomSeperator?: () => React.ReactNode;
670+
renderCustomSeparator?: () => React.ReactNode;
671671
};
672672

673673
type SuggestedMentionListProps = {

src/smart-components/Channel/components/ChannelUI/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export interface ChannelUIProps {
2323
renderMessage?: (props: RenderMessageProps) => React.ReactNode;
2424
renderMessageInput?: () => React.ReactNode;
2525
renderTypingIndicator?: () => React.ReactNode;
26-
renderCustomSeperator?: () => React.ReactNode;
26+
renderCustomSeparator?: () => React.ReactNode;
2727
}
2828

2929
const ChannelUI: React.FC<ChannelUIProps> = ({
@@ -34,7 +34,7 @@ const ChannelUI: React.FC<ChannelUIProps> = ({
3434
renderMessage,
3535
renderMessageInput,
3636
renderTypingIndicator,
37-
renderCustomSeperator,
37+
renderCustomSeparator,
3838
}: ChannelUIProps) => {
3939
const {
4040
currentGroupChannel,
@@ -143,7 +143,7 @@ const ChannelUI: React.FC<ChannelUIProps> = ({
143143
<MessageList
144144
renderMessage={renderMessage}
145145
renderPlaceholderEmpty={renderPlaceholderEmpty}
146-
renderCustomSeperator={renderCustomSeperator}
146+
renderCustomSeparator={renderCustomSeparator}
147147
/>
148148
)
149149
}

src/smart-components/Channel/components/Message/index.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ type MessageUIProps = {
3232
handleScroll: () => void;
3333
// for extending
3434
renderMessage?: (props: RenderMessageProps) => React.ReactNode;
35-
renderCustomSeperator?: () => React.ReactNode;
35+
renderCustomSeparator?: () => React.ReactNode;
3636
renderEditInput?: () => React.ReactNode;
3737
renderMessageContent?: () => React.ReactNode;
3838
};
@@ -44,7 +44,7 @@ const Message: React.FC<MessageUIProps> = (props: MessageUIProps) => {
4444
chainTop,
4545
chainBottom,
4646
handleScroll,
47-
renderCustomSeperator,
47+
renderCustomSeparator,
4848
renderEditInput,
4949
renderMessage,
5050
renderMessageContent,
@@ -160,6 +160,12 @@ const Message: React.FC<MessageUIProps> = (props: MessageUIProps) => {
160160
chainBottom,
161161
});
162162
}, [message, renderMessage]);
163+
const renderedCustomSeparator = useMemo(() => {
164+
if (renderCustomSeparator) {
165+
return renderCustomSeparator?.();
166+
}
167+
return null;
168+
}, [message, renderCustomSeparator]);
163169

164170
if (renderedMessage) {
165171
return (
@@ -174,15 +180,15 @@ const Message: React.FC<MessageUIProps> = (props: MessageUIProps) => {
174180
{/* date-separator */}
175181
{
176182
// TODO: Add message instance as a function parameter
177-
hasSeparator && renderCustomSeperator?.() || (
183+
hasSeparator && (renderedCustomSeparator || (
178184
<DateSeparator>
179185
<Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>
180186
{format(message.createdAt, 'MMMM dd, yyyy', {
181187
locale: dateLocale,
182188
})}
183189
</Label>
184190
</DateSeparator>
185-
)
191+
))
186192
}
187193
{renderedMessage}
188194
</div>
@@ -273,7 +279,7 @@ const Message: React.FC<MessageUIProps> = (props: MessageUIProps) => {
273279
>
274280
{/* date-separator */}
275281
{
276-
hasSeparator && (renderCustomSeperator?.() || (
282+
hasSeparator && (renderedCustomSeparator || (
277283
<DateSeparator>
278284
<Label type={LabelTypography.CAPTION_2} color={LabelColors.ONBACKGROUND_2}>
279285
{format(message.createdAt, 'MMMM dd, yyyy', {

src/smart-components/Channel/components/MessageList/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import uuidv4 from '../../../../utils/uuid';
1515
export type MessageListProps = {
1616
renderMessage?: (props: RenderMessageProps) => React.ReactNode;
1717
renderPlaceholderEmpty?: () => React.ReactNode;
18-
renderCustomSeperator?: () => React.ReactNode;
18+
renderCustomSeparator?: () => React.ReactNode;
1919
};
2020

2121
const SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';
@@ -24,7 +24,7 @@ const MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {
2424
const {
2525
renderMessage,
2626
renderPlaceholderEmpty,
27-
renderCustomSeperator,
27+
renderCustomSeparator,
2828
} = props;
2929
const {
3030
allMessages,
@@ -143,7 +143,7 @@ const MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {
143143
hasSeparator={hasSeparator}
144144
chainTop={chainTop}
145145
chainBottom={chainBottom}
146-
renderCustomSeperator={renderCustomSeperator}
146+
renderCustomSeparator={renderCustomSeparator}
147147
key={m.messageId + uuidv4()}
148148
/>
149149
);

src/smart-components/Channel/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const Channel: React.FC<ChannelProps> = (props: ChannelProps) => {
3636
renderMessage={props?.renderMessage}
3737
renderMessageInput={props?.renderMessageInput}
3838
renderTypingIndicator={props?.renderTypingIndicator}
39-
renderCustomSeperator={props?.renderCustomSeperator}
39+
renderCustomSeparator={props?.renderCustomSeparator}
4040
/>
4141
</ChannelProvider>
4242
);

0 commit comments

Comments
 (0)