99 lines
4.5 KiB
TypeScript
99 lines
4.5 KiB
TypeScript
// Metro module 16274 (f16275).
|
|
import { useState, useRef, useCallback, lazy } from "react";
|
|
import { NativeModules } from "react-native";
|
|
import { jsx } from "react/jsx-runtime";
|
|
import { createNativeStackNavigator } from "../../../../_bundle/Module9109";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { openAlert } from "../../../../design/components/AlertModal/native/useAlertStore.native";
|
|
import { useAccessibilityNativeStackOptions } from "../../../../design/components/Navigator/native/Navigator.native";
|
|
import { getNextOnboardingStep, continueToNextStep } from "../NewUserUtils";
|
|
import ModalActionCreators from "../../../../actions/ModalActionCreators";
|
|
import { NEW_USER_MODAL_KEY } from "./NewUserModalTypes";
|
|
import { useNavigatorBackPressHandler } from "../../../../design/components/Navigator/native/useNavigatorBackPressHandler.native";
|
|
import { isAndroid } from "../../../../utils/PlatformUtils";
|
|
import { RedesignNotificationScreen } from "./notification/RedesignNotificationModal";
|
|
import * as _RedesignAddAvatarModal from "../../../avatar/native/components/RedesignAddAvatarModal";
|
|
import SkipHeaderButton from "./SkipHeaderButton";
|
|
import { ContactSyncOnboardingModal } from "../../../contact_sync/native/components/RedesignContactSyncModal";
|
|
import * as _RedesignDiscoverabilityModal from "./RedesignDiscoverabilityModal";
|
|
import * as _ConnectGuardianModal from "./ConnectGuardianModal";
|
|
const nativeStackNavigator = createNativeStackNavigator();
|
|
const useStyles = createStyles({
|
|
header: {
|
|
borderBottomWidth: 0,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
|
|
shadowColor: "transparent"
|
|
}
|
|
});
|
|
export default function NewUserModal(props) {
|
|
let initialRouteName = props.initialRouteName;
|
|
const initialOnboardingStepIndex = props.initialOnboardingStepIndex;
|
|
const styles = useStyles();
|
|
const [state, setState] = useState(initialOnboardingStepIndex);
|
|
const [state2, setState2] = useState(initialOnboardingStepIndex);
|
|
const ref = useRef(null);
|
|
const accessibilityNativeStackOptions = useAccessibilityNativeStackOptions();
|
|
const callback = useCallback((a0) => {
|
|
getNextOnboardingStep(a0 == null ? false : a0, state2, state).then(({ lastShownStepIndex, onboardingStepIndex, continueNavigation }) => {
|
|
setState(onboardingStepIndex);
|
|
setState2(lastShownStepIndex);
|
|
if (continueNavigation && ref.current != null) {
|
|
continueToNextStep(onboardingStepIndex, ref.current);
|
|
} else {
|
|
ModalActionCreators.popWithKey(NEW_USER_MODAL_KEY);
|
|
}
|
|
});
|
|
}, [state2, state]);
|
|
useNavigatorBackPressHandler(() => {
|
|
NativeModules.MinimizeApp.minimizeApp();
|
|
return true;
|
|
});
|
|
const Navigator = nativeStackNavigator.Navigator;
|
|
if (initialRouteName == null) {
|
|
initialRouteName = "choose-avatar";
|
|
}
|
|
return <Navigator screenOptions={(a0) => {
|
|
ref.current = a0.navigation;
|
|
return {
|
|
headerStyle: styles.header,
|
|
headerShadowVisible: false,
|
|
title: "",
|
|
headerLeft: () => null,
|
|
headerRight: () => null,
|
|
fullScreenGestureEnabled: false,
|
|
presentation: isAndroid() ? "transparentModal" : "card",
|
|
animation: "slide_from_right",
|
|
headerBackVisible: false,
|
|
...accessibilityNativeStackOptions
|
|
};
|
|
}} initialRouteName={initialRouteName}>
|
|
<nativeStackNavigator.Screen name="enable-notification" getComponent={() => RedesignNotificationScreen} initialParams={{
|
|
onComplete: callback
|
|
}} />
|
|
<nativeStackNavigator.Screen name="choose-avatar" getComponent={() => _RedesignAddAvatarModal.default} options={() => ({
|
|
headerRight: (a0) => <SkipHeaderButton {...a0} onPress={() => {
|
|
const callback2 = callback;
|
|
openAlert("skip-avatar-upload", jsx(lazy(() => import("../../../avatar/native/components/RedesignSkipAvatarUploadAlertModal")), {
|
|
onConfirm: () => callback2(true)
|
|
}));
|
|
}} />
|
|
})} initialParams={{
|
|
onComplete: callback
|
|
}} />
|
|
<nativeStackNavigator.Screen name="contact-sync" options={{
|
|
headerShown: false
|
|
}} getComponent={() => ContactSyncOnboardingModal} initialParams={{
|
|
onComplete: callback
|
|
}} />
|
|
<nativeStackNavigator.Screen name="discoverability" options={{
|
|
headerShown: false
|
|
}} getComponent={() => _RedesignDiscoverabilityModal.default} initialParams={{
|
|
onComplete: callback
|
|
}} />
|
|
<nativeStackNavigator.Screen name="connect-guardian" getComponent={() => _ConnectGuardianModal.default} initialParams={{
|
|
onComplete: callback
|
|
}} />
|
|
</Navigator>;
|
|
};
|