139 lines
6.7 KiB
TypeScript
139 lines
6.7 KiB
TypeScript
// Metro module 14217 (f14218).
|
|
import { useContext, useEffect, memo, useCallback } from "react";
|
|
import { View } from "react-native";
|
|
import QuestDockStore from "./QuestDockStore";
|
|
import { QuestDockMode, QuestsExperimentLocations } from "../../QuestConstants";
|
|
import * as _QuestDockConstants from "./QuestDockConstants";
|
|
import { QUEST_DOCK_EXPANDED_HEIGHT, QUEST_DOCK_EXPANDED_PADDING_BOTTOM } from "./QuestDockConstants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { QuestDockExternalCoordinationContext } from "./QuestDockExternalCoordinationContext";
|
|
import { QuestDockGestureContext } from "./QuestDockGestureContext";
|
|
import useStateFromSharedValue from "../../../reanimated/native/useStateFromSharedValue";
|
|
import { useHasWatchVideoOnMobileTasks } from "../QuestHooks.native";
|
|
import openVideoQuestModal from "../VideoQuestModal/openVideoQuestModal";
|
|
import { QuestContent } from "../../QuestTypes";
|
|
import QuestBottomSheetHeader from "../QuestBottomSheet/QuestBottomSheetHeader";
|
|
import { QuestBottomSheetStep, QuestBottomSheetContent, useEnrolledQuestContentProps } from "../QuestBottomSheet/QuestBottomSheet";
|
|
import QuestBottomSheetFooter from "../QuestBottomSheet/QuestBottomSheetFooter";
|
|
import useSafeAreaInsets_native from "../../../safe_area/useSafeAreaInsets.native";
|
|
import { hasWatchVideoTasks } from "../../utils/QuestTaskUtils";
|
|
let useStyles, EnrolledBodyPlayStreamTask;
|
|
const EnrolledBodyWatchTask = function EnrolledBodyWatchTask(props) {
|
|
const quest = props.quest;
|
|
const styles = useStyles();
|
|
const context = useContext(QuestDockExternalCoordinationContext);
|
|
const { restingQuestDockMode, setRestingQuestDockMode } = context;
|
|
const questDockWrapperSpecs = useContext(QuestDockGestureContext).questDockWrapperSpecs;
|
|
const stateFromSharedValue = useStateFromSharedValue(restingQuestDockMode);
|
|
let c21044_3 = stateFromSharedValue;
|
|
const hasWatchVideoOnMobileTasks = useHasWatchVideoOnMobileTasks(quest.config);
|
|
useEffect(() => {
|
|
let _maybeOpenVideoQuestModal2 = function _maybeOpenVideoQuestModal() {
|
|
const r9 = async () => {
|
|
let c31720_0;
|
|
L17: {
|
|
c31720_0 = void 0;
|
|
if (questDockWrapperSpecs.get().prevDeltaY < 0 && c21044_3 === QuestDockMode.RESET_TO_PREVIOUS && QuestDockStore.prevRestingQuestDockMode === QuestDockMode.EXPANDED) {
|
|
await openVideoQuestModal({
|
|
questId: quest.id,
|
|
sourceQuestContent: QuestContent.QUEST_BAR_MOBILE
|
|
});
|
|
(0, setRestingQuestDockMode)(QuestDockMode.COLLAPSED);
|
|
break L17;
|
|
}
|
|
return void 0;
|
|
}
|
|
};
|
|
_maybeOpenVideoQuestModal2 = r9;
|
|
return r9.apply(this, arguments);
|
|
};
|
|
if (hasWatchVideoOnMobileTasks) {
|
|
(function maybeOpenVideoQuestModal() {
|
|
return _maybeOpenVideoQuestModal2.apply(this, arguments);
|
|
})();
|
|
}
|
|
}, [stateFromSharedValue, questDockWrapperSpecs, quest.id, setRestingQuestDockMode, hasWatchVideoOnMobileTasks]);
|
|
return <>
|
|
<View style={styles.headerWrapper}>
|
|
<QuestBottomSheetHeader quest={quest} step={QuestBottomSheetStep.TASK_STATUS} withActionSheet location={QuestsExperimentLocations.QUESTS_BAR_MOBILE} />
|
|
</View>
|
|
<View style={styles.contentWrapper}>
|
|
<QuestBottomSheetContent quest={quest} location={QuestsExperimentLocations.QUESTS_BAR_MOBILE} step={QuestBottomSheetStep.TASK_STATUS} sourceQuestContent={QuestContent.QUEST_BAR_MOBILE} />
|
|
</View>
|
|
<View style={styles.footerWrapper}>
|
|
<QuestBottomSheetFooter quest={quest} step={QuestBottomSheetStep.TASK_STATUS} style={styles.footer} withSafeArea={false} sourceQuestContent={QuestContent.QUEST_BAR_MOBILE} />
|
|
</View>
|
|
</>;
|
|
};
|
|
EnrolledBodyPlayStreamTask = function EnrolledBodyPlayStreamTask(props) {
|
|
const quest2 = props.quest;
|
|
const styles = useStyles();
|
|
const enrolledQuestContentProps = useEnrolledQuestContentProps({
|
|
quest: quest2,
|
|
location: QuestsExperimentLocations.QUESTS_BAR_MOBILE,
|
|
sourceQuestContent: QuestContent.QUEST_BAR_MOBILE
|
|
});
|
|
const { step, defibrillator, stepActions } = enrolledQuestContentProps;
|
|
return <>
|
|
<View style={styles.headerWrapper}>
|
|
<QuestBottomSheetHeader quest={quest2} step={step} withActionSheet location={QuestsExperimentLocations.QUESTS_BAR_MOBILE} />
|
|
</View>
|
|
<View style={styles.contentWrapper}>
|
|
<QuestBottomSheetContent defibrillator={defibrillator} quest={quest2} handleTaskSelect={enrolledQuestContentProps.handleTaskSelect} location={QuestsExperimentLocations.QUESTS_BAR_MOBILE} showMicrophone={enrolledQuestContentProps.showMicrophone} step={step} sourceQuestContent={QuestContent.QUEST_BAR_MOBILE} />
|
|
</View>
|
|
<View style={styles.footerWrapper}>
|
|
<QuestBottomSheetFooter quest={quest2} step={step} isDefibrilating={defibrillator.isActive} onBack={stepActions.onBack} onDefib={defibrillator.start} onConnectConsoleNext={stepActions.onNext} style={styles.footer} withSafeArea={false} sourceQuestContent={QuestContent.QUEST_BAR_MOBILE} />
|
|
</View>
|
|
</>;
|
|
};
|
|
const { QUEST_DOCK_EXPANDED_ENROLLED_PADDING_TOP, QUEST_DOCK_EXPANDED_PADDING_HORIZONTAL } = _QuestDockConstants;
|
|
useStyles = createStyles({
|
|
wrapper: {
|
|
flexGrow: 0,
|
|
flexShrink: 0,
|
|
paddingBottom: QUEST_DOCK_EXPANDED_PADDING_BOTTOM,
|
|
paddingTop: QUEST_DOCK_EXPANDED_ENROLLED_PADDING_TOP,
|
|
paddingHorizontal: QUEST_DOCK_EXPANDED_PADDING_HORIZONTAL
|
|
},
|
|
headerWrapper: {
|
|
marginBottom: Module712.space.PX_16
|
|
},
|
|
contentWrapper: {
|
|
display: "flex",
|
|
gap: Module712.space.PX_16,
|
|
flexGrow: 0,
|
|
flexShrink: 0
|
|
},
|
|
footer: {
|
|
marginTop: Module712.space.PX_16
|
|
},
|
|
footerWrapper: {
|
|
marginLeft: -1 * QUEST_DOCK_EXPANDED_PADDING_HORIZONTAL,
|
|
marginRight: -1 * QUEST_DOCK_EXPANDED_PADDING_HORIZONTAL
|
|
}
|
|
});
|
|
const r66 = memo(function QuestDockEnrolledBody(props) {
|
|
const quest2 = props.quest;
|
|
const styles = useStyles();
|
|
const minExpandedContentHeight = useContext(QuestDockGestureContext).minExpandedContentHeight;
|
|
const bottom = useSafeAreaInsets_native().bottom;
|
|
const callback = useCallback((a0) => {
|
|
const height = a0.nativeEvent.layout.height;
|
|
if (minExpandedContentHeight.get() !== height) {
|
|
minExpandedContentHeight.set(height);
|
|
}
|
|
}, [minExpandedContentHeight]);
|
|
useEffect(() => () => {
|
|
if (minExpandedContentHeight.get() !== QUEST_DOCK_EXPANDED_HEIGHT) {
|
|
minExpandedContentHeight.set(QUEST_DOCK_EXPANDED_HEIGHT);
|
|
}
|
|
}, [minExpandedContentHeight]);
|
|
return <View style={[styles.wrapper, {
|
|
paddingBottom: Math.max(bottom, QUEST_DOCK_EXPANDED_PADDING_BOTTOM)
|
|
}]} onLayout={callback}>
|
|
{hasWatchVideoTasks(quest2) ? <EnrolledBodyWatchTask quest={quest2} /> : <EnrolledBodyPlayStreamTask quest={quest2} />}
|
|
</View>;
|
|
});
|
|
export default r66;
|