react-native-flyy 1.4.27 → 1.4.29

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.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FlyyWidget = exports.FlyyFloatingWidget = exports.FlyyCheckinView = exports.default = void 0;
6
+ exports.FlyyStories = exports.FlyyWidget = exports.FlyyFloatingWidget = exports.FlyyCheckinView = exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
@@ -13,6 +13,10 @@ var _reactNativeDraggable = _interopRequireDefault(require("react-native-draggab
13
13
 
14
14
  var _flyy_checkin_view = _interopRequireDefault(require("./flyy_checkin_view"));
15
15
 
16
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
17
+
18
+ var _reactNativeSimpleToast = _interopRequireDefault(require("react-native-simple-toast"));
19
+
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
21
 
18
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -78,6 +82,7 @@ const FlyyFloatingWidget = ({
78
82
  const [buttonYPosition, setButtonYPosition] = (0, _react.useState)(windowHeight - 100);
79
83
  const [deeplink, setDeeplink] = (0, _react.useState)(null);
80
84
  const flyyConfigDate = "flyy_config_date";
85
+ const flyyConfigUserId = "user_id";
81
86
  var oldState = null;
82
87
  var currentState = null;
83
88
  var data = null;
@@ -96,6 +101,17 @@ const FlyyFloatingWidget = ({
96
101
  }
97
102
  });
98
103
  data = await resp.json();
104
+
105
+ if (!data.success) {
106
+ if (Platform.OS === 'android') {
107
+ _reactNative.ToastAndroid.show(data.message, _reactNative.ToastAndroid.SHORT);
108
+ } else {
109
+ _reactNativeSimpleToast.default.showWithGravity(data.message, _reactNativeSimpleToast.default.SHORT, _reactNativeSimpleToast.default.BOTTOM);
110
+ }
111
+
112
+ return;
113
+ }
114
+
99
115
  const widgetConfig = data.info.floating_widget_configuration;
100
116
 
101
117
  if (widgetConfig.icon_url != null && widgetConfig.icon_url != '') {
@@ -125,10 +141,20 @@ const FlyyFloatingWidget = ({
125
141
  setButtonXPosition(windowWidth - 75);
126
142
  } else if (widgetConfig.position == "upper_left") {
127
143
  setButtonXPosition(10);
128
- setButtonYPosition(10);
144
+
145
+ if (Platform.OS === 'android') {
146
+ setButtonYPosition(10);
147
+ } else {
148
+ setButtonYPosition(50);
149
+ }
129
150
  } else if (widgetConfig.position == "upper_right") {
130
151
  setButtonXPosition(windowWidth - 75);
131
- setButtonYPosition(10);
152
+
153
+ if (Platform.OS === 'android') {
154
+ setButtonYPosition(10);
155
+ } else {
156
+ setButtonYPosition(50);
157
+ }
132
158
  } //Set DeepLink
133
159
 
134
160
 
@@ -138,42 +164,45 @@ const FlyyFloatingWidget = ({
138
164
 
139
165
 
140
166
  var currentDate = new Date();
141
- const getDate = await _reactNative.AsyncStorage.getItem(flyyConfigDate);
167
+ const getDate = await _asyncStorage.default.getItem(flyyConfigDate);
168
+ const userId = await _asyncStorage.default.getItem(flyyConfigUserId);
142
169
  var date = new Date(parseInt(getDate));
143
170
  const diffTime = Math.abs(getDate - currentDate);
144
171
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) - 1;
145
172
 
146
- if (diffDays != 0) {
173
+ if (diffDays != 0 || userId == null || userId != sdkInfo[flyyConfigUserId]) {
147
174
  var data = await Flyy.getAppOccurence(1);
175
+ await _asyncStorage.default.setItem(flyyConfigUserId, sdkInfo[flyyConfigUserId]);
148
176
  }
149
177
 
150
178
  const occurrenceCount = await Flyy.getAppOccurence(0);
151
179
 
152
- if (widgetConfig.show_to_user && occurrenceCount <= widgetConfig.num_times) {
180
+ if (widgetConfig.show_to_user && occurrenceCount <= parseInt(widgetConfig.num_times)) {
153
181
  // var numberOfDaysToAdd = widgetConfig.num_days+1;
154
182
  // var result = currentDate.setDate(currentDate.getDate() + numberOfDaysToAdd);
155
- if (getDate === null) {
156
- await _reactNative.AsyncStorage.setItem(flyyConfigDate, JSON.stringify(currentDate.getTime()));
183
+ if (getDate === null || userId == null || userId != sdkInfo[flyyConfigUserId]) {
184
+ await _asyncStorage.default.setItem(flyyConfigDate, JSON.stringify(currentDate.getTime()));
157
185
  }
158
186
 
159
- const getDate2 = await _reactNative.AsyncStorage.getItem(flyyConfigDate);
187
+ const getDate2 = await _asyncStorage.default.getItem(flyyConfigDate);
160
188
  var date = new Date(parseInt(getDate2));
161
189
  const diffTime = Math.abs(getDate2 - currentDate);
162
190
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) - 1; //Show widget on same day
163
191
 
164
- if (diffDays === 0) {
192
+ if (diffDays === 0 || diffDays === -1) {
165
193
  setShowWidget(true);
166
194
  } else {
167
195
  //reset occurrence on next day
168
196
  await Flyy.getAppOccurence(1);
169
197
 
170
- if (diffDays >= widgetConfig.num_days + 1) {
171
- await _reactNative.AsyncStorage.setItem(flyyConfigDate, JSON.stringify(currentDate.getTime()));
198
+ if (diffDays >= parseInt(widgetConfig.num_days) + 1) {
199
+ await _asyncStorage.default.setItem(flyyConfigDate, JSON.stringify(currentDate.getTime()));
172
200
  setShowWidget(true);
173
201
  }
174
202
  }
175
203
  } else {
176
- const getDate2 = await _reactNative.AsyncStorage.getItem(flyyConfigDate);
204
+ setShowWidget(false);
205
+ const getDate2 = await _asyncStorage.default.getItem(flyyConfigDate);
177
206
  var date = new Date(parseInt(getDate2));
178
207
  const diffTime = Math.abs(getDate2 - currentDate);
179
208
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
@@ -215,8 +244,12 @@ const FlyyFloatingWidget = ({
215
244
  isCircle: true
216
245
  }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
217
246
  onPress: deeplink != null ? async () => {
218
- const supported = await _reactNative.Linking.canOpenURL(deeplink);
219
- await _reactNative.Linking.openURL(deeplink);
247
+ if (Platform.OS === 'android' || !deeplink.startsWith("flyy://")) {
248
+ const supported = await _reactNative.Linking.canOpenURL(deeplink);
249
+ await _reactNative.Linking.openURL(deeplink);
250
+ } else {
251
+ navigateTo(deeplink);
252
+ }
220
253
  } : props.onPress,
221
254
  style: {
222
255
  height: buttonSize,
@@ -236,8 +269,6 @@ const FlyyFloatingWidget = ({
236
269
  onPress: () => {
237
270
  props.show = false;
238
271
  setShowWidget(false);
239
- console.log("SHOW PROPS :::");
240
- console.log(props.show);
241
272
  },
242
273
  style: {
243
274
  height: 20,
@@ -260,6 +291,125 @@ const FlyyFloatingWidget = ({
260
291
 
261
292
  exports.FlyyFloatingWidget = FlyyFloatingWidget;
262
293
 
294
+ const navigateTo = deeplink => {
295
+ let components = deeplink.split("/");
296
+ let screenCode = components[components.length - 1];
297
+
298
+ switch (screenCode) {
299
+ case "flyy_offers":
300
+ {
301
+ Flyy.openOffersScreen();
302
+ }
303
+ break;
304
+
305
+ case "challenge_details":
306
+ {
307
+ Flyy.openFlyyChallengeDetailPage(0);
308
+ }
309
+ break;
310
+
311
+ case "flyy_quiz_list":
312
+ {
313
+ Flyy.openFlyyQuizListPage();
314
+ }
315
+ break;
316
+
317
+ case "stamp_campaign_new":
318
+ {
319
+ Flyy.openFlyyStampsPage();
320
+ }
321
+ break;
322
+
323
+ case "campaign_home":
324
+ {
325
+ Flyy.openFlyyStampsPage();
326
+ }
327
+ break;
328
+
329
+ case "bonanza_details":
330
+ {
331
+ Flyy.openFlyyBonanzaPage();
332
+ }
333
+ break;
334
+
335
+ case "invite_earn":
336
+ {
337
+ Flyy.openFlyyInviteAndEarnPage(0);
338
+ }
339
+ break;
340
+
341
+ case "invite_details":
342
+ {
343
+ Flyy.openFlyyInviteDetailsPage(0);
344
+ }
345
+ break;
346
+
347
+ case "custom_invite_details":
348
+ {
349
+ Flyy.openFlyyCustomInviteAndEarnPage(0, FlyyFlutterPlugin.themeColor);
350
+ }
351
+ break;
352
+
353
+ case "raffle_details":
354
+ {
355
+ Flyy.openFlyyRafflePage(0);
356
+ }
357
+ break;
358
+
359
+ case "quiz_history":
360
+ {
361
+ Flyy.openFlyyQuizHistoryPage();
362
+ }
363
+ break;
364
+
365
+ case "flyy_rewards":
366
+ {
367
+ Flyy.openRewardsScreen();
368
+ }
369
+ break;
370
+
371
+ case "flyy_referrals":
372
+ {
373
+ Flyy.openReferralHistory();
374
+ }
375
+ break;
376
+
377
+ case "flyy_gift_cards":
378
+ {
379
+ Flyy.openGiftCardScreen();
380
+ }
381
+ break;
382
+
383
+ case "flyy_wallet":
384
+ {
385
+ Flyy.openWalletScreen();
386
+ }
387
+ break;
388
+
389
+ case "game_list":
390
+ {
391
+ Flyy.openFlyyGamesPage();
392
+ }
393
+ break;
394
+
395
+ case "flyy_bonanza":
396
+ {
397
+ Flyy.openFlyyBonanzaPage();
398
+ }
399
+ break;
400
+
401
+ case "flyy_quiz_detail":
402
+ {
403
+ Flyy.openFlyyQuizPage(0);
404
+ }
405
+ break;
406
+
407
+ default:
408
+ _reactNativeSimpleToast.default.showWithGravity("ACTION NOT FOUND", _reactNativeSimpleToast.default.SHORT, _reactNativeSimpleToast.default.BOTTOM);
409
+
410
+ }
411
+ };
412
+
263
413
  const FlyyWidget = ({
264
414
  widgetStyle = {
265
415
  rewardsButtonIcon: require('./assets/images/rewardwidget.png'),
@@ -397,5 +547,242 @@ const FlyyCardView = ({
397
547
  height: 10
398
548
  }
399
549
  }));
550
+ }; // ****** Flyy Stories Widget ******
551
+
552
+
553
+ const FlyyStories = ({
554
+ widgetStyle = {
555
+ titleColor: 'black',
556
+ iconButtonBgColor: '#654EA3',
557
+ fontSize: 16.0,
558
+ iconCornerRadius: 55,
559
+ iconSize: 60,
560
+ iconBgSize: 100
561
+ }
562
+ }) => {
563
+ const [data, setData] = (0, _react.useState)(null);
564
+ (0, _react.useEffect)(() => {
565
+ fetchStoriesData();
566
+ }, []);
567
+
568
+ const fetchStoriesData = async () => {
569
+ const sdkInfo = await Flyy.getUserData();
570
+ const appData = await Flyy.getAppData();
571
+ const resp = await fetch(`https://${sdkInfo["environment"] == 0 ? "ghc-stage" : "ghc"}.theflyy.com/api/storyboard`, {
572
+ headers: {
573
+ "X-Key": sdkInfo["partner_id"],
574
+ "Content-Type": "application/json",
575
+ "X-App-Data": appData
576
+ }
577
+ });
578
+ const responseData = await resp.json();
579
+ setData(responseData.storyboard_items);
580
+ };
581
+
582
+ const navigateTo = screenCode => {
583
+ switch (screenCode) {
584
+ case "offers":
585
+ {
586
+ Flyy.openOffersScreen();
587
+ }
588
+ break;
589
+
590
+ case "spin_wheel":
591
+ {
592
+ Flyy.openFlyySpinTheWheelPage(0);
593
+ }
594
+ break;
595
+
596
+ case "challenge":
597
+ {
598
+ Flyy.openFlyyChallengeDetailPage(0);
599
+ }
600
+ break;
601
+
602
+ case "quiz_list":
603
+ {
604
+ Flyy.openFlyyQuizListPage();
605
+ }
606
+ break;
607
+
608
+ case "stamp_campaign":
609
+ {
610
+ Flyy.openFlyyStampsPage();
611
+ }
612
+ break;
613
+
614
+ case "campaign_home":
615
+ {
616
+ Flyy.openFlyyStampsPage();
617
+ }
618
+ break;
619
+
620
+ case "bonanza_details":
621
+ {
622
+ Flyy.openFlyyBonanzaPage();
623
+ }
624
+ break;
625
+
626
+ case "invite_earn":
627
+ {
628
+ Flyy.openFlyyInviteAndEarnPage(0);
629
+ }
630
+ break;
631
+
632
+ case "invite_details":
633
+ {
634
+ Flyy.openFlyyInviteDetailsPage(0);
635
+ }
636
+ break;
637
+
638
+ case "custom_invite_details":
639
+ {
640
+ Flyy.openFlyyCustomInviteAndEarnPage(0, FlyyFlutterPlugin.themeColor);
641
+ }
642
+ break;
643
+
644
+ case "raffle":
645
+ {
646
+ Flyy.openFlyyRafflePage(0);
647
+ }
648
+ break;
649
+
650
+ case "quiz_history":
651
+ {
652
+ Flyy.openFlyyQuizHistoryPage();
653
+ }
654
+ break;
655
+
656
+ case "flyy_rewards":
657
+ {
658
+ Flyy.openRewardsScreen();
659
+ }
660
+ break;
661
+
662
+ case "referrals":
663
+ {
664
+ Flyy.openReferralHistory();
665
+ }
666
+ break;
667
+
668
+ case "flyy_gift_cards":
669
+ {
670
+ Flyy.openGiftCardScreen();
671
+ }
672
+ break;
673
+
674
+ case "wallet":
675
+ {
676
+ Flyy.openWalletScreen();
677
+ }
678
+ break;
679
+
680
+ case "game_list":
681
+ {
682
+ Flyy.openFlyyGamesPage();
683
+ }
684
+ break;
685
+
686
+ case "bonanza":
687
+ {
688
+ Flyy.openFlyyBonanzaPage();
689
+ }
690
+ break;
691
+
692
+ case "quiz_detail":
693
+ {
694
+ Flyy.openFlyyQuizPage(0);
695
+ }
696
+ break;
697
+
698
+ default:
699
+ _reactNativeSimpleToast.default.showWithGravity("ACTION NOT FOUND", _reactNativeSimpleToast.default.SHORT, _reactNativeSimpleToast.default.BOTTOM);
700
+
701
+ }
702
+ };
703
+
704
+ const StoriesItem = ({
705
+ data
706
+ }) => {
707
+ var _widgetStyle$iconButt, _widgetStyle$iconBgSi, _widgetStyle$iconBgSi2, _widgetStyle$iconCorn, _widgetStyle$titleCol, _widgetStyle$fontSize;
708
+
709
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
710
+ style: {
711
+ alignItems: 'center'
712
+ }
713
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
714
+ style: {
715
+ height: 10
716
+ }
717
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
718
+ onPress: () => {
719
+ navigateTo(data.screen_code);
720
+ },
721
+ style: {
722
+ backgroundColor: (_widgetStyle$iconButt = widgetStyle.iconButtonBgColor) !== null && _widgetStyle$iconButt !== void 0 ? _widgetStyle$iconButt : '#654EA3',
723
+ height: (_widgetStyle$iconBgSi = widgetStyle.iconBgSize) !== null && _widgetStyle$iconBgSi !== void 0 ? _widgetStyle$iconBgSi : 60,
724
+ width: (_widgetStyle$iconBgSi2 = widgetStyle.iconBgSize) !== null && _widgetStyle$iconBgSi2 !== void 0 ? _widgetStyle$iconBgSi2 : 60,
725
+ borderRadius: (_widgetStyle$iconCorn = widgetStyle.iconCornerRadius) !== null && _widgetStyle$iconCorn !== void 0 ? _widgetStyle$iconCorn : 55,
726
+ alignSelf: 'center',
727
+ justifyContent: 'center',
728
+ alignItems: 'center',
729
+ marginHorizontal: 10
730
+ }
731
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
732
+ source: {
733
+ uri: data.icon_url
734
+ },
735
+ style: {
736
+ height: 60,
737
+ width: 60
738
+ }
739
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
740
+ style: {
741
+ height: 10
742
+ }
743
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
744
+ style: {
745
+ width: 120
746
+ }
747
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
748
+ style: {
749
+ alignSelf: 'center',
750
+ flexShrink: 1,
751
+ color: (_widgetStyle$titleCol = widgetStyle.titleColor) !== null && _widgetStyle$titleCol !== void 0 ? _widgetStyle$titleCol : 'black',
752
+ fontSize: (_widgetStyle$fontSize = widgetStyle.fontSize) !== null && _widgetStyle$fontSize !== void 0 ? _widgetStyle$fontSize : 14,
753
+ fontFamily: 'Montserrat-Bold',
754
+ textAlign: 'center',
755
+ paddingLeft: 5,
756
+ paddingRight: 5
757
+ },
758
+ numberOfLines: 2
759
+ }, data.title)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
760
+ style: {
761
+ height: 10
762
+ }
763
+ }));
764
+ };
765
+
766
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
767
+ style: {
768
+ flexDirection: "row",
769
+ justifyContent: "center",
770
+ width: "100%",
771
+ alignItems: 'center',
772
+ alignContent: 'center',
773
+ backgroundColor: "white"
774
+ }
775
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
776
+ horizontal: true,
777
+ data: data,
778
+ renderItem: ({
779
+ item
780
+ }) => /*#__PURE__*/_react.default.createElement(StoriesItem, {
781
+ data: item
782
+ }),
783
+ keyExtractor: item => item.id
784
+ }));
400
785
  };
786
+
787
+ exports.FlyyStories = FlyyStories;
401
788
  //# sourceMappingURL=index.js.map