NTP-17996 | RN Changes for iOS (#14059)

This commit is contained in:
Prajjaval Verma
2024-12-11 11:17:17 +05:30
committed by GitHub
parent 7b1c3958df
commit f3faee53b1
9 changed files with 97 additions and 42 deletions

View File

@@ -1,13 +1,15 @@
import React, { useEffect, useRef, useState } from "react";
import { View, findNodeHandle } from "react-native";
import { Platform, View, findNodeHandle } from "react-native";
import Modal from "react-native-modal";
import { GenericActionPayload } from "../../App/common/actions/GenericAction";
import {
AnalyticsEventNameConstants,
AnalyticsMethodNameConstant,
BOTTOMSHEET_ANIMATION_DURATION,
NAVIGATION_ERROR,
OsTypeConstants,
TimeoutConstants,
} from "../../App/common/constants";
import { BOTTOMSHEET_ANIMATION_DURATION } from "../../App/common/constants/NumericalConstants";
import { sendAsAnalyticsEvent } from "../../App/common/hooks/useAnalyticsEvent";
import { CtaData, CtaType } from "../../App/common/interface";
import { ModalView } from "../../App/common/interface/modals/ModalView";
@@ -49,20 +51,30 @@ const BaseBottomSheetComponent = ({
closeModal();
break;
default:
try {
NativeDeeplinkNavigatorModule.navigateToNaviDeeplinkNavigator(
JSON.stringify(cta),
);
} catch (error) {
sendAsAnalyticsEvent({
name: AnalyticsEventNameConstants.HI_INVALID_SCREEN_CTA,
properties: {
methodName:
AnalyticsMethodNameConstant.HANDLE_CTA_CLICK_BOTTOMSHEET,
reason: error?.toString() || NAVIGATION_ERROR,
},
});
if (Platform.OS === OsTypeConstants.IOS) {
closeModal();
}
setTimeout(
() => {
try {
NativeDeeplinkNavigatorModule.navigateToNaviDeeplinkNavigator(
JSON.stringify(cta),
);
} catch (error) {
sendAsAnalyticsEvent({
name: AnalyticsEventNameConstants.HI_INVALID_SCREEN_CTA,
properties: {
methodName:
AnalyticsMethodNameConstant.HANDLE_CTA_CLICK_BOTTOMSHEET,
reason: error?.toString() || NAVIGATION_ERROR,
},
});
}
},
Platform.OS === OsTypeConstants.IOS
? TimeoutConstants.TIMEOUT_1000
: 0,
);
}
};

View File

@@ -4,6 +4,8 @@ import { StyledLottie } from "../styled-lottie/StyledLottie";
import {
NativeEventEmitter,
NativeModules,
Platform,
ViewStyle,
useWindowDimensions,
} from "react-native";
@@ -24,9 +26,10 @@ import { GenericActionPayload } from "../../../App/common/actions/GenericAction"
import { NativeEventNameConstants } from "../../../App/common/constants/EventNameConstants";
import { CtaData } from "../../../App/common/interface";
import { FabWidgetData } from "../../../App/common/interface/widgets/widgetData/FabWidgetData";
import { FAB_HEIGHT, styles } from "./FABStyle";
import { StyledImage } from "../../StyledImage";
import { getTextWithHtmlSpace } from "../../../App/common/utilities/MiscUtils";
import { StyledImage } from "../../StyledImage";
import { FAB_HEIGHT, styles } from "./FABStyle";
import { OsTypeConstants } from "../../../App/common/constants";
const FAB = ({
widgetData,
@@ -37,7 +40,7 @@ const FAB = ({
widgetData: FabWidgetData;
handleActions: (
value: any | undefined | null,
actionPayloadList: GenericActionPayload | undefined
actionPayloadList: GenericActionPayload | undefined,
) => void;
handleClick?: (cta: CtaData) => void;
scrollStyle?: ViewStyle;
@@ -45,18 +48,21 @@ const FAB = ({
const [enabled, setEnabled] = useState(true);
const { height } = useWindowDimensions();
useEffect(() => {
const nativeEventListener = new NativeEventEmitter();
const nativeEventListener =
Platform.OS === OsTypeConstants.ANDROID
? new NativeEventEmitter()
: new NativeEventEmitter(NativeModules.DeviceEventEmitterModule);
let reloadPageEventListener = nativeEventListener.addListener(
NativeEventNameConstants.reloadPage,
(event) => {
event => {
if (event === true) {
setEnabled(false);
}
}
},
);
return () => {
nativeEventListener.removeAllListeners(
NativeEventNameConstants.reloadPage
NativeEventNameConstants.reloadPage,
);
setEnabled(true);
};
@@ -86,7 +92,7 @@ const FAB = ({
const maxY = 0;
fabPositionY.value = clamp(newY, minY, maxY);
},
onEnd: (_) => {},
onEnd: _ => {},
});
const animatedRootStyles = useAnimatedStyle(() => {
@@ -96,7 +102,7 @@ const FAB = ({
});
const isDraggable = widgetData?.properties?.isDraggable ?? true;
const buttonText = getTextWithHtmlSpace(widgetData?.buttonTitle?.text)
const buttonText = getTextWithHtmlSpace(widgetData?.buttonTitle?.text);
const fabContent = (
<Animated.View style={[styles.rootStyles, animatedRootStyles]}>