Page MenuHomePhabricator

D10824.id36469.diff
No OneTemporary

D10824.id36469.diff

diff --git a/lib/types/nav-types.js b/lib/types/nav-types.js
--- a/lib/types/nav-types.js
+++ b/lib/types/nav-types.js
@@ -27,12 +27,14 @@
| 'friend-list'
| 'block-list'
| 'keyservers'
+ | 'build-info'
| 'danger-zone';
export const webNavigationSettingsSectionValidator: TEnums = t.enums.of([
'account',
'friend-list',
'block-list',
'keyservers',
+ 'build-info',
'danger-zone',
]);
export type WebNavigationChatMode = 'view' | 'create';
diff --git a/lib/utils/url-utils.js b/lib/utils/url-utils.js
--- a/lib/utils/url-utils.js
+++ b/lib/utils/url-utils.js
@@ -21,6 +21,7 @@
| 'friend-list'
| 'block-list'
| 'keyservers'
+ | 'build-info'
| 'danger-zone',
threadCreation?: boolean,
selectedUserList?: $ReadOnlyArray<string>,
@@ -44,6 +45,7 @@
'friend-list',
'block-list',
'keyservers',
+ 'build-info',
'danger-zone',
]),
),
@@ -65,6 +67,7 @@
const friendListRegex = new RegExp('(/|^)settings/friend-list(/|$)', 'i');
const blockListRegex = new RegExp('(/|^)settings/block-list(/|$)', 'i');
const keyserversRegex = new RegExp('(/|^)settings/keyservers(/|$)', 'i');
+const buildInfoRegex = new RegExp('(/|^)settings/build-info(/|$)', 'i');
const dangerZoneRegex = new RegExp('(/|^)settings/danger-zone(/|$)', 'i');
const threadPendingRegex = new RegExp(
`(/|^)thread/(${pendingThreadIDRegex})(/|$)`,
@@ -91,6 +94,7 @@
const friendListTest = friendListRegex.test(url);
const blockListTest = blockListRegex.test(url);
const keyserversSettingsTest = keyserversRegex.test(url);
+ const buildInfoTest = buildInfoRegex.test(url);
const dangerZoneTest = dangerZoneRegex.test(url);
const threadPendingMatches = threadPendingRegex.exec(url);
const threadCreateMatches = threadCreationRegex.exec(url);
@@ -136,6 +140,8 @@
returnObj.settings = 'block-list';
} else if (keyserversSettingsTest) {
returnObj.settings = 'keyservers';
+ } else if (buildInfoTest) {
+ returnObj.settings = 'build-info';
} else if (dangerZoneTest) {
returnObj.settings = 'danger-zone';
} else if (qrCodeLoginMatches) {
diff --git a/web/app.react.js b/web/app.react.js
--- a/web/app.react.js
+++ b/web/app.react.js
@@ -315,6 +315,8 @@
mainContent = null;
} else if (settingsSection === 'keyservers') {
mainContent = <KeyserverSelectionList />;
+ } else if (settingsSection === 'build-info') {
+ mainContent = null;
} else if (settingsSection === 'danger-zone') {
mainContent = <DangerZone />;
}
diff --git a/web/settings/user-settings-list.react.js b/web/settings/user-settings-list.react.js
--- a/web/settings/user-settings-list.react.js
+++ b/web/settings/user-settings-list.react.js
@@ -44,6 +44,13 @@
});
}, [dispatch]);
+ const onClickBuildInfo = React.useCallback(() => {
+ dispatch({
+ type: updateNavInfoActionType,
+ payload: { tab: 'settings', settingsSection: 'build-info' },
+ });
+ }, [dispatch]);
+
const onClickDangerZone = React.useCallback(() => {
dispatch({
type: updateNavInfoActionType,
@@ -84,6 +91,11 @@
onClick={onClickBlockList}
/>
{keyserverSettingsListItem}
+ <UserSettingsListItem
+ id="build-info"
+ name="Build info"
+ onClick={onClickBuildInfo}
+ />
<UserSettingsListItem
id="danger-zone"
name="Danger zone"
@@ -95,6 +107,7 @@
keyserverSettingsListItem,
onClickAccountSettings,
onClickBlockList,
+ onClickBuildInfo,
onClickDangerZone,
onClickFriendList,
],

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 11:33 AM (20 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2249169
Default Alt Text
D10824.id36469.diff (3 KB)

Event Timeline