From 9d3569a5778b708ecec146226de0fbfd74912527 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 12 Aug 2021 10:58:56 +0100
Subject: [PATCH] Iterate PR based on feedback
---
res/css/structures/_GroupView.scss | 6 ++-
.../_CreateSpaceFromCommunityDialog.scss | 4 ++
src/components/structures/GroupView.js | 38 +++++++++++++++++--
.../CreateSpaceFromCommunityDialog.tsx | 5 ++-
src/i18n/strings/en_EN.json | 4 +-
5 files changed, 49 insertions(+), 8 deletions(-)
diff --git a/res/css/structures/_GroupView.scss b/res/css/structures/_GroupView.scss
index 21137d8a12..fb660f4194 100644
--- a/res/css/structures/_GroupView.scss
+++ b/res/css/structures/_GroupView.scss
@@ -400,7 +400,11 @@ limitations under the License.
background-color: $secondary-fg-color;
}
- .mx_AccessibleButton {
+ .mx_AccessibleButton_kind_link {
+ padding: 0;
+ }
+
+ .mx_GroupView_spaceUpgradePrompt_close {
width: 16px;
height: 16px;
border-radius: 8px;
diff --git a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
index 306fc77011..afa722e05e 100644
--- a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
+++ b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
@@ -59,6 +59,10 @@ limitations under the License.
.mx_JoinRuleDropdown .mx_Dropdown_menu {
width: auto !important; // override fixed width
}
+
+ .mx_CreateSpaceFromCommunityDialog_nonPublicSpacer {
+ height: 63px; // balance the height of the missing room alias field to prevent modal bouncing
+ }
}
.mx_CreateSpaceFromCommunityDialog_footer {
diff --git a/src/components/structures/GroupView.js b/src/components/structures/GroupView.js
index 26bb1b8ae7..f4f1d50d63 100644
--- a/src/components/structures/GroupView.js
+++ b/src/components/structures/GroupView.js
@@ -41,6 +41,9 @@ import RightPanelStore from "../../stores/RightPanelStore";
import AutoHideScrollbar from "./AutoHideScrollbar";
import { mediaFromMxc } from "../../customisations/Media";
import { replaceableComponent } from "../../utils/replaceableComponent";
+import { createSpaceFromCommunity } from "../../utils/space";
+import { Action } from "../../dispatcher/actions";
+import { RightPanelPhases } from "../../stores/RightPanelStorePhases";
const LONG_DESC_PLACEHOLDER = _td(
`
HTML for your community's page
@@ -815,6 +818,17 @@ export default class GroupView extends React.Component {
this.setState({ showUpgradeNotice: false });
}
+ _onCreateSpaceClick = () => {
+ createSpaceFromCommunity(this._matrixClient, this.props.groupId);
+ };
+
+ _onAdminsLinkClick = () => {
+ dis.dispatch({
+ action: Action.SetRightPanelPhase,
+ phase: RightPanelPhases.GroupMemberList,
+ });
+ };
+
_getGroupSection() {
const groupSettingsSectionClasses = classnames({
"mx_GroupView_group": this.state.editing,
@@ -854,17 +868,35 @@ export default class GroupView extends React.Component {
let communitiesUpgradeNotice;
if (this.state.showUpgradeNotice) {
+ let text;
+ if (this.state.isUserPrivileged) {
+ text = _t("You can create a Space from this community here.", {}, {
+ a: sub =>
+ { sub }
+ ,
+ });
+ } else {
+ text = _t("Ask the admins of this community to make it into a Space " +
+ "and keep a look out for the invite.", {}, {
+ a: sub =>
+ { sub }
+ ,
+ });
+ }
+
communitiesUpgradeNotice =
{ _t("Communities can now be made into Spaces") }
{ _t("Spaces are a new way to make a community, with new features coming.") }
- { _t("Ask the admins of this community to make it into a Space " +
- "and keep a look out for the invite.") }
+ { text }
{ _t("Communities won't receive further updates.") }
-
+
;
}
diff --git a/src/components/views/dialogs/CreateSpaceFromCommunityDialog.tsx b/src/components/views/dialogs/CreateSpaceFromCommunityDialog.tsx
index c9e13d2b61..4fb0994e23 100644
--- a/src/components/views/dialogs/CreateSpaceFromCommunityDialog.tsx
+++ b/src/components/views/dialogs/CreateSpaceFromCommunityDialog.tsx
@@ -286,8 +286,6 @@ const CreateSpaceFromCommunityDialog: React.FC = ({ matrixClient: cli, g
>
- { _t("Spaces are the new version of communities - with new features coming.") }
-
{ _t("A link to the Space will be put in your community description.") }
{ _t("All rooms will be added and all community members will be invited.") }
@@ -326,6 +324,9 @@ const CreateSpaceFromCommunityDialog: React.FC = ({ matrixClient: cli, g
? _t("Open space for anyone, best for communities")
: _t("Invite only, best for yourself or teams")
}
+ { joinRule !== JoinRule.Public &&
+
+ }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 3b5a748f89..987005a1b3 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -2237,7 +2237,6 @@
"To create a Space from another community, just pick the community in Preferences.": "To create a Space from another community, just pick the community in Preferences.",
"Failed to migrate community": "Failed to migrate community",
"Create Space from community": "Create Space from community",
- "Spaces are the new version of communities - with new features coming.": "Spaces are the new version of communities - with new features coming.",
"A link to the Space will be put in your community description.": "A link to the Space will be put in your community description.",
"All rooms will be added and all community members will be invited.": "All rooms will be added and all community members will be invited.",
"Flair won't be available in Spaces for the foreseeable future.": "Flair won't be available in Spaces for the foreseeable future.",
@@ -2727,9 +2726,10 @@
"Community Settings": "Community Settings",
"Want more than a community? Get your own server": "Want more than a community? Get your own server",
"Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.",
+ "You can create a Space from this community here.": "You can create a Space from this community here.",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Ask the admins of this community to make it into a Space and keep a look out for the invite.",
"Communities can now be made into Spaces": "Communities can now be made into Spaces",
"Spaces are a new way to make a community, with new features coming.": "Spaces are a new way to make a community, with new features coming.",
- "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Ask the admins of this community to make it into a Space and keep a look out for the invite.",
"Communities won't receive further updates.": "Communities won't receive further updates.",
"These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.",
"Featured Rooms:": "Featured Rooms:",