96 lines
4.0 KiB
TypeScript
96 lines
4.0 KiB
TypeScript
// Metro module 11850 (f11851).
|
|
import { useCallback, useEffect, useMemo } from "react";
|
|
import { View } from "react-native";
|
|
import { useContactSyncModalStore } from "../../../contact_sync/native/ContactSyncModalStore";
|
|
import UserStore from "../../../../stores/UserStore";
|
|
import { ModalAnimation } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { NAV_BAR_HEIGHT } from "../../../../design/components/Navigator/native/NavigatorConstants.native";
|
|
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import ContactSyncActionCreators from "../../../contact_sync/native/ContactSyncActionCreators";
|
|
import { DiscoverabilityScenes } from "../../../../ConstantsIOS";
|
|
import { closeDiscoverabilityModal, startContactSyncForDiscoverability } from "../NUFActionCreators";
|
|
import DiscoverabilityLanding from "./DiscoverabilityLanding";
|
|
import ContactSyncNameInput from "../../../contact_sync/native/components/ContactSyncNameInput";
|
|
import { ImpressionNames } from "../../../../_bundle/Module503";
|
|
import { Navigator } from "../../../../design/components/Navigator/native/Navigator.native";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
let useStyles, DiscoverabilityNameScene;
|
|
const DiscoverabilityLandingScene = function DiscoverabilityLandingScene() {
|
|
let allowPhone, allowEmail, allowEmail2;
|
|
const navigation = useNavigation();
|
|
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.phone);
|
|
const contactSyncModalStore = useContactSyncModalStore();
|
|
allowPhone = contactSyncModalStore.allowPhone;
|
|
allowEmail = contactSyncModalStore.allowEmail;
|
|
allowEmail2 = allowPhone ? allowPhone : allowEmail;
|
|
return <DiscoverabilityLanding onNext={useCallback(() => {
|
|
ContactSyncActionCreators.updateDiscoverability({
|
|
phone: allowPhone,
|
|
email: allowEmail
|
|
});
|
|
if (allowEmail2 && (stateFromStores != null && allowPhone)) {
|
|
navigation.push(DiscoverabilityScenes.NAME);
|
|
} else {
|
|
closeDiscoverabilityModal(false);
|
|
}
|
|
}, [navigation, stateFromStores, allowEmail, allowPhone, allowEmail2])} />;
|
|
};
|
|
DiscoverabilityNameScene = function DiscoverabilityNameScene() {
|
|
const styles = useStyles();
|
|
const contactSyncModalStore = useContactSyncModalStore();
|
|
let name = contactSyncModalStore.name;
|
|
const allowPhone2 = contactSyncModalStore.allowPhone;
|
|
useEffect(() => {
|
|
if (!allowPhone2) {
|
|
closeDiscoverabilityModal(false);
|
|
}
|
|
}, [allowPhone2]);
|
|
const callback = useCallback((a0) => {
|
|
startContactSyncForDiscoverability(a0);
|
|
closeDiscoverabilityModal(false);
|
|
}, []);
|
|
if (name == null) {
|
|
name = "";
|
|
}
|
|
return <View style={styles.container}>
|
|
<ContactSyncNameInput onNext={callback} loading={false} initialName={name} />
|
|
</View>;
|
|
};
|
|
const DiscoverabilityModal = function DiscoverabilityModal() {
|
|
return <Navigator screens={useMemo(() => {
|
|
const r1 = {};
|
|
r1[DiscoverabilityScenes.LANDING] = {
|
|
ignoreKeyboard: true,
|
|
impressionName: ImpressionNames.DISCOVERABILITY,
|
|
fullscreen: true,
|
|
headerLeft: () => null,
|
|
headerTitle: () => null,
|
|
render: () => <DiscoverabilityLandingScene />
|
|
};
|
|
r1[DiscoverabilityScenes.NAME] = {
|
|
ignoreKeyboard: true,
|
|
impressionName: ImpressionNames.DISCOVERABILITY,
|
|
fullscreen: true,
|
|
headerTitle: () => null,
|
|
render: () => <DiscoverabilityNameScene />
|
|
};
|
|
return r1;
|
|
}, [])} initialRouteName={DiscoverabilityScenes.LANDING} headerBackTitle={intl.string(t["13/7kX"])} />;
|
|
};
|
|
useStyles = createStyles({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
|
|
justifyContent: "center",
|
|
paddingBottom: 44,
|
|
paddingTop: NAV_BAR_HEIGHT + 32
|
|
}
|
|
});
|
|
DiscoverabilityModal.modalConfig = {
|
|
animation: ModalAnimation.SLIDE_IN_OUT
|
|
};
|
|
export default DiscoverabilityModal;
|