manage-app-sdk 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +2 -0
  2. package/dist/Constants/Home.js +85 -0
  3. package/dist/assets/AppConstant.js +293 -0
  4. package/dist/assets/androidResources/Connectivity.java +52 -0
  5. package/dist/assets/androidResources/ConnectivityPackage.java +25 -0
  6. package/dist/assets/fonts/VoltePlay-Bold.ttf +0 -0
  7. package/dist/assets/fonts/VoltePlay-Light.ttf +0 -0
  8. package/dist/assets/fonts/VoltePlay-Medium.ttf +0 -0
  9. package/dist/assets/fonts/VoltePlay-Regular.ttf +0 -0
  10. package/dist/assets/fonts/VoltePlay-SemiBold.ttf +0 -0
  11. package/dist/assets/gif/loader.gif +0 -0
  12. package/dist/assets/images/PartnerLogosSmall.png +0 -0
  13. package/dist/assets/images/Union.png +0 -0
  14. package/dist/assets/images/appIcon.png +0 -0
  15. package/dist/assets/images/desktop-alert.png +0 -0
  16. package/dist/assets/images/desktop-cross.png +0 -0
  17. package/dist/assets/images/mobile-bg.png +0 -0
  18. package/dist/assets/images/stepper-one-small.png +0 -0
  19. package/dist/assets/images/stepper-one.png +0 -0
  20. package/dist/assets/images/stepper-two-small.png +0 -0
  21. package/dist/assets/images/stepper-two.png +0 -0
  22. package/dist/assets/images/tablet-bg.png +0 -0
  23. package/dist/assets/png/Tataplay-Binge.png +0 -0
  24. package/dist/assets/png/arrowBack.png +0 -0
  25. package/dist/assets/png/backArrowPng.png +0 -0
  26. package/dist/assets/svg/BingeLogoSvg.js +44 -0
  27. package/dist/assets/svg/CrossSvg.js +32 -0
  28. package/dist/assets/svg/OfferSvg.js +31 -0
  29. package/dist/assets/svg/PlansSvg.js +75 -0
  30. package/dist/assets/svg/TickSvg.js +28 -0
  31. package/dist/assets/svg/arrowBack.js +27 -0
  32. package/dist/assets/svg/arrowSvg.js +31 -0
  33. package/dist/components/AppIcon/AppIcon.js +70 -0
  34. package/dist/components/AppleBanner/AppleMusicBanner.js +36 -0
  35. package/dist/components/AppleBanner/AppleMusicBannerStyles.js +32 -0
  36. package/dist/components/AppleBanner/AppleMusicBlackBanner.js +66 -0
  37. package/dist/components/AppsContainer/AppsContainer.js +112 -0
  38. package/dist/components/BottomSheet/BottomSheet.js +173 -0
  39. package/dist/components/BottomSheet/BottomSheetStyles.js +48 -0
  40. package/dist/components/Buttons/PrimaryButton/PrimaryButton.js +50 -0
  41. package/dist/components/Buttons/RadioButton/RadioButton.js +24 -0
  42. package/dist/components/Buttons/TextButton/TextButton.js +44 -0
  43. package/dist/components/CheckButton/CheckButton.js +36 -0
  44. package/dist/components/CommonModal/CommonModel.js +79 -0
  45. package/dist/components/CommonModal/ModalTypes.js +10 -0
  46. package/dist/components/Confetti/ConfettiBurst.js +120 -0
  47. package/dist/components/Confetti/FallingConfetti.js +190 -0
  48. package/dist/components/Confetti/MultiConfettiBurst.js +73 -0
  49. package/dist/components/Coupon/CouponCard.js +47 -0
  50. package/dist/components/Coupon/CouponStyles.js +54 -0
  51. package/dist/components/Footer/Footer.js +177 -0
  52. package/dist/components/Footer/MServiceFooter/MServiceFooter.js +103 -0
  53. package/dist/components/Footer/OnButtonFooter/OneButtonFooter.js +65 -0
  54. package/dist/components/Footer/PlanSummaryFooter/SummaryFooter.js +180 -0
  55. package/dist/components/Footer/PrimeAoFooter/PrimeAoFooter.js +193 -0
  56. package/dist/components/Footer/UpgradeFooter/UpgradeFooter.js +89 -0
  57. package/dist/components/Footer/UpgradeFooter/styles.js +73 -0
  58. package/dist/components/GradientBorderContainer/GradientBorderContainer.js +79 -0
  59. package/dist/components/GradientText/GradientText.js +60 -0
  60. package/dist/components/Header/ManageAppHeader.js +71 -0
  61. package/dist/components/HighlightedText/HighlightedText.js +53 -0
  62. package/dist/components/Input/OtpInput.js +105 -0
  63. package/dist/components/Loader/Loader.js +39 -0
  64. package/dist/components/MServicePaymentMethod/MServicePaymentMethod.js +395 -0
  65. package/dist/components/MicroDrama/MicroDramaBanner.js +67 -0
  66. package/dist/components/MicroDrama/MicroDramaCard.js +33 -0
  67. package/dist/components/MicroDrama/styles.js +29 -0
  68. package/dist/components/OfferCard/OfferCard.js +100 -0
  69. package/dist/components/PaymentMethod/PaymentMethod.js +370 -0
  70. package/dist/components/Plan/CurrentPlanCard.js +138 -0
  71. package/dist/components/Plan/PlanCard.js +268 -0
  72. package/dist/components/Plan/PlanCardStyles.js +371 -0
  73. package/dist/components/Plan/RenderAppIcons.js +115 -0
  74. package/dist/components/Plan/SpecialPlanCard.js +272 -0
  75. package/dist/components/PopUps/CancelPopUp/CancelPopUp.js +190 -0
  76. package/dist/components/PopUps/ConfettiAnimation.js +172 -0
  77. package/dist/components/PopUps/ConfettiBurst.js +142 -0
  78. package/dist/components/PopUps/CouponPopUp/CouponPopUp.js +185 -0
  79. package/dist/components/PopUps/ErrorMsgPopup/ErrorMsgPopup.js +104 -0
  80. package/dist/components/PopUps/InternetErrorPopUp/InternetErrorPopUp.js +122 -0
  81. package/dist/components/PopUps/MServicePopUp/MServicePopUp.js +155 -0
  82. package/dist/components/PopUps/MpinPopUp/MpinPopUp.js +193 -0
  83. package/dist/components/PopUps/OtpPopup/OtpPopup.js +345 -0
  84. package/dist/components/PopUps/PlanCancelledPopUp/PlanCancelledPopUp.js +183 -0
  85. package/dist/components/PopUps/PlanDetailPopup/PlanDetailPopup.js +121 -0
  86. package/dist/components/PopUps/PopUp/PopUp.js +171 -0
  87. package/dist/components/PrimeAddOn/PrimeAddOn.js +72 -0
  88. package/dist/components/PrimeAddOn/PrimeAddOnStyles.js +79 -0
  89. package/dist/components/PrimeAddOn/SummaryPage/PrimeAddOnBanner.js +109 -0
  90. package/dist/components/PrimeBanner/PrimeBanner.js +27 -0
  91. package/dist/components/PrimeBanner/PrimeBannerStyles.js +36 -0
  92. package/dist/components/SectionItem/SectionItem.js +42 -0
  93. package/dist/components/Toast/Toast.js +71 -0
  94. package/dist/components/Toast/ToastStyle.js +62 -0
  95. package/dist/navigation/Routes.js +84 -0
  96. package/dist/navigation/RoutesConstants.js +18 -0
  97. package/dist/screens/AppDiscontinue/ChooseApp.js +325 -0
  98. package/dist/screens/AppDiscontinue/styles.js +89 -0
  99. package/dist/screens/AppsReplacement/AppsReplacement.js +359 -0
  100. package/dist/screens/AppsReplacement/styles.js +92 -0
  101. package/dist/screens/ChooseYourPlan/ChooseYourPlan.js +596 -0
  102. package/dist/screens/ChooseYourPlan/ChooseYourPlanStyles.js +28 -0
  103. package/dist/screens/ChooseYourPlan/OffersCarousel.js +146 -0
  104. package/dist/screens/CreateSession/CreateSession.js +620 -0
  105. package/dist/screens/MyPlan/MyPlan.js +429 -0
  106. package/dist/screens/MyPlan/MyPlanStyles.js +227 -0
  107. package/dist/screens/PaymentStatus/PaymentStatus.js +492 -0
  108. package/dist/screens/PaymentStatus/styles.js +68 -0
  109. package/dist/screens/PlanCancellation/CancelPlan.js +127 -0
  110. package/dist/screens/PlanCancellation/InfiniteAutoScroll.js +67 -0
  111. package/dist/screens/PlanCancellation/styles.js +83 -0
  112. package/dist/screens/PlanSummary/PlanSummary.js +748 -0
  113. package/dist/screens/PlanSummary/PlanSummaryStyles.js +385 -0
  114. package/dist/screens/PrimePlanSummary/PrimePlanSummary.js +252 -0
  115. package/dist/screens/PrimePlanSummary/PrimePlanSummaryStyles.js +102 -0
  116. package/dist/screens/SelectApps/SelectApps.js +513 -0
  117. package/dist/screens/SelectApps/SelectAppsStyles.js +165 -0
  118. package/dist/screens/SplashScreen/SplashScreen.js +82 -0
  119. package/dist/services/apiCall/action.js +718 -0
  120. package/dist/services/apiCall/apiServiceUtils.js +136 -0
  121. package/dist/services/apiCall/constants.js +42 -0
  122. package/dist/services/apiCall/parser.js +92 -0
  123. package/dist/services/apiCall/reducer.js +591 -0
  124. package/dist/services/global/action.js +111 -0
  125. package/dist/services/global/commonReducer.js +97 -0
  126. package/dist/services/global/constants.js +22 -0
  127. package/dist/services/serviceCommonHandler.js +220 -0
  128. package/dist/store/configureStore.js +13 -0
  129. package/dist/store/rootReducer.js +14 -0
  130. package/dist/utils/commonUtils.js +381 -0
  131. package/dist/utils/fontUtils.js +13 -0
  132. package/dist/utils/string.js +101 -0
  133. package/package.json +53 -0
@@ -0,0 +1,596 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ChooseYourPlan;
8
+ var _native = require("@react-navigation/native");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactNative = require("react-native");
11
+ var _reactRedux = require("react-redux");
12
+ var _AppConstant = require("../../assets/AppConstant");
13
+ var _action = require("../../services/apiCall/action");
14
+ var _string = require("../../utils/string");
15
+ var _constants = require("../../services/apiCall/constants");
16
+ var _serviceCommonHandler = require("../../services/serviceCommonHandler");
17
+ var _CouponCard = _interopRequireDefault(require("../../components/Coupon/CouponCard"));
18
+ var _PlanCard = _interopRequireDefault(require("../../components/Plan/PlanCard"));
19
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
20
+ var _ManageAppHeader = _interopRequireDefault(require("../../components/Header/ManageAppHeader"));
21
+ var _commonUtils = require("../../utils/commonUtils");
22
+ var _lodash = require("lodash");
23
+ var _Toast = _interopRequireDefault(require("../../components/Toast/Toast"));
24
+ var _Loader = _interopRequireDefault(require("../../components/Loader/Loader"));
25
+ var _PopUp = _interopRequireDefault(require("../../components/PopUps/PopUp/PopUp"));
26
+ var _action2 = require("../../services/global/action");
27
+ var _InternetErrorPopUp = _interopRequireDefault(require("../../components/PopUps/InternetErrorPopUp/InternetErrorPopUp"));
28
+ var _AppleMusicBanner = _interopRequireDefault(require("../../components/AppleBanner/AppleMusicBanner"));
29
+ var _PrimeBanner = _interopRequireDefault(require("../../components/PrimeBanner/PrimeBanner"));
30
+ var _CurrentPlanCard = _interopRequireDefault(require("../../components/Plan/CurrentPlanCard"));
31
+ var _SectionItem = _interopRequireDefault(require("../../components/SectionItem/SectionItem"));
32
+ var _PlansSvg = _interopRequireDefault(require("../../assets/svg/PlansSvg"));
33
+ var _OffersCarousel = _interopRequireDefault(require("./OffersCarousel"));
34
+ var _SpecialPlanCard = _interopRequireDefault(require("../../components/Plan/SpecialPlanCard"));
35
+ var _RoutesConstants = require("../../navigation/RoutesConstants");
36
+ var _Home = require("../../Constants/Home");
37
+ var _ChooseYourPlanStyles = _interopRequireDefault(require("./ChooseYourPlanStyles"));
38
+ var _MicroDramaCard = _interopRequireDefault(require("../../components/MicroDrama/MicroDramaCard"));
39
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
40
+ function ChooseYourPlan({
41
+ route
42
+ }) {
43
+ var _chooseYourPlanDrupal;
44
+ let pageType = "CYOP";
45
+ let nextUserScreen = "";
46
+ let paymtUserAction = ""; // this is coming from CartCreateSession and from a "userAction" cookie in web
47
+
48
+ const dispatch = (0, _reactRedux.useDispatch)();
49
+ const uniqueKey = (0, _react.useRef)();
50
+ const navigation = (0, _native.useNavigation)();
51
+ const isFocused = (0, _native.useIsFocused)();
52
+ const {
53
+ onReady,
54
+ onClose
55
+ } = route === null || route === void 0 ? void 0 : route.params;
56
+ const [couponDetails, setCouponDetails] = (0, _react.useState)({});
57
+ const [chooseYourPlanDrupalInfo, setchooseYourPlanDrupal] = (0, _react.useState)(null);
58
+ const memoizedDrupal = (0, _react.useMemo)(() => chooseYourPlanDrupalInfo, [chooseYourPlanDrupalInfo]);
59
+ const createSessionResponse = (0, _reactRedux.useSelector)(state => state.manageAppReducer.createSessionResponse);
60
+ const getPacksResponse = (0, _reactRedux.useSelector)(state => state.manageAppReducer.getPacksResponse);
61
+ const pageRedirectionResponse = (0, _reactRedux.useSelector)(state => state.manageAppReducer.pageRedirectionResponse);
62
+ const {
63
+ selectedPack,
64
+ plans = [],
65
+ productList,
66
+ userAppsList,
67
+ couponAlert,
68
+ userExistingPacks
69
+ } = (0, _reactRedux.useSelector)(state => state.manageAppReducer);
70
+ const {
71
+ showToastMsg,
72
+ isLoading,
73
+ errorCode,
74
+ evdErrorCode,
75
+ unauthorizedPopUpKey
76
+ } = (0, _reactRedux.useSelector)(state => state.commonReducer);
77
+ const {
78
+ journey,
79
+ bingeAnywhere,
80
+ source,
81
+ journeySourceRefName,
82
+ journeySourceRefld,
83
+ subscriberId,
84
+ accountId,
85
+ existingPacks: {
86
+ primeEligible,
87
+ productId,
88
+ expiredPlan,
89
+ appsList = {}
90
+ } = {},
91
+ selectedPacks: userSelectedPacks
92
+ } = createSessionResponse ?? {};
93
+ const {
94
+ campaignSources = [],
95
+ appNamesList = {}
96
+ } = (0, _react.useMemo)(() => {
97
+ return _AppConstant.AppConstant.getManifestJson() ?? {};
98
+ }, [_AppConstant.AppConstant.getManifestJson()]);
99
+ const getContentHeading = () => {
100
+ if (journeySourceRefName != null && journeySourceRefName !== "Prime" || journeySourceRefName === "Prime" && primeEligible) {
101
+ const text = (0, _string.replacePlaceholderInString)(chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.contentHeading, "contentName", journeySourceRefName);
102
+ return (0, _commonUtils.renameAppNames)(text, appNamesList);
103
+ } else {
104
+ return "Select A Plan";
105
+ }
106
+ };
107
+ const getPageHeading = (0, _react.useCallback)(() => {
108
+ let pageHeading = "";
109
+ switch (journey) {
110
+ case "MYOP":
111
+ case "CYOP":
112
+ case "COUPONS":
113
+ {
114
+ pageHeading = "Select A Plan";
115
+ }
116
+ break;
117
+ case "CHANGE":
118
+ pageHeading = chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.upgradeHeading;
119
+ break;
120
+ case "CONTENT":
121
+ {
122
+ pageHeading = getContentHeading();
123
+ }
124
+ break;
125
+ case "PACKCONTENT":
126
+ {
127
+ pageHeading = chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.packContentText;
128
+ }
129
+ break;
130
+ default:
131
+ if (["TP", "TPMA", "MSALES", "BINGEMICROSITE", "PULSEFTV", "MSERVICE", "MSERVICEFTV", "PULSEBINGE_OB", "PULSEBINGE_IB"].includes(source)) {
132
+ if (["MYOP", "CYOP"].includes(pageType)) {
133
+ pageHeading = "Select A Plan";
134
+ }
135
+ } else {
136
+ pageHeading = "Select A Plan";
137
+ }
138
+ }
139
+ return pageHeading;
140
+ }, [journey, source, chooseYourPlanDrupalInfo]);
141
+ const initializeFlow = async () => {
142
+ try {
143
+ dispatch((0, _action2.showLoader)());
144
+
145
+ // FETCH DRUPAL
146
+ const url = _AppConstant.AppConstant.getApiUrlFromManifest("choose_your_plan");
147
+ const response = await (0, _commonUtils.fetchWithHeaders)(url, _serviceCommonHandler.serviceConsts.method.get);
148
+ if (response && response.status == "SUCCESS") {
149
+ var _response$data;
150
+ const drupalData = response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.field_json_data;
151
+ setchooseYourPlanDrupal(drupalData);
152
+
153
+ // PROCEED WITH OTHER FLOWS
154
+ uniqueKey.current = Math.random();
155
+ if (!["BINGEPLUSBOX", "SAMSUNGSMARTV", "LGSMARTTV", "SMARTTV", "FTV", "BINGE_QR"].includes(source) || !campaignSources.includes(journey)) {
156
+ dispatch((0, _action.getPacksApi)({
157
+ source: source,
158
+ type: pageType,
159
+ journey,
160
+ uniqueKey: uniqueKey.current,
161
+ userSelectedPacks: userSelectedPacks
162
+ }));
163
+ }
164
+ } else {
165
+ dispatch((0, _action2.setApiError)("Something went wrong", true));
166
+ }
167
+ } catch (error) {
168
+ dispatch((0, _action2.hideLoader)());
169
+ (0, _commonUtils.handleError)(error, dispatch);
170
+ } finally {
171
+ onReady === null || onReady === void 0 || onReady();
172
+ }
173
+ };
174
+ (0, _react.useEffect)(() => {
175
+ if (!isFocused) return; // only show modal when this screen is focused
176
+
177
+ if (errorCode) {
178
+ dispatch((0, _action2.hideLoader)());
179
+ if (evdErrorCode && evdErrorCode === 11111) {
180
+ dispatch((0, _action2.showModal)({
181
+ onRetry: () => console.log("INTERNET ERROR"),
182
+ type: "cyop",
183
+ Component: _InternetErrorPopUp.default
184
+ }));
185
+ } else {
186
+ var _AppConstant$getManif;
187
+ dispatch((0, _action2.showModal)({
188
+ modalData: (_AppConstant$getManif = _AppConstant.AppConstant.getManifestJson()) === null || _AppConstant$getManif === void 0 ? void 0 : _AppConstant$getManif.errorData,
189
+ type: "cyop",
190
+ Component: _PopUp.default
191
+ }));
192
+ }
193
+ }
194
+ if (unauthorizedPopUpKey) {
195
+ // TODO : SHOW POPUP OR REDIRECT
196
+ }
197
+ }, [errorCode, evdErrorCode, unauthorizedPopUpKey, isFocused]);
198
+ (0, _react.useEffect)(() => {
199
+ initializeFlow();
200
+ }, []);
201
+ (0, _react.useEffect)(() => {
202
+ var _getPacksResponse$pay;
203
+ if (getPacksResponse != null && getPacksResponse.payload != null && uniqueKey.current != null && uniqueKey.current == (getPacksResponse === null || getPacksResponse === void 0 || (_getPacksResponse$pay = getPacksResponse.payload) === null || _getPacksResponse$pay === void 0 ? void 0 : _getPacksResponse$pay.uniqueKey)) {
204
+ const resp = (0, _string.jsonCopy)(getPacksResponse);
205
+ dispatch({
206
+ type: _constants.CLEAR_CREATE_SESSION_API_TYPE
207
+ });
208
+ _AppConstant.AppConstant.showConsoleLog("getPacksResponse:", resp);
209
+ if (resp.error == null) {
210
+ var _resp$data;
211
+ if ((resp === null || resp === void 0 || (_resp$data = resp.data) === null || _resp$data === void 0 ? void 0 : _resp$data.couponDetails) != null) {
212
+ var _resp$data2;
213
+ setCouponDetails(resp === null || resp === void 0 || (_resp$data2 = resp.data) === null || _resp$data2 === void 0 ? void 0 : _resp$data2.couponDetails);
214
+ }
215
+ } else {
216
+ var _AppConstant$getManif2;
217
+ dispatch((0, _action2.showModal)({
218
+ modalData: ((_AppConstant$getManif2 = _AppConstant.AppConstant.getManifestJson()) === null || _AppConstant$getManif2 === void 0 ? void 0 : _AppConstant$getManif2.errorData) ?? {},
219
+ type: "cyop",
220
+ Component: _PopUp.default
221
+ }));
222
+ }
223
+ }
224
+ }, [getPacksResponse]);
225
+ (0, _react.useEffect)(() => {
226
+ var _pageRedirectionRespo;
227
+ if (pageRedirectionResponse != null && pageRedirectionResponse.payload != null && uniqueKey.current != null && uniqueKey.current == (pageRedirectionResponse === null || pageRedirectionResponse === void 0 || (_pageRedirectionRespo = pageRedirectionResponse.payload) === null || _pageRedirectionRespo === void 0 ? void 0 : _pageRedirectionRespo.uniqueKey)) {
228
+ const resp = (0, _string.jsonCopy)(pageRedirectionResponse);
229
+ _AppConstant.AppConstant.showConsoleLog("pageRedirectionResponse:", resp);
230
+ if (resp.error == null) {
231
+ var _resp$data3;
232
+ if ((resp === null || resp === void 0 || (_resp$data3 = resp.data) === null || _resp$data3 === void 0 || (_resp$data3 = _resp$data3.data) === null || _resp$data3 === void 0 ? void 0 : _resp$data3.ottBingeUrl) != null) {
233
+ // TODO REDIRECT TO EXISTING USER
234
+ } else {
235
+ var _resp$payload;
236
+ navigation.navigate(_RoutesConstants.RoutesConstants.PlanSummary, {
237
+ cartId: resp === null || resp === void 0 || (_resp$payload = resp.payload) === null || _resp$payload === void 0 || (_resp$payload = _resp$payload.body) === null || _resp$payload === void 0 ? void 0 : _resp$payload.uuid
238
+ });
239
+ }
240
+ }
241
+ }
242
+ }, [pageRedirectionResponse]);
243
+ (0, _native.useFocusEffect)((0, _react.useCallback)(() => {
244
+ const onBackPress = () => {
245
+ handleBackPress();
246
+ return true;
247
+ };
248
+ const subscritption = _reactNative.BackHandler.addEventListener("hardwareBackPress", onBackPress);
249
+ return () => {
250
+ subscritption && subscritption.remove();
251
+ };
252
+ }, [handleBackPress, navigation]));
253
+ const handleBackPress = () => {
254
+ if (navigation.canGoBack()) {
255
+ navigation.goBack();
256
+ } else {
257
+ dispatch({
258
+ type: _constants.CLEAR_STORE
259
+ });
260
+ onClose === null || onClose === void 0 || onClose();
261
+ }
262
+ };
263
+
264
+ // memoized selectTenure so the function instance is stable across renders
265
+ const selectTenure = (0, _react.useCallback)(selectedTenure => {
266
+ const product = productList && productList.find(item => (item === null || item === void 0 ? void 0 : item.packId) == (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.packId));
267
+ const selectedParsedPlan = plans === null || plans === void 0 ? void 0 : plans.find(it => (it === null || it === void 0 ? void 0 : it.packId) === (product === null || product === void 0 ? void 0 : product.packId));
268
+ dispatch((0, _action.couponApplied)({
269
+ couponApply: false,
270
+ showCouponPopup: false
271
+ }));
272
+ let couponTenure = null;
273
+ if (couponDetails && (couponDetails === null || couponDetails === void 0 ? void 0 : couponDetails.couponId) === (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.couponOfferId)) {
274
+ couponTenure = couponDetails === null || couponDetails === void 0 ? void 0 : couponDetails.tenure;
275
+ }
276
+ const packObj = {
277
+ selectedPackID: product === null || product === void 0 ? void 0 : product.packId,
278
+ selectedPackName: product === null || product === void 0 ? void 0 : product.packName,
279
+ selectedPackType: product === null || product === void 0 ? void 0 : product.productClass,
280
+ selectedProductType: product === null || product === void 0 ? void 0 : product.productType,
281
+ selectedPackShortTenure: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.shortTenure,
282
+ selectedPackTenure: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.tenure,
283
+ selectedPackPrice: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.totalAmount,
284
+ selectedCouponCode: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.couponOfferId,
285
+ selectedPercentDisc: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.percentageDiscount,
286
+ selectedDiscountedPrice: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.discountedPackPrice,
287
+ selectedDiscVal: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.discountedAmount,
288
+ selectedOfferName: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.couponOfferName,
289
+ couponTenure: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.tenure,
290
+ isFreeTrialPack: (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.discountType) === "FREETRIAL",
291
+ totalValidity: product === null || product === void 0 ? void 0 : product.totalValidity,
292
+ selectedAmtVal: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.amountDiscount,
293
+ isAddOnEligible: !(0, _lodash.isEmpty)(product === null || product === void 0 ? void 0 : product.eligibleAddOnPlans) && !(selectedParsedPlan !== null && selectedParsedPlan !== void 0 && selectedParsedPlan.isCurrentPlan) ? true : false,
294
+ addOnList: !(0, _lodash.isEmpty)(product === null || product === void 0 ? void 0 : product.eligibleAddOnPlans) ? product === null || product === void 0 ? void 0 : product.eligibleAddOnPlans[0] : ""
295
+ };
296
+ dispatch((0, _action.setSelectedPack)({
297
+ pack: packObj
298
+ }));
299
+ }, [dispatch, couponDetails, productList]);
300
+ const redirectCurrentPlan = (plan, selectedTenure) => {
301
+ if ((plan === null || plan === void 0 ? void 0 : plan.productType) == "Flexi" && !(plan !== null && plan !== void 0 && plan.isFreeTrialPack)) {
302
+ navigateTopage(plan, selectedTenure);
303
+ } else {
304
+ try {
305
+ const apiPath = _AppConstant.AppConstant.getApiUrlFromManifest("savePacks");
306
+ const savePacksApi = (0, _commonUtils.replaceStringWithParams)(apiPath, {
307
+ "<source>": `${source}`
308
+ });
309
+ const apiPath1 = _AppConstant.AppConstant.getApiUrlFromManifest("pageRedirection");
310
+ const redirectionApi = (0, _commonUtils.replaceStringWithParams)(apiPath1, {
311
+ "<source>": `${source}`
312
+ });
313
+ const obj = {
314
+ selectedPack: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.packId,
315
+ selectedPackName: plan === null || plan === void 0 ? void 0 : plan.packName,
316
+ selectedTenure: (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.tenure) || "",
317
+ pageData: chooseYourPlanDrupalInfo,
318
+ pageConstants: _Home.pageConstants,
319
+ navigation,
320
+ savePacksApi,
321
+ redirectionApi,
322
+ source,
323
+ productType: plan === null || plan === void 0 ? void 0 : plan.productType,
324
+ bingeAnywhere,
325
+ productClass: plan === null || plan === void 0 ? void 0 : plan.productClass,
326
+ journey,
327
+ item: plan,
328
+ isFreeTrialPack: plan === null || plan === void 0 ? void 0 : plan.isFreeTrialPack
329
+ };
330
+ (0, _commonUtils.fetchTenureData)(obj);
331
+ } catch (error) {
332
+ (0, _commonUtils.handleError)(error, dispatch);
333
+ }
334
+ }
335
+ };
336
+ const myopToCyop = () => {
337
+ let temp = {
338
+ ...createSessionResponse
339
+ };
340
+ temp.pageType = "CYOP";
341
+ dispatch((0, _action.updateCreateSessionResponse)(temp));
342
+ };
343
+ const handleNavigation = (0, _react.useCallback)((plan, selectedTenure) => {
344
+ var _plan$tenureList;
345
+ myopToCyop();
346
+ const isTenurePresent = plan === null || plan === void 0 || (_plan$tenureList = plan.tenureList) === null || _plan$tenureList === void 0 ? void 0 : _plan$tenureList.find(it => it.packId == (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.packId));
347
+ const isFlexi = (plan === null || plan === void 0 ? void 0 : plan.productType) == "Flexi";
348
+ const isFixed = (plan === null || plan === void 0 ? void 0 : plan.productType) == "Fixed";
349
+ const isRegionalApp = plan === null || plan === void 0 ? void 0 : plan.isRegionalApp;
350
+ const isCurrentPlanOrRegional = (plan === null || plan === void 0 ? void 0 : plan.isCurrentPlan) || ["REGIONAL TELUGU", "REGIONAL TAMIL"].includes(plan.productClass) || (plan === null || plan === void 0 ? void 0 : plan.isFreeTrialPack) || (plan === null || plan === void 0 ? void 0 : plan.tenureType) === "2 Months";
351
+
352
+ // CASE 1: current plan or regional plan
353
+ if (isCurrentPlanOrRegional) {
354
+ selectTenure(selectedTenure);
355
+ redirectCurrentPlan(plan, selectedTenure);
356
+ return;
357
+ }
358
+
359
+ // Case 2: Flexi with accountId
360
+ if (!plan.isCurrentPlan && isFlexi && isTenurePresent && !(0, _lodash.isEmpty)(accountId)) {
361
+ navigateTopage(plan, selectedTenure);
362
+ // navigation.navigate('SelectApps'); // make a function and call getuseraction api there
363
+ return;
364
+ }
365
+
366
+ // TODO Case 3: Flexi without accountId
367
+ if (!plan.isCurrentPlan && isFlexi && isTenurePresent && (0, _lodash.isEmpty)(accountId)) {
368
+ // handleFlexiWithoutAccount()
369
+ return;
370
+ }
371
+
372
+ // Case 4: Fixed product, not regional app
373
+ if (isFixed && !isRegionalApp && isTenurePresent) {
374
+ handleFixedProduct(plan, selectedTenure);
375
+ return;
376
+ }
377
+
378
+ // TODO Case 5: Regional app navigation
379
+ if (isRegionalApp) {
380
+ // handleRegionalApp()
381
+ return;
382
+ }
383
+ }, [selectedPack, userAppsList]);
384
+
385
+ // TODO
386
+ // const handleRegionalApp = item => {
387
+ // if (["MSERVICE", "PULSE"].includes(source)) {
388
+ // setTenure(item);
389
+ // } else {
390
+ // navigate(`/${GlobalConfig.manageApp_Path}/check-value-plan/regional-apps`);
391
+ // }
392
+ // };
393
+
394
+ // const setTenure = item => {};
395
+
396
+ const navigateTopage = (0, _react.useCallback)(async (plan, selectedTenure) => {
397
+ const payload = {
398
+ accountId,
399
+ packId: plan !== null && plan !== void 0 && plan.isCurrentPlan || (plan === null || plan === void 0 ? void 0 : plan.tenureType) === "2 Months" ? plan === null || plan === void 0 ? void 0 : plan.packId : selectedPack.selectedPackID
400
+ };
401
+ const getPurchaseRequestTypeAPI = _AppConstant.AppConstant.getApiUrlFromManifest("getUserAction");
402
+ const apiPath = (0, _commonUtils.replaceStringWithParams)(getPurchaseRequestTypeAPI, {
403
+ "<source>": `${source}`
404
+ });
405
+ try {
406
+ const apiResponse = await (0, _commonUtils.fetchWithHeaders)(apiPath, _serviceCommonHandler.serviceConsts.method.post, payload);
407
+ const responseObj = apiResponse;
408
+ if (responseObj && responseObj.status) {
409
+ var _responseObj$data, _plan$appList;
410
+ const userAction = responseObj === null || responseObj === void 0 || (_responseObj$data = responseObj.data) === null || _responseObj$data === void 0 ? void 0 : _responseObj$data.purchaseType;
411
+ const existingPackData = !(0, _lodash.isEmpty)(productList) && (productList === null || productList === void 0 ? void 0 : productList.find(it => it.packId == productId));
412
+ const tempAppList = plan === null || plan === void 0 || (_plan$appList = plan.appList) === null || _plan$appList === void 0 ? void 0 : _plan$appList["BUCKET1"];
413
+ const isCompApp = tempAppList === null || tempAppList === void 0 ? void 0 : tempAppList.find(it => it.appId == journeySourceRefld && it.isComplimentary);
414
+ // const temp = { ...userAuth }; // TODO from web
415
+ // temp.isCompApp = isCompApp;
416
+
417
+ if (!(0, _lodash.isEmpty)(paymtUserAction) && paymtUserAction == "Payment_Retry" && (userSelectedPacks === null || userSelectedPacks === void 0 ? void 0 : userSelectedPacks.packID) == (selectedPack === null || selectedPack === void 0 ? void 0 : selectedPack.selectedPackID)) {
418
+ // TODO navigate to select apps Or Regional select apps
419
+ } else {
420
+ dispatch((0, _action.createBucketList)({
421
+ selectedItem: plan,
422
+ appsList,
423
+ existingPackData,
424
+ userAction,
425
+ journeySourceRefld,
426
+ journeySourceRefName,
427
+ journey,
428
+ isCompApp
429
+ }));
430
+ navigation.navigate(_RoutesConstants.RoutesConstants.SelectApps);
431
+ }
432
+ } else {
433
+ var _plan$appList2;
434
+ const existingPackData = !(0, _lodash.isEmpty)(productList) && (productList === null || productList === void 0 ? void 0 : productList.find(it => (it === null || it === void 0 ? void 0 : it.packId) == productId));
435
+ const tempAppList = plan === null || plan === void 0 || (_plan$appList2 = plan.appList) === null || _plan$appList2 === void 0 ? void 0 : _plan$appList2["BUCKET1"];
436
+ const isCompApp = tempAppList === null || tempAppList === void 0 ? void 0 : tempAppList.find(it => it.appId == journeySourceRefld && (it === null || it === void 0 ? void 0 : it.isComplimentary));
437
+ // const temp = { ...userAuth }; // TODO from web
438
+ // temp.isCompApp = isCompApp;
439
+
440
+ if (!(0, _lodash.isEmpty)(paymtUserAction) && paymtUserAction == "Payment_Retry" && (userSelectedPacks === null || userSelectedPacks === void 0 ? void 0 : userSelectedPacks.packID) == (selectedPack === null || selectedPack === void 0 ? void 0 : selectedPack.selectedPackID)) {
441
+ // TODO navigate to select apps Or Regional select apps
442
+ } else {
443
+ // TODO navigate to select apps Or Regional select apps
444
+ dispatch((0, _action.createBucketList)({
445
+ selectedItem: plan,
446
+ appsList,
447
+ existingPackData,
448
+ journeySourceRefld,
449
+ journeySourceRefName,
450
+ journey,
451
+ isCompApp
452
+ }));
453
+ navigation.navigate(_RoutesConstants.RoutesConstants.SelectApps);
454
+ }
455
+ }
456
+ } catch (error) {
457
+ console.log("error", error);
458
+ (0, _commonUtils.handleError)(error, dispatch);
459
+ }
460
+ }, [source, accountId, productList, dispatch, navigation, journeySourceRefld, journeySourceRefName, journey]);
461
+ const handleFixedProduct = (0, _react.useCallback)((plan, selectedTenure) => {
462
+ try {
463
+ const apiPath = _AppConstant.AppConstant.getApiUrlFromManifest("savePacks");
464
+ const savePacksApi = (0, _commonUtils.replaceStringWithParams)(apiPath, {
465
+ "<source>": `${source}`
466
+ });
467
+ const apiPath1 = _AppConstant.AppConstant.getApiUrlFromManifest("pageRedirection");
468
+ const redirectionApi = (0, _commonUtils.replaceStringWithParams)(apiPath1, {
469
+ "<source>": `${source}`
470
+ });
471
+ const obj = {
472
+ selectedPack: selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.packId,
473
+ selectedPackName: plan === null || plan === void 0 ? void 0 : plan.packName,
474
+ selectedTenure: (selectedTenure === null || selectedTenure === void 0 ? void 0 : selectedTenure.tenure) || "",
475
+ pageData: chooseYourPlanDrupalInfo,
476
+ pageConstants: _Home.pageConstants,
477
+ navigation,
478
+ savePacksApi,
479
+ redirectionApi,
480
+ source,
481
+ productType: plan === null || plan === void 0 ? void 0 : plan.productType,
482
+ bingeAnywhere,
483
+ productClass: plan === null || plan === void 0 ? void 0 : plan.productClass,
484
+ journey,
485
+ item: plan,
486
+ isFreeTrialPack: plan === null || plan === void 0 ? void 0 : plan.isFreeTrialPack
487
+ };
488
+ (0, _commonUtils.fetchTenureData)(obj);
489
+ } catch (error) {
490
+ console.log("abhay", (0, _string.jsonCopy)(error));
491
+ (0, _commonUtils.handleError)(error, dispatch);
492
+ }
493
+ }, [dispatch, source]);
494
+ const redirectToExistingUser = () => {
495
+ // TODO REDIRECT TO EXISTING USER
496
+ // dispatch(
497
+ // pageRedirectionApi({
498
+ // source: source,
499
+ // uniqueKey: uniqueKey.current,
500
+ // body: {
501
+ // page: 'Login-Selection',
502
+ // },
503
+ // }),
504
+ // );
505
+ };
506
+ const redirectToPage = () => {};
507
+ const offersArray = (0, _react.useMemo)(() => {
508
+ const offers = [];
509
+ if (!(0, _lodash.isEmpty)(couponDetails) && (couponDetails === null || couponDetails === void 0 ? void 0 : couponDetails.couponId) !== "FREETRIAL") {
510
+ offers.push(/*#__PURE__*/_react.default.createElement(_CouponCard.default, {
511
+ key: `coupon-${(couponDetails === null || couponDetails === void 0 ? void 0 : couponDetails.couponId) ?? "0"}`,
512
+ couponDetails: couponDetails,
513
+ drupal: chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.congratsCard
514
+ }));
515
+ }
516
+ if ((0, _commonUtils.showAppleMusicBanner)(journey, source, productId, expiredPlan) && !(0, _lodash.isEmpty)(chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.appleMusic)) {
517
+ offers.push(/*#__PURE__*/_react.default.createElement(_AppleMusicBanner.default, {
518
+ key: `appleMusic`,
519
+ pageData: chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.appleMusic
520
+ }));
521
+ }
522
+ if ((0, _commonUtils.showAppleMusicBanner)(journey, source, productId, expiredPlan) && !(0, _lodash.isEmpty)(chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.offerTrail)) {
523
+ offers.push(/*#__PURE__*/_react.default.createElement(_MicroDramaCard.default, {
524
+ key: `offerTrail`,
525
+ pageData: chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.offerTrail
526
+ }));
527
+ }
528
+ return offers;
529
+ }, [couponDetails, chooseYourPlanDrupalInfo, journey, source, productId, expiredPlan]);
530
+ const renderedPlans = (0, _react.useMemo)(() => {
531
+ if ((0, _lodash.isEmpty)(plans)) return null;
532
+ return plans.map((plan, index) => {
533
+ const key = (plan === null || plan === void 0 ? void 0 : plan.packId) ?? `plan-${index}`;
534
+ const isRegionalOrSports = ["REGIONAL TELUGU", "REGIONAL TAMIL"].includes(plan === null || plan === void 0 ? void 0 : plan.productClass) || ["BINGEMON86", "BINGEMON71"].includes(plan === null || plan === void 0 ? void 0 : plan.packId);
535
+ if (plan !== null && plan !== void 0 && plan.isCurrentPlan) {
536
+ return /*#__PURE__*/_react.default.createElement(_CurrentPlanCard.default, {
537
+ key: key,
538
+ drupal: memoizedDrupal,
539
+ plan: plan,
540
+ selectTenure: selectTenure,
541
+ selectedPack: selectedPack,
542
+ onButtonClick: handleNavigation,
543
+ journey: journey,
544
+ userExistingPacks: userExistingPacks
545
+ });
546
+ }
547
+ if (isRegionalOrSports) {
548
+ return /*#__PURE__*/_react.default.createElement(_SpecialPlanCard.default, {
549
+ key: key,
550
+ drupal: memoizedDrupal,
551
+ plan: plan,
552
+ selectTenure: selectTenure,
553
+ onButtonClick: handleNavigation,
554
+ journey: journey,
555
+ journeySourceRefld: journeySourceRefld
556
+ });
557
+ }
558
+ return /*#__PURE__*/_react.default.createElement(_PlanCard.default, {
559
+ key: key,
560
+ drupal: memoizedDrupal,
561
+ plan: plan,
562
+ selectTenure: selectTenure,
563
+ selectedPack: selectedPack,
564
+ onButtonClick: handleNavigation,
565
+ journey: journey,
566
+ journeySourceRefld: journeySourceRefld
567
+ });
568
+ });
569
+ }, [plans, memoizedDrupal, selectedPack, handleNavigation, journey, journeySourceRefld, userExistingPacks]);
570
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
571
+ style: _ChooseYourPlanStyles.default.container
572
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
573
+ source: (0, _commonUtils.getBackgroundImageSource)(),
574
+ style: _ChooseYourPlanStyles.default.imageBackground
575
+ }), /*#__PURE__*/_react.default.createElement(_ManageAppHeader.default, {
576
+ title: getPageHeading(),
577
+ onBackPress: handleBackPress,
578
+ onClosePress: null
579
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
580
+ style: _ChooseYourPlanStyles.default.innerContainer
581
+ }, !(0, _lodash.isEmpty)(chooseYourPlanDrupalInfo) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
582
+ contentContainerStyle: _ChooseYourPlanStyles.default.scrollContent
583
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaView, {
584
+ edges: ["bottom"]
585
+ }, !(0, _lodash.isEmpty)(plans) && !(0, _lodash.isEmpty)(offersArray) && !(0, _lodash.isEmpty)(chooseYourPlanDrupalInfo) && /*#__PURE__*/_react.default.createElement(_OffersCarousel.default, {
586
+ offersArray: offersArray
587
+ }), !(0, _lodash.isEmpty)(plans) && /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_SectionItem.default, {
588
+ Svg: _PlansSvg.default,
589
+ title: "Plans"
590
+ }), renderedPlans))), (0, _lodash.isEmpty)(subscriberId) && (0, _lodash.isEmpty)(accountId) && source === "BINGE_OTT" && journey !== "COUPONS" && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
591
+ onPress: redirectToExistingUser
592
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 ? void 0 : chooseYourPlanDrupalInfo.existingUser)), journey === "COUPONS" && showToastMsg && !couponAlert && /*#__PURE__*/_react.default.createElement(_Toast.default, {
593
+ img: require("../..//assets/images/Union.png"),
594
+ message: chooseYourPlanDrupalInfo === null || chooseYourPlanDrupalInfo === void 0 || (_chooseYourPlanDrupal = chooseYourPlanDrupalInfo.couponSection) === null || _chooseYourPlanDrupal === void 0 ? void 0 : _chooseYourPlanDrupal.couponVerified
595
+ })), isLoading && /*#__PURE__*/_react.default.createElement(_Loader.default, null)));
596
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _AppConstant = require("../../assets/AppConstant");
9
+ var _fontUtils = require("../../utils/fontUtils");
10
+ const ratio = _AppConstant.AppConstant.dimension.aspectRatio;
11
+ var _default = exports.default = styles = _reactNative.StyleSheet.create({
12
+ container: {
13
+ flex: 1
14
+ },
15
+ scrollContent: {
16
+ paddingBottom: 20
17
+ },
18
+ imageBackground: {
19
+ width: "100%",
20
+ ..._reactNative.StyleSheet.absoluteFillObject,
21
+ height: "30%"
22
+ // resizeMode: 'contain'
23
+ },
24
+ innerContainer: {
25
+ flex: 1,
26
+ alignItems: "center"
27
+ }
28
+ });