diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 4e6ffbd2c8..4c783eedac 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -611,10 +611,13 @@ export default React.createClass({
this._viewIndexedRoom(payload.roomIndex);
break;
case 'view_user_settings': {
- const UserSettingsDialog = sdk.getComponent("dialogs.UserSettingsDialog");
- Modal.createTrackedDialog('User settings', '', UserSettingsDialog, {});
- //this._setPage(PageTypes.UserSettings);
- //this.notifyNewScreen('settings');
+ if (SettingsStore.isFeatureEnabled("feature_tabbed_settings")) {
+ const UserSettingsDialog = sdk.getComponent("dialogs.UserSettingsDialog");
+ Modal.createTrackedDialog('User settings', '', UserSettingsDialog, {});
+ } else {
+ this._setPage(PageTypes.UserSettings);
+ this.notifyNewScreen('settings');
+ }
break;
}
case 'view_old_user_settings':
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index defc77e3dd..ae9eb2e9b4 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -262,6 +262,7 @@
"Please contact your homeserver administrator.": "Please contact your homeserver administrator.",
"Failed to join room": "Failed to join room",
"Message Pinning": "Message Pinning",
+ "Tabbed settings": "Tabbed settings",
"Custom user status messages": "Custom user status messages",
"Increase performance by only loading room members on first view": "Increase performance by only loading room members on first view",
"Backup of encryption keys to server": "Backup of encryption keys to server",
@@ -401,9 +402,10 @@
"Off": "Off",
"On": "On",
"Noisy": "Noisy",
- "General": "General",
- "Profile": "Profile",
"Display Name": "Display Name",
+ "Save": "Save",
+ "Profile": "Profile",
+ "General": "General",
"Cannot add any more widgets": "Cannot add any more widgets",
"The maximum permitted number of widgets have already been added to this room.": "The maximum permitted number of widgets have already been added to this room.",
"Add a widget": "Add a widget",
@@ -536,7 +538,6 @@
"World readable": "World readable",
"Guests can join": "Guests can join",
"Failed to set avatar.": "Failed to set avatar.",
- "Save": "Save",
"(~%(count)s results)|other": "(~%(count)s results)",
"(~%(count)s results)|one": "(~%(count)s result)",
"Join Room": "Join Room",
@@ -713,46 +714,6 @@
"Removed or unknown message type": "Removed or unknown message type",
"Message removed by %(userId)s": "Message removed by %(userId)s",
"Message removed": "Message removed",
- "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
- "This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
- "Custom Server Options": "Custom Server Options",
- "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.",
- "This allows you to use this app with an existing Matrix account on a different home server.": "This allows you to use this app with an existing Matrix account on a different home server.",
- "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "You can also set a custom identity server but this will typically prevent interaction with users based on email address.",
- "To continue, please enter your password.": "To continue, please enter your password.",
- "Password:": "Password:",
- "Please review and accept all of the homeserver's policies": "Please review and accept all of the homeserver's policies",
- "Please review and accept the policies of this homeserver:": "Please review and accept the policies of this homeserver:",
- "An email has been sent to %(emailAddress)s": "An email has been sent to %(emailAddress)s",
- "Please check your email to continue registration.": "Please check your email to continue registration.",
- "Token incorrect": "Token incorrect",
- "A text message has been sent to %(msisdn)s": "A text message has been sent to %(msisdn)s",
- "Please enter the code it contains:": "Please enter the code it contains:",
- "Code": "Code",
- "Start authentication": "Start authentication",
- "powered by Matrix": "powered by Matrix",
- "The email field must not be blank.": "The email field must not be blank.",
- "The user name field must not be blank.": "The user name field must not be blank.",
- "The phone number field must not be blank.": "The phone number field must not be blank.",
- "The password field must not be blank.": "The password field must not be blank.",
- "Username on %(hs)s": "Username on %(hs)s",
- "User name": "User name",
- "Mobile phone number": "Mobile phone number",
- "Forgot your password?": "Forgot your password?",
- "Matrix ID": "Matrix ID",
- "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
- "Sign in with": "Sign in with",
- "Email address": "Email address",
- "Sign in": "Sign in",
- "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "If you don't specify an email address, you won't be able to reset your password. Are you sure?",
- "Email address (optional)": "Email address (optional)",
- "You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s",
- "Mobile phone number (optional)": "Mobile phone number (optional)",
- "Default server": "Default server",
- "Custom server": "Custom server",
- "Home server URL": "Home server URL",
- "Identity server URL": "Identity server URL",
- "What does this mean?": "What does this mean?",
"Remove from community": "Remove from community",
"Disinvite this user from community?": "Disinvite this user from community?",
"Remove this user from community?": "Remove this user from community?",
@@ -889,6 +850,7 @@
"And %(count)s more...|other": "And %(count)s more...",
"ex. @bob:example.com": "ex. @bob:example.com",
"Add User": "Add User",
+ "Matrix ID": "Matrix ID",
"Matrix Room ID": "Matrix Room ID",
"email address": "email address",
"That doesn't look like a valid email address": "That doesn't look like a valid email address",
@@ -1015,6 +977,7 @@
"Please check your email and click on the link it contains. Once this is done, click continue.": "Please check your email and click on the link it contains. Once this is done, click continue.",
"Unable to add email address": "Unable to add email address",
"Unable to verify email address.": "Unable to verify email address.",
+ "Email address": "Email address",
"This will allow you to reset your password and receive notifications.": "This will allow you to reset your password and receive notifications.",
"Skip": "Skip",
"Only use lower case letters, numbers and '=_-./'": "Only use lower case letters, numbers and '=_-./'",
@@ -1102,6 +1065,44 @@
"Set status": "Set status",
"Set a new status...": "Set a new status...",
"View Community": "View Community",
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
+ "This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
+ "Custom Server Options": "Custom Server Options",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "This allows you to use this app with an existing Matrix account on a different home server.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "You can also set a custom identity server but this will typically prevent interaction with users based on email address.",
+ "To continue, please enter your password.": "To continue, please enter your password.",
+ "Password:": "Password:",
+ "Please review and accept all of the homeserver's policies": "Please review and accept all of the homeserver's policies",
+ "Please review and accept the policies of this homeserver:": "Please review and accept the policies of this homeserver:",
+ "An email has been sent to %(emailAddress)s": "An email has been sent to %(emailAddress)s",
+ "Please check your email to continue registration.": "Please check your email to continue registration.",
+ "Token incorrect": "Token incorrect",
+ "A text message has been sent to %(msisdn)s": "A text message has been sent to %(msisdn)s",
+ "Please enter the code it contains:": "Please enter the code it contains:",
+ "Code": "Code",
+ "Start authentication": "Start authentication",
+ "powered by Matrix": "powered by Matrix",
+ "The email field must not be blank.": "The email field must not be blank.",
+ "The user name field must not be blank.": "The user name field must not be blank.",
+ "The phone number field must not be blank.": "The phone number field must not be blank.",
+ "The password field must not be blank.": "The password field must not be blank.",
+ "Username on %(hs)s": "Username on %(hs)s",
+ "User name": "User name",
+ "Mobile phone number": "Mobile phone number",
+ "Forgot your password?": "Forgot your password?",
+ "%(serverName)s Matrix ID": "%(serverName)s Matrix ID",
+ "Sign in with": "Sign in with",
+ "Sign in": "Sign in",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "If you don't specify an email address, you won't be able to reset your password. Are you sure?",
+ "Email address (optional)": "Email address (optional)",
+ "You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s",
+ "Mobile phone number (optional)": "Mobile phone number (optional)",
+ "Default server": "Default server",
+ "Custom server": "Custom server",
+ "Home server URL": "Home server URL",
+ "Identity server URL": "Identity server URL",
+ "What does this mean?": "What does this mean?",
"Sorry, your browser is not able to run Riot.": "Sorry, your browser is not able to run Riot.",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.",
"Please install Chrome or Firefox for the best experience.": "Please install Chrome or Firefox for the best experience.",
diff --git a/src/settings/Settings.js b/src/settings/Settings.js
index 5a9bd9e455..4871ee92f9 100644
--- a/src/settings/Settings.js
+++ b/src/settings/Settings.js
@@ -84,6 +84,12 @@ export const SETTINGS = {
supportedLevels: LEVELS_FEATURE,
default: false,
},
+ "feature_tabbed_settings": {
+ isFeature: true,
+ displayName: _td("Tabbed settings"),
+ supportedLevels: LEVELS_FEATURE,
+ default: false,
+ },
"feature_custom_status": {
isFeature: true,
displayName: _td("Custom user status messages"),