116 lines
4.8 KiB
TypeScript
116 lines
4.8 KiB
TypeScript
// Metro module 16277 (f16278).
|
|
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 RedesignDiscoverabilityLanding from "./RedesignDiscoverabilityLanding";
|
|
import { startContactSyncForDiscoverability } from "../NUFActionCreators";
|
|
import ContactSyncNameInput from "../../../contact_sync/native/components/ContactSyncNameInput";
|
|
import { ImpressionNames } from "../../../../_bundle/Module503";
|
|
import SkipHeaderButton from "./SkipHeaderButton";
|
|
import { Navigator } from "../../../../design/components/Navigator/native/Navigator.native";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
let useStyles, DiscoverabilityNameScene;
|
|
const DiscoverabilityLandingScene = function DiscoverabilityLandingScene(props) {
|
|
let allowPhone, name, allowEmail, allowEmail2;
|
|
const onComplete = props.onComplete;
|
|
allowPhone = void 0;
|
|
name = void 0;
|
|
allowEmail = void 0;
|
|
allowEmail2 = void 0;
|
|
const navigation = useNavigation();
|
|
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()?.phone);
|
|
const contactSyncModalStore = useContactSyncModalStore();
|
|
allowPhone = contactSyncModalStore.allowPhone;
|
|
name = contactSyncModalStore.name;
|
|
allowEmail = contactSyncModalStore.allowEmail;
|
|
allowEmail2 = allowPhone ? allowPhone : allowEmail;
|
|
return <RedesignDiscoverabilityLanding onNext={useCallback(() => {
|
|
ContactSyncActionCreators.updateDiscoverability({
|
|
phone: allowPhone,
|
|
email: allowEmail
|
|
});
|
|
if (allowEmail2 && (stateFromStores != null && (allowPhone && name == null))) {
|
|
navigation.push(DiscoverabilityScenes.NAME);
|
|
} else {
|
|
onComplete();
|
|
}
|
|
}, [allowPhone, allowEmail, allowEmail2, stateFromStores, name, navigation, onComplete])} />;
|
|
};
|
|
DiscoverabilityNameScene = function DiscoverabilityNameScene(props) {
|
|
const onComplete2 = props.onComplete;
|
|
const styles = useStyles();
|
|
const contactSyncModalStore = useContactSyncModalStore();
|
|
let name2 = contactSyncModalStore.name;
|
|
const allowPhone2 = contactSyncModalStore.allowPhone;
|
|
useEffect(() => {
|
|
if (!allowPhone2) {
|
|
onComplete2();
|
|
}
|
|
}, [allowPhone2, onComplete2]);
|
|
const callback = useCallback((a0) => {
|
|
startContactSyncForDiscoverability(a0);
|
|
onComplete2();
|
|
}, [onComplete2]);
|
|
if (name2 == null) {
|
|
name2 = "";
|
|
}
|
|
return <View style={styles.container}>
|
|
<ContactSyncNameInput onNext={callback} loading={false} initialName={name2} />
|
|
</View>;
|
|
};
|
|
const RedesignDiscoverabilityModal = function RedesignDiscoverabilityModal(props) {
|
|
const onComplete3 = props.route.params.onComplete;
|
|
return <Navigator headerStyle={useStyles().header} screens={useMemo(() => {
|
|
let r8 = onComplete3;
|
|
if (onComplete3 == null) {
|
|
r8 = () => {};
|
|
}
|
|
const onComplete4 = r8;
|
|
const r10 = {};
|
|
r10[DiscoverabilityScenes.LANDING] = {
|
|
ignoreKeyboard: true,
|
|
impressionName: ImpressionNames.DISCOVERABILITY,
|
|
fullscreen: true,
|
|
headerLeft: () => null,
|
|
headerTitle: () => null,
|
|
headerRight: (a0) => <SkipHeaderButton insideNavigator {...a0} onPress={() => onComplete4(true)} />,
|
|
render: () => <DiscoverabilityLandingScene onComplete={onComplete4} />
|
|
};
|
|
r10[DiscoverabilityScenes.NAME] = {
|
|
ignoreKeyboard: true,
|
|
impressionName: ImpressionNames.DISCOVERABILITY,
|
|
fullscreen: true,
|
|
headerTitle: () => null,
|
|
render: () => <DiscoverabilityNameScene onComplete={onComplete4} />
|
|
};
|
|
return r10;
|
|
}, [onComplete3])} initialRouteName={DiscoverabilityScenes.LANDING} headerBackTitle={intl.string(t["13/7kX"])} />;
|
|
};
|
|
useStyles = createStyles({
|
|
header: {
|
|
borderBottomWidth: 0,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
|
|
shadowColor: "transparent"
|
|
},
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW,
|
|
justifyContent: "center",
|
|
paddingBottom: 44,
|
|
paddingTop: NAV_BAR_HEIGHT + 32
|
|
}
|
|
});
|
|
RedesignDiscoverabilityModal.modalConfig = {
|
|
animation: ModalAnimation.SLIDE_IN_OUT
|
|
};
|
|
export default RedesignDiscoverabilityModal;
|