Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/room-list/14466
This commit is contained in:
commit
697ba12b3a
3 changed files with 23 additions and 6 deletions
|
@ -1003,9 +1003,10 @@ export default createReactClass({
|
||||||
this.state.inviterProfile.avatarUrl, 36, 36,
|
this.state.inviterProfile.avatarUrl, 36, 36,
|
||||||
) : null;
|
) : null;
|
||||||
|
|
||||||
let inviterName = group.inviter.userId;
|
const inviter = group.inviter || {};
|
||||||
|
let inviterName = inviter.userId;
|
||||||
if (this.state.inviterProfile) {
|
if (this.state.inviterProfile) {
|
||||||
inviterName = this.state.inviterProfile.displayName || group.inviter.userId;
|
inviterName = this.state.inviterProfile.displayName || inviter.userId;
|
||||||
}
|
}
|
||||||
return <div className="mx_GroupView_membershipSection mx_GroupView_membershipSection_invited">
|
return <div className="mx_GroupView_membershipSection mx_GroupView_membershipSection_invited">
|
||||||
<div className="mx_GroupView_membershipSubSection">
|
<div className="mx_GroupView_membershipSubSection">
|
||||||
|
@ -1016,7 +1017,7 @@ export default createReactClass({
|
||||||
height={36}
|
height={36}
|
||||||
/>
|
/>
|
||||||
{ _t("%(inviter)s has invited you to join this community", {
|
{ _t("%(inviter)s has invited you to join this community", {
|
||||||
inviter: inviterName,
|
inviter: inviterName || _t("Someone"),
|
||||||
}) }
|
}) }
|
||||||
</div>
|
</div>
|
||||||
<div className="mx_GroupView_membership_buttonContainer">
|
<div className="mx_GroupView_membership_buttonContainer">
|
||||||
|
|
|
@ -25,6 +25,7 @@ interface ITooltipProps extends React.ComponentProps<typeof AccessibleButton> {
|
||||||
title: string;
|
title: string;
|
||||||
tooltip?: React.ReactNode;
|
tooltip?: React.ReactNode;
|
||||||
tooltipClassName?: string;
|
tooltipClassName?: string;
|
||||||
|
forceHide?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IState {
|
interface IState {
|
||||||
|
@ -39,7 +40,16 @@ export default class AccessibleTooltipButton extends React.PureComponent<IToolti
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps: Readonly<ITooltipProps>) {
|
||||||
|
if (!prevProps.forceHide && this.props.forceHide && this.state.hover) {
|
||||||
|
this.setState({
|
||||||
|
hover: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMouseOver = () => {
|
onMouseOver = () => {
|
||||||
|
if (this.props.forceHide) return;
|
||||||
this.setState({
|
this.setState({
|
||||||
hover: true,
|
hover: true,
|
||||||
});
|
});
|
||||||
|
|
|
@ -113,7 +113,7 @@ export default class RoomTile extends React.PureComponent<IProps, IState> {
|
||||||
};
|
};
|
||||||
|
|
||||||
private get showContextMenu(): boolean {
|
private get showContextMenu(): boolean {
|
||||||
return !this.props.isMinimized && this.props.tag !== DefaultTagID.Invite;
|
return this.props.tag !== DefaultTagID.Invite;
|
||||||
}
|
}
|
||||||
|
|
||||||
private get showMessagePreview(): boolean {
|
private get showMessagePreview(): boolean {
|
||||||
|
@ -304,7 +304,9 @@ export default class RoomTile extends React.PureComponent<IProps, IState> {
|
||||||
private onClickMute = ev => this.saveNotifState(ev, MUTE);
|
private onClickMute = ev => this.saveNotifState(ev, MUTE);
|
||||||
|
|
||||||
private renderNotificationsMenu(isActive: boolean): React.ReactElement {
|
private renderNotificationsMenu(isActive: boolean): React.ReactElement {
|
||||||
if (MatrixClientPeg.get().isGuest() || this.props.tag === DefaultTagID.Archived || !this.showContextMenu) {
|
if (MatrixClientPeg.get().isGuest() || this.props.tag === DefaultTagID.Archived ||
|
||||||
|
!this.showContextMenu || this.props.isMinimized
|
||||||
|
) {
|
||||||
// the menu makes no sense in these cases so do not show one
|
// the menu makes no sense in these cases so do not show one
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -530,9 +532,13 @@ export default class RoomTile extends React.PureComponent<IProps, IState> {
|
||||||
ariaDescribedBy = messagePreviewId(this.props.room.roomId);
|
ariaDescribedBy = messagePreviewId(this.props.room.roomId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const props: Partial<React.ComponentProps<typeof AccessibleTooltipButton>> = {};
|
||||||
let Button: React.ComponentType<React.ComponentProps<typeof AccessibleButton>> = AccessibleButton;
|
let Button: React.ComponentType<React.ComponentProps<typeof AccessibleButton>> = AccessibleButton;
|
||||||
if (this.props.isMinimized) {
|
if (this.props.isMinimized) {
|
||||||
Button = AccessibleTooltipButton;
|
Button = AccessibleTooltipButton;
|
||||||
|
props.title = name;
|
||||||
|
// force the tooltip to hide whilst we are showing the context menu
|
||||||
|
props.forceHide = !!this.state.generalMenuPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -540,6 +546,7 @@ export default class RoomTile extends React.PureComponent<IProps, IState> {
|
||||||
<RovingTabIndexWrapper inputRef={this.roomTileRef}>
|
<RovingTabIndexWrapper inputRef={this.roomTileRef}>
|
||||||
{({onFocus, isActive, ref}) =>
|
{({onFocus, isActive, ref}) =>
|
||||||
<Button
|
<Button
|
||||||
|
{...props}
|
||||||
onFocus={onFocus}
|
onFocus={onFocus}
|
||||||
tabIndex={isActive ? 0 : -1}
|
tabIndex={isActive ? 0 : -1}
|
||||||
inputRef={ref}
|
inputRef={ref}
|
||||||
|
@ -550,7 +557,6 @@ export default class RoomTile extends React.PureComponent<IProps, IState> {
|
||||||
aria-label={ariaLabel}
|
aria-label={ariaLabel}
|
||||||
aria-selected={this.state.selected}
|
aria-selected={this.state.selected}
|
||||||
aria-describedby={ariaDescribedBy}
|
aria-describedby={ariaDescribedBy}
|
||||||
title={this.props.isMinimized ? name : undefined}
|
|
||||||
>
|
>
|
||||||
{roomAvatar}
|
{roomAvatar}
|
||||||
{nameContainer}
|
{nameContainer}
|
||||||
|
|
Loading…
Reference in a new issue