diff --git a/res/css/views/dialogs/_CreateRoomDialog.scss b/res/css/views/dialogs/_CreateRoomDialog.scss index c542741c30..2678f7b4ad 100644 --- a/res/css/views/dialogs/_CreateRoomDialog.scss +++ b/res/css/views/dialogs/_CreateRoomDialog.scss @@ -15,6 +15,8 @@ limitations under the License. */ .mx_CreateRoomDialog_details { + margin-top: 15px; + .mx_CreateRoomDialog_details_summary { outline: none; list-style: none; @@ -71,11 +73,19 @@ limitations under the License. } .mx_CreateRoomDialog { - &.mx_Dialog_fixedWidth { width: 450px; } + .mx_Dialog_content { + margin-bottom: 40px; + } + + p, + .mx_Field_input label { + color: $muted-fg-color; + } + .mx_SettingsFlag { display: flex; } @@ -90,5 +100,18 @@ limitations under the License. flex: 0 0 auto; margin-left: 30px; } + + .mx_CreateRoomDialog_topic { + margin-bottom: 36px; + } + + .mx_Dialog_content > .mx_SettingsFlag { + margin-top: 24px; + } + + p { + margin: 0 85px 0 0; + font-size: $font-12px; + } } diff --git a/src/components/views/dialogs/CreateRoomDialog.js b/src/components/views/dialogs/CreateRoomDialog.js index 77014db21d..88e90627e8 100644 --- a/src/components/views/dialogs/CreateRoomDialog.js +++ b/src/components/views/dialogs/CreateRoomDialog.js @@ -24,6 +24,7 @@ import withValidation from '../elements/Validation'; import { _t } from '../../../languageHandler'; import {MatrixClientPeg} from '../../../MatrixClientPeg'; import {Key} from "../../../Keyboard"; +import SettingsStore from "../../../settings/SettingsStore"; export default createReactClass({ displayName: 'CreateRoomDialog', @@ -35,6 +36,7 @@ export default createReactClass({ const config = SdkConfig.get(); return { isPublic: false, + isEncrypted: true, name: "", topic: "", alias: "", @@ -62,6 +64,11 @@ export default createReactClass({ if (this.state.noFederate) { createOpts.creation_content = {'m.federate': false}; } + + if (!this.state.isPublic && SettingsStore.isFeatureEnabled("feature_cross_signing")) { + createOpts.encryption = this.state.isEncrypted; + } + return opts; }, @@ -127,6 +134,10 @@ export default createReactClass({ this.setState({isPublic}); }, + onEncryptedChange(isEncrypted) { + this.setState({isEncrypted}); + }, + onAliasChange(alias) { this.setState({alias}); }, @@ -166,11 +177,10 @@ export default createReactClass({ const LabelledToggleSwitch = sdk.getComponent('views.elements.LabelledToggleSwitch'); const RoomAliasField = sdk.getComponent('views.elements.RoomAliasField'); - let privateLabel; - let publicLabel; + let publicPrivateLabel; let aliasField; if (this.state.isPublic) { - publicLabel = (

{_t("Set a room alias to easily share your room with other people.")}

); + publicPrivateLabel = (

{_t("Set a room alias to easily share your room with other people.")}

); const domain = MatrixClientPeg.get().getDomain(); aliasField = (
@@ -178,7 +188,15 @@ export default createReactClass({
); } else { - privateLabel = (

{_t("This room is private, and can only be joined by invitation.")}

); + publicPrivateLabel = (

{_t("This room is private, and can only be joined by invitation.")}

); + } + + let e2eeSection; + if (!this.state.isPublic && SettingsStore.isFeatureEnabled("feature_cross_signing")) { + e2eeSection = + +

{ _t("You can’t disable this later. Bridges & most bots won’t work yet.") }

+
; } const title = this.state.isPublic ? _t('Create a public room') : _t('Create a private room'); @@ -189,10 +207,10 @@ export default createReactClass({
this._nameFieldRef = ref} label={ _t('Name') } onChange={this.onNameChange} onValidate={this.onNameValidate} value={this.state.name} className="mx_CreateRoomDialog_name" /> - + - { privateLabel } - { publicLabel } + { publicPrivateLabel } + { e2eeSection } { aliasField }
{ this.state.detailsOpen ? _t('Hide advanced') : _t('Show advanced') } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index e653942c10..067d5d8eee 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1557,6 +1557,8 @@ "Please enter a name for the room": "Please enter a name for the room", "Set a room alias to easily share your room with other people.": "Set a room alias to easily share your room with other people.", "This room is private, and can only be joined by invitation.": "This room is private, and can only be joined by invitation.", + "Enable end-to-end encryption": "Enable end-to-end encryption", + "You can’t disable this later. Bridges & most bots won’t work yet.": "You can’t disable this later. Bridges & most bots won’t work yet.", "Create a public room": "Create a public room", "Create a private room": "Create a private room", "Name": "Name",