diff --git a/native/account/logged-out-modal.react.js b/native/account/logged-out-modal.react.js
--- a/native/account/logged-out-modal.react.js
+++ b/native/account/logged-out-modal.react.js
@@ -38,7 +38,12 @@
} from '../keyboard/keyboard.js';
import { createIsForegroundSelector } from '../navigation/nav-selectors.js';
import { NavContext } from '../navigation/navigation-context.js';
-import { LoggedOutModalRouteName } from '../navigation/route-names.js';
+import type { RootNavigationProp } from '../navigation/root-navigator.react.js';
+import {
+ type NavigationRoute,
+ LoggedOutModalRouteName,
+ RegistrationRouteName,
+} from '../navigation/route-names.js';
import { resetUserStateActionType } from '../redux/action-types.js';
import { useSelector } from '../redux/redux-utils.js';
import { usePersistedStateLoaded } from '../selectors/app-state-selectors.js';
@@ -111,7 +116,13 @@
);
}
+type BaseProps = {
+ +navigation: RootNavigationProp<'LoggedOutModal'>,
+ +route: NavigationRoute<'LoggedOutModal'>,
+};
+
type Props = {
+ ...BaseProps,
// Navigation state
+isForeground: boolean,
// Redux state
@@ -125,7 +136,6 @@
+styles: typeof unboundStyles,
// Redux dispatch functions
+dispatch: Dispatch,
- ...
};
type State = {
+mode: LoggedOutMode,
@@ -525,13 +535,13 @@
if (__DEV__) {
registerButtons.push(
- Register
+ Register (new)
,
);
@@ -637,6 +647,10 @@
this.keyboardHeightValue.setValue(-1);
this.setMode('register');
};
+
+ onPressNewRegister = () => {
+ this.props.navigation.navigate(RegistrationRouteName);
+ };
}
const unboundStyles = {
@@ -747,39 +761,38 @@
LoggedOutModalRouteName,
);
-const ConnectedLoggedOutModal: React.ComponentType<{ ... }> = React.memo<{
- ...
-}>(function ConnectedLoggedOutModal(props: { ... }) {
- const navContext = React.useContext(NavContext);
- const isForeground = isForegroundSelector(navContext);
+const ConnectedLoggedOutModal: React.ComponentType =
+ React.memo(function ConnectedLoggedOutModal(props: BaseProps) {
+ const navContext = React.useContext(NavContext);
+ const isForeground = isForegroundSelector(navContext);
- const rehydrateConcluded = useSelector(
- state => !!(state._persist && state._persist.rehydrated && navContext),
- );
- const persistedStateLoaded = usePersistedStateLoaded();
- const cookie = useSelector(state => state.cookie);
- const urlPrefix = useSelector(state => state.urlPrefix);
- const loggedIn = useSelector(isLoggedIn);
- const dimensions = useSelector(derivedDimensionsInfoSelector);
- const splashStyle = useSelector(splashStyleSelector);
- const styles = useStyles(unboundStyles);
-
- const dispatch = useDispatch();
- return (
-
- );
-});
+ const rehydrateConcluded = useSelector(
+ state => !!(state._persist && state._persist.rehydrated && navContext),
+ );
+ const persistedStateLoaded = usePersistedStateLoaded();
+ const cookie = useSelector(state => state.cookie);
+ const urlPrefix = useSelector(state => state.urlPrefix);
+ const loggedIn = useSelector(isLoggedIn);
+ const dimensions = useSelector(derivedDimensionsInfoSelector);
+ const splashStyle = useSelector(splashStyleSelector);
+ const styles = useStyles(unboundStyles);
+
+ const dispatch = useDispatch();
+ return (
+
+ );
+ });
export default ConnectedLoggedOutModal;
diff --git a/native/account/registration/keyserver-selection.react.js b/native/account/registration/keyserver-selection.react.js
new file mode 100644
--- /dev/null
+++ b/native/account/registration/keyserver-selection.react.js
@@ -0,0 +1,34 @@
+// @flow
+
+import * as React from 'react';
+import { View, Text } from 'react-native';
+
+import type { RegistrationNavigationProp } from './registration-navigator.react.js';
+import type { NavigationRoute } from '../../navigation/route-names.js';
+import { useStyles } from '../../themes/colors.js';
+
+type Props = {
+ +navigation: RegistrationNavigationProp<'KeyserverSelection'>,
+ +route: NavigationRoute<'KeyserverSelection'>,
+};
+// eslint-disable-next-line no-unused-vars
+function KeyserverSelection(props: Props): React.Node {
+ const styles = useStyles(unboundStyles);
+ return (
+
+ Test Hello Test
+
+ );
+}
+
+const unboundStyles = {
+ background: {
+ backgroundColor: 'panelBackground',
+ },
+ testText: {
+ fontSize: 24,
+ color: 'white',
+ },
+};
+
+export default KeyserverSelection;
diff --git a/native/account/registration/registration-navigator.react.js b/native/account/registration/registration-navigator.react.js
new file mode 100644
--- /dev/null
+++ b/native/account/registration/registration-navigator.react.js
@@ -0,0 +1,55 @@
+// @flow
+
+import {
+ createStackNavigator,
+ type StackNavigationProp,
+ type StackNavigationHelpers,
+} from '@react-navigation/stack';
+import * as React from 'react';
+import { View } from 'react-native';
+
+import KeyserverSelection from './keyserver-selection.react.js';
+import type { RootNavigationProp } from '../../navigation/root-navigator.react.js';
+import {
+ KeyserverSelectionRouteName,
+ type ScreenParamList,
+ type RegistrationParamList,
+} from '../../navigation/route-names.js';
+import { useStyles } from '../../themes/colors.js';
+
+export type RegistrationNavigationProp<
+ RouteName: $Keys = $Keys,
+> = StackNavigationProp;
+
+const Registration = createStackNavigator<
+ ScreenParamList,
+ RegistrationParamList,
+ StackNavigationHelpers,
+>();
+type Props = {
+ +navigation: RootNavigationProp<'Registration'>,
+ ...
+};
+// eslint-disable-next-line no-unused-vars
+function RegistrationNavigator(props: Props): React.Node {
+ const styles = useStyles(unboundStyles);
+ return (
+
+
+
+
+
+ );
+}
+
+const unboundStyles = {
+ view: {
+ flex: 1,
+ backgroundColor: 'panelBackground',
+ },
+};
+
+export default RegistrationNavigator;
diff --git a/native/navigation/root-navigator.react.js b/native/navigation/root-navigator.react.js
--- a/native/navigation/root-navigator.react.js
+++ b/native/navigation/root-navigator.react.js
@@ -38,8 +38,10 @@
type ScreenParamList,
type RootParamList,
TermsAndPrivacyRouteName,
+ RegistrationRouteName,
} from './route-names.js';
import LoggedOutModal from '../account/logged-out-modal.react.js';
+import RegistrationNavigator from '../account/registration/registration-navigator.react.js';
import TermsAndPrivacyModal from '../account/terms-and-privacy-modal.react.js';
import ThreadPickerModal from '../calendar/thread-picker-modal.react.js';
import ImagePasteModal from '../chat/image-paste-modal.react.js';
@@ -190,6 +192,11 @@
component={LoggedOutModal}
options={disableGesturesScreenOptions}
/>
+
> =
RouteProp;
-export const accountModals = [LoggedOutModalRouteName];
+export const accountModals = [LoggedOutModalRouteName, RegistrationRouteName];
export const scrollBlockingModals = [
ImageModalRouteName,