Add invite to space button to room intro
This commit is contained in:
parent
ea760e8f29
commit
65a7d0621d
2 changed files with 45 additions and 8 deletions
|
@ -33,8 +33,13 @@ limitations under the License.
|
||||||
|
|
||||||
.mx_AccessibleButton {
|
.mx_AccessibleButton {
|
||||||
line-height: $font-24px;
|
line-height: $font-24px;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
&::before {
|
& + .mx_AccessibleButton {
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.mx_AccessibleButton_kind_primary_outline)::before {
|
||||||
content: '';
|
content: '';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: $button-fg-color;
|
background-color: $button-fg-color;
|
||||||
|
|
|
@ -28,6 +28,7 @@ import defaultDispatcher from "../../../dispatcher/dispatcher";
|
||||||
import {ViewUserPayload} from "../../../dispatcher/payloads/ViewUserPayload";
|
import {ViewUserPayload} from "../../../dispatcher/payloads/ViewUserPayload";
|
||||||
import {Action} from "../../../dispatcher/actions";
|
import {Action} from "../../../dispatcher/actions";
|
||||||
import dis from "../../../dispatcher/dispatcher";
|
import dis from "../../../dispatcher/dispatcher";
|
||||||
|
import SpaceStore from "../../../stores/SpaceStore";
|
||||||
|
|
||||||
const NewRoomIntro = () => {
|
const NewRoomIntro = () => {
|
||||||
const cli = useContext(MatrixClientContext);
|
const cli = useContext(MatrixClientContext);
|
||||||
|
@ -100,17 +101,48 @@ const NewRoomIntro = () => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let buttons;
|
let parentSpace;
|
||||||
if (room.canInvite(cli.getUserId())) {
|
if (
|
||||||
const onInviteClick = () => {
|
SpaceStore.instance.activeSpace?.canInvite(cli.getUserId()) &&
|
||||||
dis.dispatch({ action: "view_invite", roomId });
|
SpaceStore.instance.getSpaceFilteredRoomIds(SpaceStore.instance.activeSpace).has(room.roomId)
|
||||||
};
|
) {
|
||||||
|
parentSpace = SpaceStore.instance.activeSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
let buttons;
|
||||||
|
if (parentSpace) {
|
||||||
buttons = <div className="mx_NewRoomIntro_buttons">
|
buttons = <div className="mx_NewRoomIntro_buttons">
|
||||||
<AccessibleButton className="mx_NewRoomIntro_inviteButton" kind="primary" onClick={onInviteClick}>
|
<AccessibleButton
|
||||||
|
className="mx_NewRoomIntro_inviteButton"
|
||||||
|
kind="primary"
|
||||||
|
onClick={() => {
|
||||||
|
dis.dispatch({ action: "view_invite", roomId });
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{_t("Invite to %(spaceName)s", { spaceName: parentSpace.name })}
|
||||||
|
</AccessibleButton>
|
||||||
|
{ room.canInvite(cli.getUserId()) && <AccessibleButton
|
||||||
|
className="mx_NewRoomIntro_inviteButton"
|
||||||
|
kind="primary_outline"
|
||||||
|
onClick={() => {
|
||||||
|
dis.dispatch({ action: "view_invite", roomId });
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{_t("Invite to just this room")}
|
||||||
|
</AccessibleButton> }
|
||||||
|
</div>;
|
||||||
|
} else if (room.canInvite(cli.getUserId())) {
|
||||||
|
buttons = <div className="mx_NewRoomIntro_buttons">
|
||||||
|
<AccessibleButton
|
||||||
|
className="mx_NewRoomIntro_inviteButton"
|
||||||
|
kind="primary"
|
||||||
|
onClick={() => {
|
||||||
|
dis.dispatch({ action: "view_invite", roomId });
|
||||||
|
}}
|
||||||
|
>
|
||||||
{_t("Invite to this room")}
|
{_t("Invite to this room")}
|
||||||
</AccessibleButton>
|
</AccessibleButton>
|
||||||
</div>
|
</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url;
|
const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url;
|
||||||
|
|
Loading…
Reference in a new issue