diff --git a/native/navigation/route-names.js b/native/navigation/route-names.js
--- a/native/navigation/route-names.js
+++ b/native/navigation/route-names.js
@@ -140,6 +140,7 @@
export const UserProfileBottomSheetRouteName = 'UserProfileBottomSheet';
export const UserProfileAvatarModalRouteName = 'UserProfileAvatarModal';
export const KeyserverSelectionListRouteName = 'KeyserverSelectionList';
+export const AddKeyserverRouteName = 'AddKeyserver';
export type RootParamList = {
+LoggedOutModal: void,
@@ -234,6 +235,7 @@
+SecondaryDeviceQRCodeScanner: void,
+BackupMenu: void,
+KeyserverSelectionList: void,
+ +AddKeyserver: void,
};
export type CommunityDrawerParamList = { +TabNavigator: void };
diff --git a/native/profile/add-keyserver.react.js b/native/profile/add-keyserver.react.js
new file mode 100644
--- /dev/null
+++ b/native/profile/add-keyserver.react.js
@@ -0,0 +1,10 @@
+// @flow
+
+import * as React from 'react';
+
+// eslint-disable-next-line no-unused-vars
+function AddKeyserver(props: { ... }): React.Node {
+ return null;
+}
+
+export default AddKeyserver;
diff --git a/native/profile/keyserver-selection-list-header-right-button.react.js b/native/profile/keyserver-selection-list-header-right-button.react.js
new file mode 100644
--- /dev/null
+++ b/native/profile/keyserver-selection-list-header-right-button.react.js
@@ -0,0 +1,22 @@
+// @flow
+
+import { useNavigation } from '@react-navigation/native';
+import * as React from 'react';
+
+import HeaderRightTextButton from '../navigation/header-right-text-button.react.js';
+import { AddKeyserverRouteName } from '../navigation/route-names.js';
+
+function KeyserverSelectionListHeaderRightButton(): React.Node {
+ const { navigate } = useNavigation();
+
+ const navigateToAddKeyserverScreen = React.useCallback(
+ () => navigate(AddKeyserverRouteName),
+ [navigate],
+ );
+
+ return (
+
+ );
+}
+
+export default KeyserverSelectionListHeaderRightButton;
diff --git a/native/profile/profile.react.js b/native/profile/profile.react.js
--- a/native/profile/profile.react.js
+++ b/native/profile/profile.react.js
@@ -9,6 +9,7 @@
import * as React from 'react';
import { View, useWindowDimensions } from 'react-native';
+import AddKeyserver from './add-keyserver.react.js';
import AppearancePreferences from './appearance-preferences.react.js';
import BackupMenu from './backup-menu.react.js';
import BuildInfo from './build-info.react.js';
@@ -17,6 +18,7 @@
import DevTools from './dev-tools.react.js';
import EditPassword from './edit-password.react.js';
import EmojiUserAvatarCreation from './emoji-user-avatar-creation.react.js';
+import KeyserverSelectionListHeaderRightButton from './keyserver-selection-list-header-right-button.react.js';
import KeyserverSelectionList from './keyserver-selection-list.react.js';
import LinkedDevicesHeaderRightButton from './linked-devices-header-right-button.react.js';
import LinkedDevices from './linked-devices.react.js';
@@ -45,6 +47,7 @@
SecondaryDeviceQRCodeScannerRouteName,
BackupMenuRouteName,
KeyserverSelectionListRouteName,
+ AddKeyserverRouteName,
type ScreenParamList,
type ProfileParamList,
} from '../navigation/route-names.js';
@@ -63,7 +66,12 @@
// eslint-disable-next-line react/display-name
headerRight: () => ,
};
-const keyserverSelectionListOptions = { headerTitle: 'Keyserver selection' };
+const keyserverSelectionListOptions = {
+ headerTitle: 'Keyserver selection',
+ // eslint-disable-next-line react/display-name
+ headerRight: () => ,
+};
+const addKeyserverOptions = { headerTitle: 'Add keyserver' };
const backupMenuOptions = { headerTitle: 'Backup menu' };
const secondaryDeviceQRCodeScannerOptions = {
headerTitle: '',
@@ -159,6 +167,11 @@
component={KeyserverSelectionList}
options={keyserverSelectionListOptions}
/>
+