Fix React unique key errors (#7640)

This commit is contained in:
Michael Telatynski 2022-01-26 13:01:29 +00:00 committed by GitHub
parent dc9b712840
commit d239697384
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -304,13 +304,12 @@ export default class MessageActionBar extends React.PureComponent<IMessageAction
key="cancel" key="cancel"
/>; />;
const threadTooltipButton = <CardContext.Consumer> const threadTooltipButton = <CardContext.Consumer key="thread">
{ context => { context =>
<RovingAccessibleTooltipButton <RovingAccessibleTooltipButton
className="mx_MessageActionBar_maskButton mx_MessageActionBar_threadButton" className="mx_MessageActionBar_maskButton mx_MessageActionBar_threadButton"
title={_t("Reply in thread")} title={_t("Reply in thread")}
onClick={this.onThreadClick.bind(null, context.isCard)} onClick={this.onThreadClick.bind(null, context.isCard)}
key="thread"
/> />
} }
</CardContext.Consumer>; </CardContext.Consumer>;
@ -339,17 +338,17 @@ export default class MessageActionBar extends React.PureComponent<IMessageAction
// The only catch is we do the reply button first so that we can make sure the react // The only catch is we do the reply button first so that we can make sure the react
// button is the very first button without having to do length checks for `splice()`. // button is the very first button without having to do length checks for `splice()`.
if (this.context.canReply) { if (this.context.canReply) {
toolbarOpts.splice(0, 0, <> if (this.showReplyInThreadAction) {
toolbarOpts.splice(0, 0, threadTooltipButton);
}
toolbarOpts.splice(0, 0, (
<RovingAccessibleTooltipButton <RovingAccessibleTooltipButton
className="mx_MessageActionBar_maskButton mx_MessageActionBar_replyButton" className="mx_MessageActionBar_maskButton mx_MessageActionBar_replyButton"
title={_t("Reply")} title={_t("Reply")}
onClick={this.onReplyClick} onClick={this.onReplyClick}
key="reply" key="reply"
/> />
{ (this.showReplyInThreadAction) && ( ));
threadTooltipButton
) }
</>);
} }
if (this.context.canReact) { if (this.context.canReact) {
toolbarOpts.splice(0, 0, <ReactButton toolbarOpts.splice(0, 0, <ReactButton
@ -368,12 +367,10 @@ export default class MessageActionBar extends React.PureComponent<IMessageAction
key="download" key="download"
/>); />);
} }
} } else if (SettingsStore.getValue("feature_thread") &&
// Show thread icon even for deleted messages, but only within main timeline // Show thread icon even for deleted messages, but only within main timeline
if (this.context.timelineRenderingType === TimelineRenderingType.Room && this.context.timelineRenderingType === TimelineRenderingType.Room &&
SettingsStore.getValue("feature_thread") && this.props.mxEvent.getThread()
this.props.mxEvent.getThread() &&
!isContentActionable(this.props.mxEvent)
) { ) {
toolbarOpts.unshift(threadTooltipButton); toolbarOpts.unshift(threadTooltipButton);
} }