// Metro module 16706 (f16707). import { useState, useMemo } from "react"; import { useNavigatorScreens } from "../../../design/components/Navigator/native/Navigator.native"; import { SafetyFlowScreens, TaskType } from "../types"; import OverviewScreen from "./OverviewScreen"; import EnterEmailScreen from "./tasks/EnterEmailScreen"; import { getHeaderBackButton } from "../../../design/components/Navigator/native/NavigatorHeader.native"; import VerifyEmailScreen from "./tasks/VerifyEmailScreen"; import UpdateAppScreen from "./UpdateAppScreen"; import AgeVerificationScreen from "./tasks/AgeVerificationScreen"; import { ParentalConsentConnectionNavbar } from "./tasks/ParentalConsentConnectionHeader"; import ParentalConsentConnectionScreen from "./tasks/ParentalConsentConnectionScreen"; import ErrorScreen from "./ErrorScreen"; import { getScreensForTaskType } from "./SafetyFlowsUtils"; import { SafetyFlowTaskContext } from "../SafetyFlowsTaskContext"; import { StepModal } from "../../../design/components/Modal/native/StepModal.native"; export default function SafetyFlowsModal(props) { const { task, initialScreen } = props; const [state, setState] = useState(task); const navigatorScreens = useNavigatorScreens(() => { const r1 = {}; r1[SafetyFlowScreens.OVERVIEW] = { headerLeft: () => null, headerShown: false, render: () => }; r1[SafetyFlowScreens.ENTER_EMAIL] = { headerLeft: () => null, headerTitle: () => null, render: () => }; r1[SafetyFlowScreens.VERIFY_EMAIL] = { headerLeft: getHeaderBackButton(), headerTitle: () => null, render: () => }; r1[SafetyFlowScreens.UPDATE_APP] = { headerLeft: () => null, headerTitle: () => null, render: () => }; r1[SafetyFlowScreens.AGE_VERIFICATION] = { headerLeft: () => null, headerTitle: () => null, render: () => }; r1[SafetyFlowScreens.PARENTAL_CONSENT_CONNECTION] = { headerShown: false, customNavbar: () => , render: () => }; r1[SafetyFlowScreens.ERROR] = { headerLeft: () => null, headerTitle: () => null, render: () => }; return r1; }, []); const memo = useMemo(() => { if (state?.flow_context == null) { return []; } const tasks = state.flow_context.tasks; return tasks.length === 1 && tasks[0].task_type === TaskType.PARENTAL_CONSENT_CONNECTION ? [] : state.flow_context.tasks.map((task) => getScreensForTaskType(task.task_type)).filter((item) => item != null).flat(); }, [state]); return ({ task: state, setTask: setState }), [state])}> ; };