104 lines
4.8 KiB
TypeScript
104 lines
4.8 KiB
TypeScript
// Metro module 14036 (f14037).
|
|
import { useMemo, useCallback } from "react";
|
|
import { StyleSheet } from "react-native";
|
|
import AccessibilityStore from "../../../a11y/AccessibilityStore";
|
|
import { QuestsExperimentLocations } from "../../QuestConstants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import * as _timing from "../../../../design/animation/reanimated/timing/timing";
|
|
import * as _timingPresets from "../../../../design/animation/reanimated/timing/timingPresets";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import useSafeAreaInsets_native from "../../../safe_area/useSafeAreaInsets.native";
|
|
import ReanimatedRexport from "../../../reanimated/ReanimatedRexport";
|
|
import { BountiesScrollGradientRive } from "../../../../_bundle/Module3901";
|
|
import { useIsBountiesModalTransitionsRefactorEnabled } from "../../experiments/BountiesModalTransitionsRefactorExperiment";
|
|
import { useVisibilityTransition } from "./useVisibilityTransition";
|
|
import AnimatedEnterExitItem from "../../../../design/components/AnimatedEnterExitItem/native/AnimatedEnterExitItem";
|
|
let useStyles, t, n;
|
|
const BountiesScrollPromptFooterContent = function BountiesScrollPromptFooterContent(props) {
|
|
let c20864_1;
|
|
const { children, onContentLayout, zIndex, opacityStyle, visibilityOpacityStyle } = props;
|
|
c20864_1 = void 0;
|
|
const styles = useStyles();
|
|
const memo = useMemo(() => zIndex != null ? {
|
|
zIndex
|
|
} : void 0, [zIndex]);
|
|
const stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
|
|
const safeAreaInsets_native = useSafeAreaInsets_native();
|
|
c20864_1 = safeAreaInsets_native;
|
|
return <ReanimatedRexport.View style={[styles.root, visibilityOpacityStyle, memo]} pointerEvents="none">
|
|
<ReanimatedRexport.View style={[styles.gradient, opacityStyle]}>
|
|
<BountiesScrollGradientRive stateMachine="State Machine 1" fit="fill" alignment="bottom-center" withReducedMotion={stateFromStores ? "halt" : "play"} />
|
|
</ReanimatedRexport.View>
|
|
<ReanimatedRexport.View style={[styles.content, useMemo(() => ({
|
|
paddingBottom: Math.max(c20864_1.bottom, Module712.space.PX_8)
|
|
}), [safeAreaInsets_native.bottom]), opacityStyle]} onLayout={onContentLayout}>{children}</ReanimatedRexport.View>
|
|
</ReanimatedRexport.View>;
|
|
};
|
|
useStyles = createStyles(() => ({
|
|
root: {
|
|
position: "absolute",
|
|
bottom: 0,
|
|
left: 0,
|
|
right: 0
|
|
},
|
|
content: {
|
|
flex: 1,
|
|
minHeight: 97,
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
paddingHorizontal: Module712.space.PX_16
|
|
},
|
|
gradient: {
|
|
...StyleSheet.absoluteFillObject
|
|
}
|
|
}));
|
|
const r34 = function t(a0) {
|
|
return {
|
|
opacity: _timing.withTiming(a0, _timingPresets.timingStandard, "respect-motion-settings")
|
|
};
|
|
};
|
|
r34.__closure = {
|
|
withTiming: _timing.withTiming,
|
|
timingStandard: _timingPresets.timingStandard
|
|
};
|
|
r34.__workletHash = 11416950434629;
|
|
r34.__initData = {
|
|
code: "function BountiesScrollPromptFooterTsx1(visible){const{withTiming,timingStandard}=this.__closure;return{opacity:withTiming(visible,timingStandard,'respect-motion-settings')};}"
|
|
};
|
|
t = r34;
|
|
const r43 = function n(a0, a1) {
|
|
return {
|
|
opacity: _timing.withTiming(a0, _timingPresets.timingStandard, "respect-motion-settings", a1)
|
|
};
|
|
};
|
|
r43.__closure = {
|
|
withTiming: _timing.withTiming,
|
|
timingStandard: _timingPresets.timingStandard
|
|
};
|
|
r43.__workletHash = 9928471408966;
|
|
r43.__initData = {
|
|
code: "function BountiesScrollPromptFooterTsx2(visible,cleanUp){const{withTiming,timingStandard}=this.__closure;return{opacity:withTiming(visible,timingStandard,'respect-motion-settings',cleanUp)};}"
|
|
};
|
|
n = r43;
|
|
export default function BountiesScrollPromptFooter(props) {
|
|
const { visible, ...props2 } = props;
|
|
const isBountiesModalTransitionsRefactorEnabled = useIsBountiesModalTransitionsRefactorEnabled(QuestsExperimentLocations.VIDEO_MODAL_MOBILE);
|
|
const stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion);
|
|
const callback = useCallback((a0, a1) => <BountiesScrollPromptFooterContent {...a0} visibilityOpacityStyle={a1} />, []);
|
|
const visibilityTransition = useVisibilityTransition({
|
|
visible,
|
|
entranceTiming: _timingPresets.timingStandard,
|
|
exitTiming: _timingPresets.timingStandard
|
|
});
|
|
const opacityStyle = visibilityTransition.opacityStyle;
|
|
let shouldRender = visibilityTransition.shouldRender;
|
|
if (isBountiesModalTransitionsRefactorEnabled) {
|
|
shouldRender = <AnimatedEnterExitItem useReducedMotion={stateFromStores} item={visible ? props2 : void 0} entering={t} exiting={n} renderItem={callback} />;
|
|
} else if (shouldRender) {
|
|
shouldRender = <BountiesScrollPromptFooterContent {...props2} visibilityOpacityStyle={opacityStyle} />;
|
|
}
|
|
return shouldRender;
|
|
};
|
|
export const BOUNTIES_MODAL_BASE_FOOTER_HEIGHT = 97;
|