react-native-flyy 1.4.30 → 1.4.32

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 (36) hide show
  1. package/android/.project +1 -1
  2. package/android/.settings/org.eclipse.buildship.core.prefs +2 -5
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/reactnativeflyy/FlyyModule.kt +49 -155
  5. package/android/src/main/java/com/reactnativeflyy/FlyyRouteActivity.java +0 -16
  6. package/ios/ReactNativeFlyy.m +122 -276
  7. package/lib/commonjs/index.js +3 -592
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/module/index.js +3 -580
  10. package/lib/module/index.js.map +1 -1
  11. package/lib/typescript/index.d.ts +0 -12
  12. package/package.json +1 -1
  13. package/react-native-flyy.podspec +1 -1
  14. package/src/index.tsx +1 -544
  15. package/ios/Montserrat-Bold.ttf +0 -0
  16. package/lib/commonjs/assets/images/check.png +0 -0
  17. package/lib/commonjs/assets/images/medal.png +0 -0
  18. package/lib/commonjs/assets/images/radio.png +0 -0
  19. package/lib/commonjs/assets/images/reward_flyy.png +0 -0
  20. package/lib/commonjs/assets/images/xmark.png +0 -0
  21. package/lib/commonjs/flyy_checkin_view.js +0 -379
  22. package/lib/commonjs/flyy_checkin_view.js.map +0 -1
  23. package/lib/module/assets/images/check.png +0 -0
  24. package/lib/module/assets/images/medal.png +0 -0
  25. package/lib/module/assets/images/radio.png +0 -0
  26. package/lib/module/assets/images/reward_flyy.png +0 -0
  27. package/lib/module/assets/images/xmark.png +0 -0
  28. package/lib/module/flyy_checkin_view.js +0 -365
  29. package/lib/module/flyy_checkin_view.js.map +0 -1
  30. package/lib/typescript/flyy_checkin_view.d.ts +0 -19
  31. package/src/assets/images/check.png +0 -0
  32. package/src/assets/images/medal.png +0 -0
  33. package/src/assets/images/radio.png +0 -0
  34. package/src/assets/images/reward_flyy.png +0 -0
  35. package/src/assets/images/xmark.png +0 -0
  36. package/src/flyy_checkin_view.tsx +0 -214
@@ -1,365 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- // @ts-nocheck
4
- import React, { Component } from "react";
5
- import { View, Text, TouchableOpacity, StyleSheet, Image, VirtualizedList, Platform, ToastAndroid, Linking, NativeModules } from "react-native";
6
- const {
7
- Flyy
8
- } = NativeModules;
9
-
10
- class FlyyCheckinComponent extends Component {
11
- constructor(...args) {
12
- super(...args);
13
-
14
- _defineProperty(this, "state", {
15
- mileStoneData: [],
16
- checkinOffer: [],
17
- listItems: [],
18
- persons: [1, 2, 3, 4, 5],
19
- partnerId: "",
20
- userId: "",
21
- appData: "",
22
- environment: 0
23
- });
24
- }
25
-
26
- async componentDidMount() {
27
- try {
28
- const data = await Flyy.getUserData();
29
- const appData = await Flyy.getAppData();
30
- this.setState({
31
- partnerId: data["partner_id"],
32
- userId: data["user_id"],
33
- environment: data["environment"],
34
- appData: appData
35
- });
36
- } catch (e) {
37
- console.error(e);
38
- }
39
-
40
- await this.fetchData();
41
- }
42
-
43
- async fetchData() {
44
- this.setState({
45
- listItems: []
46
- });
47
- const resp = await fetch(`https://${this.state.environment == 0 ? "ghc-stage" : "ghc"}.theflyy.com/api/v7/flyy_app_info`, {
48
- headers: {
49
- "X-Key": this.state.partnerId,
50
- "Content-Type": "application/json",
51
- "X-App-Data": this.state.appData
52
- }
53
- });
54
- const data = await resp.json();
55
-
56
- for (var key in data.info.offers) {
57
- if (data.info.offers[key].offer_type_code === "checkin") {
58
- this.setState({
59
- checkinOffer: data.info.offers[key]
60
- });
61
- this.setState({
62
- mileStoneData: data.info.offers[key].milestones
63
- });
64
- break;
65
- }
66
- }
67
-
68
- var tempData = [];
69
- var isRewardDay = false;
70
- var isCheckedIn = false;
71
-
72
- for (let i = 0; i < this.state.checkinOffer.total_streak; i++) {
73
- for (let j = 0; j < this.state.mileStoneData.length; j++) {
74
- if (i + 1 === parseInt(this.state.mileStoneData[j].value)) {
75
- isRewardDay = true;
76
- }
77
- }
78
-
79
- if (i + 1 <= this.state.checkinOffer.streak) {
80
- isCheckedIn = true;
81
- }
82
-
83
- tempData.push({
84
- "isRewardDay": isRewardDay,
85
- "isCheckedIn": isCheckedIn
86
- });
87
- isRewardDay = false;
88
- isCheckedIn = false;
89
- }
90
-
91
- this.setState({
92
- listItems: tempData
93
- });
94
- }
95
-
96
- async checkInApi() {
97
- var url = `https://${this.state.environment == 0 ? "ghc-stage" : "ghc"}.theflyy.com/api/v1/checkin?offer_id=` + this.state.checkinOffer.id.toString();
98
- const resp = await fetch(url, {
99
- headers: {
100
- "X-Key": this.state.partnerId,
101
- "Content-Type": "application/json",
102
- "X-App-Data": this.state.appData
103
- }
104
- });
105
- const data = await resp.json();
106
-
107
- if (data.success) {
108
- this.fetchData();
109
- } else {
110
- this.notifyMessage(data.message);
111
- }
112
- }
113
-
114
- notifyMessage(msg) {
115
- if (Platform.OS === 'android') {
116
- ToastAndroid.show(msg, ToastAndroid.SHORT);
117
- } else {// Toast.showWithGravity(msg, Toast.SHORT, Toast.BOTTOM);
118
- }
119
- }
120
-
121
- render() {
122
- var _this$props$style$che3, _this$props$style3, _this$props$style$fon, _this$props$style4, _this$state$checkinOf, _this$props$style$che4, _this$props$style5, _this$props$style$fon2, _this$props$style6, _this$props$style$che5, _this$props$style7;
123
-
124
- const Divider = ({
125
- color = "black",
126
- index
127
- }) => {
128
- return /*#__PURE__*/React.createElement(View, {
129
- style: {
130
- flexDirection: 'row'
131
- }
132
- }, React.Children.toArray(this.state.persons.map(() => {
133
- return /*#__PURE__*/React.createElement(View, {
134
- style: {
135
- flexDirection: 'row'
136
- }
137
- }, /*#__PURE__*/React.createElement(View, {
138
- style: {
139
- height: 1,
140
- width: 2,
141
- backgroundColor: color,
142
- borderRadius: 2
143
- }
144
- }), /*#__PURE__*/React.createElement(View, {
145
- style: {
146
- width: 1,
147
- backgroundColor: "white",
148
- borderRadius: 2
149
- }
150
- }));
151
- })));
152
- };
153
-
154
- const getItemCount = () => this.state.listItems.length;
155
-
156
- const getItem = (data, index) => ({
157
- id: Math.random().toString(12).substring(0),
158
- isRewardDay: data[index].isRewardDay,
159
- isCheckedIn: data[index].isCheckedIn,
160
- index: index
161
- });
162
-
163
- const Item = ({
164
- title,
165
- index
166
- }) => {
167
- var _this$props$style$che, _this$props$style, _this$props$style$che2, _this$props$style2;
168
-
169
- const day = index + 1;
170
- return /*#__PURE__*/React.createElement(View, {
171
- style: {
172
- justifyContent: "center",
173
- alignItems: 'center',
174
- alignContent: 'center'
175
- }
176
- }, /*#__PURE__*/React.createElement(View, {
177
- style: {
178
- flexDirection: 'row',
179
- height: 35,
180
- justifyContent: 'center',
181
- alignItems: 'center'
182
- }
183
- }, title.isCheckedIn ? /*#__PURE__*/React.createElement(View, {
184
- style: {
185
- height: 1,
186
- width: 15,
187
- alignSelf: "center",
188
- backgroundColor: index == 0 ? "white" : "black"
189
- }
190
- }) : /*#__PURE__*/React.createElement(Divider, {
191
- color: index == 0 ? "white" : "black",
192
- index: index
193
- }), title.isRewardDay ? title.isCheckedIn ? /*#__PURE__*/React.createElement(Image, {
194
- source: require('./assets/images/reward_flyy.png'),
195
- style: {
196
- height: 20,
197
- width: 15
198
- }
199
- }) : /*#__PURE__*/React.createElement(Image, {
200
- source: {
201
- uri: this.state.checkinOffer["currency_icon_url"]
202
- },
203
- style: {
204
- height: 20,
205
- width: 20
206
- }
207
- }) : title.isCheckedIn ? /*#__PURE__*/React.createElement(View, {
208
- style: {
209
- height: 17,
210
- width: 17,
211
- backgroundColor: "black",
212
- borderRadius: 15,
213
- justifyContent: 'center',
214
- alignItems: 'center'
215
- }
216
- }, /*#__PURE__*/React.createElement(Text, {
217
- style: {
218
- color: "white",
219
- fontSize: 10
220
- }
221
- }, "\u2713")) : /*#__PURE__*/React.createElement(Image, {
222
- source: require('./assets/images/radio.png'),
223
- style: {
224
- height: 20,
225
- width: 20
226
- }
227
- }), index != this.state.listItems.length - 1 ? this.state.listItems[index + 1].isCheckedIn ? /*#__PURE__*/React.createElement(View, {
228
- style: {
229
- height: 1,
230
- width: 15,
231
- alignSelf: "center",
232
- backgroundColor: index == this.state.listItems.length - 1 ? "white" : "black"
233
- }
234
- }) : /*#__PURE__*/React.createElement(Divider, {
235
- color: index == this.state.listItems.length - 1 ? "white" : "black",
236
- index: index
237
- }) : /*#__PURE__*/React.createElement(View, {
238
- style: {
239
- width: 15
240
- }
241
- })), /*#__PURE__*/React.createElement(Text, {
242
- style: {
243
- textAlign: 'center',
244
- color: title.isRewardDay ? (_this$props$style$che = (_this$props$style = this.props.style) === null || _this$props$style === void 0 ? void 0 : _this$props$style.checkInEarnColor) !== null && _this$props$style$che !== void 0 ? _this$props$style$che : "black" : (_this$props$style$che2 = (_this$props$style2 = this.props.style) === null || _this$props$style2 === void 0 ? void 0 : _this$props$style2.checkInDaysColor) !== null && _this$props$style$che2 !== void 0 ? _this$props$style$che2 : "black"
245
- }
246
- }, title.isRewardDay ? title.isCheckedIn ? "Won" : "Earn" : title.isCheckedIn ? "Day " + day : "Day " + day));
247
- };
248
-
249
- return /*#__PURE__*/React.createElement(TouchableOpacity, {
250
- style: styles.main,
251
- onPress: () => {
252
- Flyy.openFlyyCheckinPage();
253
- }
254
- }, /*#__PURE__*/React.createElement(View, {
255
- style: {
256
- height: 10
257
- }
258
- }), /*#__PURE__*/React.createElement(Text, {
259
- style: {
260
- fontSize: 20,
261
- color: (_this$props$style$che3 = (_this$props$style3 = this.props.style) === null || _this$props$style3 === void 0 ? void 0 : _this$props$style3.checkInTitleColor) !== null && _this$props$style$che3 !== void 0 ? _this$props$style$che3 : "black",
262
- fontFamily: (_this$props$style$fon = (_this$props$style4 = this.props.style) === null || _this$props$style4 === void 0 ? void 0 : _this$props$style4.fontFamily) !== null && _this$props$style$fon !== void 0 ? _this$props$style$fon : "Montserrat-Regular"
263
- }
264
- }, (_this$state$checkinOf = this.state.checkinOffer["offer_type_title"]) !== null && _this$state$checkinOf !== void 0 ? _this$state$checkinOf : "N/A"), /*#__PURE__*/React.createElement(View, {
265
- style: {
266
- height: 10
267
- }
268
- }), /*#__PURE__*/React.createElement(View, {
269
- style: {
270
- flexDirection: 'row',
271
- width: 250,
272
- justifyContent: 'center'
273
- }
274
- }, /*#__PURE__*/React.createElement(Text, {
275
- numberOfLines: 1,
276
- style: {
277
- fontSize: 18,
278
- color: (_this$props$style$che4 = (_this$props$style5 = this.props.style) === null || _this$props$style5 === void 0 ? void 0 : _this$props$style5.checkInDescriptionColor) !== null && _this$props$style$che4 !== void 0 ? _this$props$style$che4 : "grey",
279
- fontFamily: (_this$props$style$fon2 = (_this$props$style6 = this.props.style) === null || _this$props$style6 === void 0 ? void 0 : _this$props$style6.fontFamily) !== null && _this$props$style$fon2 !== void 0 ? _this$props$style$fon2 : "Montserrat-Regular",
280
- textAlign: "center"
281
- }
282
- }, this.state.checkinOffer["description"] != null ? this.state.checkinOffer["description"].replace(/(<([^>]+)>)/ig, '') : "N/A")), /*#__PURE__*/React.createElement(View, {
283
- style: {
284
- height: 10
285
- }
286
- }), /*#__PURE__*/React.createElement(View, {
287
- style: styles.listContainer
288
- }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(VirtualizedList, {
289
- data: this.state.listItems,
290
- style: {
291
- alignSelf: "center"
292
- },
293
- initialNumToRender: 4,
294
- horizontal: true,
295
- renderItem: ({
296
- item,
297
- index
298
- }) => /*#__PURE__*/React.createElement(Item, {
299
- title: item,
300
- index: index
301
- }),
302
- getItemCount: getItemCount,
303
- getItem: getItem
304
- }))), /*#__PURE__*/React.createElement(View, {
305
- style: {
306
- height: 10
307
- }
308
- }), /*#__PURE__*/React.createElement(TouchableOpacity, {
309
- style: styles.button,
310
- onPress: async () => {
311
- const eventId = this.state.checkinOffer["event_id"];
312
- const url = this.state.checkinOffer["deeplink"];
313
-
314
- if (eventId != null) {
315
- if (url != "") {
316
- const supported = await Linking.canOpenURL(url);
317
-
318
- if (supported) {
319
- await Linking.openURL(url);
320
- }
321
- }
322
- } else {
323
- this.checkInApi();
324
- }
325
- }
326
- }, /*#__PURE__*/React.createElement(Text, {
327
- style: {
328
- fontSize: 20,
329
- color: (_this$props$style$che5 = (_this$props$style7 = this.props.style) === null || _this$props$style7 === void 0 ? void 0 : _this$props$style7.checkInBtnTextColor) !== null && _this$props$style$che5 !== void 0 ? _this$props$style$che5 : "white",
330
- paddingLeft: 10,
331
- paddingRight: 10,
332
- fontFamily: "Montserrat-Regular"
333
- }
334
- }, this.state.checkinOffer["checked_in"] ? "Checked In" : this.state.checkinOffer["button_text"] != "" ? this.state.checkinOffer["button_text"] : "Check In")));
335
- }
336
-
337
- }
338
-
339
- const styles = StyleSheet.create({
340
- main: {
341
- backgroundColor: "white",
342
- elevation: 5,
343
- height: 210,
344
- width: "90%",
345
- alignItems: "center",
346
- borderRadius: 10
347
- },
348
- listContainer: {
349
- height: 60,
350
- flexDirection: "row",
351
- justifyContent: "center",
352
- width: "100%",
353
- alignItems: 'center',
354
- alignContent: 'center',
355
- backgroundColor: "white"
356
- },
357
- button: {
358
- backgroundColor: "#f57242",
359
- height: 35,
360
- borderRadius: 5,
361
- justifyContent: "center"
362
- }
363
- });
364
- export default FlyyCheckinComponent;
365
- //# sourceMappingURL=flyy_checkin_view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["flyy_checkin_view.tsx"],"names":["React","Component","View","Text","TouchableOpacity","StyleSheet","Image","VirtualizedList","Platform","ToastAndroid","Linking","NativeModules","Flyy","FlyyCheckinComponent","mileStoneData","checkinOffer","listItems","persons","partnerId","userId","appData","environment","componentDidMount","data","getUserData","getAppData","setState","e","console","error","fetchData","resp","fetch","state","headers","json","key","info","offers","offer_type_code","milestones","tempData","isRewardDay","isCheckedIn","i","total_streak","j","length","parseInt","value","streak","push","checkInApi","url","id","toString","success","notifyMessage","message","msg","OS","show","SHORT","render","Divider","color","index","flexDirection","Children","toArray","map","height","width","backgroundColor","borderRadius","getItemCount","getItem","Math","random","substring","Item","title","day","justifyContent","alignItems","alignContent","alignSelf","require","uri","fontSize","textAlign","props","style","checkInEarnColor","checkInDaysColor","styles","main","openFlyyCheckinPage","checkInTitleColor","fontFamily","checkInDescriptionColor","replace","listContainer","item","button","eventId","supported","canOpenURL","openURL","checkInBtnTextColor","paddingLeft","paddingRight","create","elevation"],"mappings":";;AAAA;AACA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,gBAArB,EAAsCC,UAAtC,EAAiDC,KAAjD,EAAwDC,eAAxD,EAAyEC,QAAzE,EAAmFC,YAAnF,EAAwGC,OAAxG,EAAiHC,aAAjH,QAAsI,cAAtI;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWD,aAAjB;;AAEA,MAAME,oBAAN,SAAmCZ,SAAnC,CAA6C;AAAA;AAAA;;AAAA,mCAEjC;AACJa,MAAAA,aAAa,EAAE,EADX;AAEJC,MAAAA,YAAY,EAAE,EAFV;AAGJC,MAAAA,SAAS,EAAE,EAHP;AAIJC,MAAAA,OAAO,EAAE,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,EAAO,CAAP,EAAS,CAAT,CAJL;AAKJC,MAAAA,SAAS,EAAE,EALP;AAMJC,MAAAA,MAAM,EAAE,EANJ;AAOJC,MAAAA,OAAO,EAAE,EAPL;AAQJC,MAAAA,WAAW,EAAE;AART,KAFiC;AAAA;;AAalB,QAAjBC,iBAAiB,GAAE;AACvB,QAAI;AACF,YAAMC,IAAI,GAAG,MAAMX,IAAI,CAACY,WAAL,EAAnB;AACA,YAAMJ,OAAO,GAAG,MAAMR,IAAI,CAACa,UAAL,EAAtB;AACA,WAAKC,QAAL,CAAc;AACFR,QAAAA,SAAS,EAAGK,IAAI,CAAC,YAAD,CADd;AAEFJ,QAAAA,MAAM,EAAGI,IAAI,CAAC,SAAD,CAFX;AAGFF,QAAAA,WAAW,EAAGE,IAAI,CAAC,aAAD,CAHhB;AAIFH,QAAAA,OAAO,EAAEA;AAJP,OAAd;AAMD,KATD,CASE,OAAOO,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,KAAR,CAAcF,CAAd;AACD;;AAEC,UAAM,KAAKG,SAAL,EAAN;AACH;;AAGc,QAATA,SAAS,GAAE;AACb,SAAKJ,QAAL,CAAc;AAAEV,MAAAA,SAAS,EAAG;AAAd,KAAd;AACA,UAAMe,IAAI,GAAG,MAAMC,KAAK,CAAE,WAAU,KAAKC,KAAL,CAAWZ,WAAX,IAA0B,CAA1B,GAA8B,WAA9B,GAA4C,KAAM,mCAA9D,EAAkG;AACtHa,MAAAA,OAAO,EAAE;AACL,iBAAS,KAAKD,KAAL,CAAWf,SADf;AAEL,wBAAgB,kBAFX;AAGL,sBAAc,KAAKe,KAAL,CAAWb;AAHpB;AAD6G,KAAlG,CAAxB;AAOA,UAAMG,IAAI,GAAG,MAAMQ,IAAI,CAACI,IAAL,EAAnB;;AACA,SAAK,IAAIC,GAAT,IAAgBb,IAAI,CAACc,IAAL,CAAUC,MAA1B,EAAkC;AAC9B,UAAIf,IAAI,CAACc,IAAL,CAAUC,MAAV,CAAiBF,GAAjB,EAAsBG,eAAtB,KAA0C,SAA9C,EAAyD;AACrD,aAAKb,QAAL,CAAc;AAAEX,UAAAA,YAAY,EAAGQ,IAAI,CAACc,IAAL,CAAUC,MAAV,CAAiBF,GAAjB;AAAjB,SAAd;AACA,aAAKV,QAAL,CAAc;AAAEZ,UAAAA,aAAa,EAAGS,IAAI,CAACc,IAAL,CAAUC,MAAV,CAAiBF,GAAjB,EAAsBI;AAAxC,SAAd;AACA;AACH;AACJ;;AACD,QAAIC,QAAQ,GAAG,EAAf;AACA,QAAIC,WAAW,GAAG,KAAlB;AACA,QAAIC,WAAW,GAAG,KAAlB;;AACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKX,KAAL,CAAWlB,YAAX,CAAwB8B,YAA5C,EAA0DD,CAAC,EAA3D,EAA+D;AAC3D,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKb,KAAL,CAAWnB,aAAX,CAAyBiC,MAA7C,EAAqDD,CAAC,EAAtD,EAA0D;AACtD,YAAIF,CAAC,GAAG,CAAJ,KAAUI,QAAQ,CAAC,KAAKf,KAAL,CAAWnB,aAAX,CAAyBgC,CAAzB,EAA4BG,KAA7B,CAAtB,EAA2D;AACvDP,UAAAA,WAAW,GAAG,IAAd;AACH;AACJ;;AACD,UAAIE,CAAC,GAAC,CAAF,IAAO,KAAKX,KAAL,CAAWlB,YAAX,CAAwBmC,MAAnC,EAA2C;AACvCP,QAAAA,WAAW,GAAG,IAAd;AACH;;AACDF,MAAAA,QAAQ,CAACU,IAAT,CAAc;AAAE,uBAAeT,WAAjB;AAA8B,uBAAeC;AAA7C,OAAd;AACAD,MAAAA,WAAW,GAAG,KAAd;AACAC,MAAAA,WAAW,GAAG,KAAd;AACH;;AACD,SAAKjB,QAAL,CAAc;AAAEV,MAAAA,SAAS,EAAGyB;AAAd,KAAd;AACH;;AAGe,QAAVW,UAAU,GAAG;AACf,QAAIC,GAAG,GAAI,WAAU,KAAKpB,KAAL,CAAWZ,WAAX,IAA0B,CAA1B,GAA8B,WAA9B,GAA4C,KAAM,uCAA7D,GAAsG,KAAKY,KAAL,CAAWlB,YAAX,CAAwBuC,EAAxB,CAA2BC,QAA3B,EAAhH;AACA,UAAMxB,IAAI,GAAG,MAAMC,KAAK,CAACqB,GAAD,EAAM;AAC1BnB,MAAAA,OAAO,EAAE;AACL,iBAAS,KAAKD,KAAL,CAAWf,SADf;AAEL,wBAAgB,kBAFX;AAGL,sBAAc,KAAKe,KAAL,CAAWb;AAHpB;AADiB,KAAN,CAAxB;AAOA,UAAMG,IAAI,GAAG,MAAMQ,IAAI,CAACI,IAAL,EAAnB;;AACA,QAAIZ,IAAI,CAACiC,OAAT,EAAkB;AACd,WAAK1B,SAAL;AACH,KAFD,MAEO;AACH,WAAK2B,aAAL,CAAmBlC,IAAI,CAACmC,OAAxB;AACH;AACJ;;AAEDD,EAAAA,aAAa,CAACE,GAAD,EAAa;AACtB,QAAInD,QAAQ,CAACoD,EAAT,KAAgB,SAApB,EAA+B;AAC7BnD,MAAAA,YAAY,CAACoD,IAAb,CAAkBF,GAAlB,EAAuBlD,YAAY,CAACqD,KAApC;AACD,KAFD,MAEO,CACH;AACH;AACF;;AAELC,EAAAA,MAAM,GAAG;AAAA;;AACP,UAAMC,OAAO,GAAG,CAAC;AAACC,MAAAA,KAAK,GAAG,OAAT;AAAiBC,MAAAA;AAAjB,KAAD,KAAmD;AAC/D,0BACI,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE;AAAEC,UAAAA,aAAa,EAAE;AAAjB;AAAb,SACKnE,KAAK,CAACoE,QAAN,CAAeC,OAAf,CACE,KAAKpC,KAAL,CAAWhB,OAAX,CAAmBqD,GAAnB,CAAuB,MAAM;AAC5B,4BACI,oBAAC,IAAD;AAAM,UAAA,KAAK,EAAE;AAAEH,YAAAA,aAAa,EAAE;AAAjB;AAAb,wBACI,oBAAC,IAAD;AAAM,UAAA,KAAK,EAAE;AAAEI,YAAAA,MAAM,EAAE,CAAV;AAAaC,YAAAA,KAAK,EAAE,CAApB;AAAuBC,YAAAA,eAAe,EAAER,KAAxC;AAA+CS,YAAAA,YAAY,EAAE;AAA7D;AAAb,UADJ,eAEI,oBAAC,IAAD;AAAM,UAAA,KAAK,EAAE;AAAEF,YAAAA,KAAK,EAAE,CAAT;AAAYC,YAAAA,eAAe,EAAE,OAA7B;AAAsCC,YAAAA,YAAY,EAAE;AAApD;AAAb,UAFJ,CADJ;AAMH,OAPE,CADF,CADL,CADJ;AAcH,KAfD;;AAgBA,UAAMC,YAAY,GAAG,MAAM,KAAK1C,KAAL,CAAWjB,SAAX,CAAqB+B,MAAhD;;AACA,UAAM6B,OAAO,GAAG,CAACrD,IAAD,EAAW2C,KAAX,MAA0B;AACtCZ,MAAAA,EAAE,EAAEuB,IAAI,CAACC,MAAL,GAAcvB,QAAd,CAAuB,EAAvB,EAA2BwB,SAA3B,CAAqC,CAArC,CADkC;AAEtCrC,MAAAA,WAAW,EAAEnB,IAAI,CAAC2C,KAAD,CAAJ,CAAYxB,WAFa;AAGtCC,MAAAA,WAAW,EAAEpB,IAAI,CAAC2C,KAAD,CAAJ,CAAYvB,WAHa;AAItCuB,MAAAA,KAAK,EAAEA;AAJ+B,KAA1B,CAAhB;;AAMA,UAAMc,IAAI,GAAG,CAAC;AAAEC,MAAAA,KAAF;AAASf,MAAAA;AAAT,KAAD,KAA6C;AAAA;;AACtD,YAAMgB,GAAG,GAAGhB,KAAK,GAAG,CAApB;AACA,0BACA,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAI;AAACiB,UAAAA,cAAc,EAAE,QAAjB;AAA0BC,UAAAA,UAAU,EAAC,QAArC;AAA8CC,UAAAA,YAAY,EAAC;AAA3D;AAAf,sBACI,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAI;AAAClB,UAAAA,aAAa,EAAG,KAAjB;AAAuBI,UAAAA,MAAM,EAAE,EAA/B;AAAkCY,UAAAA,cAAc,EAAC,QAAjD;AAA0DC,UAAAA,UAAU,EAAC;AAArE;AAAf,SACCH,KAAK,CAACtC,WAAN,gBAAmB,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE;AAAE4B,UAAAA,MAAM,EAAE,CAAV;AAAaC,UAAAA,KAAK,EAAE,EAApB;AAAwBc,UAAAA,SAAS,EAAE,QAAnC;AAA8Cb,UAAAA,eAAe,EAAEP,KAAK,IAAI,CAAT,GAAa,OAAb,GAAuB;AAAtF;AAAb,QAAnB,gBAAmI,oBAAC,OAAD;AAAS,QAAA,KAAK,EAAEA,KAAK,IAAI,CAAT,GAAa,OAAb,GAAuB,OAAvC;AAAgD,QAAA,KAAK,EAAEA;AAAvD,QADpI,EAECe,KAAK,CAACvC,WAAN,GACOuC,KAAK,CAACtC,WAAN,gBAAoB,oBAAC,KAAD;AAAO,QAAA,MAAM,EAAE4C,OAAO,CAAC,iCAAD,CAAtB;AAA2D,QAAA,KAAK,EAAE;AAAEhB,UAAAA,MAAM,EAAE,EAAV;AAAcC,UAAAA,KAAK,EAAE;AAArB;AAAlE,QAApB,gBAAsH,oBAAC,KAAD;AAAO,QAAA,MAAM,EAAE;AAAEgB,UAAAA,GAAG,EAAE,KAAKvD,KAAL,CAAWlB,YAAX,CAAwB,mBAAxB;AAAP,SAAf;AAAsE,QAAA,KAAK,EAAE;AAAEwD,UAAAA,MAAM,EAAE,EAAV;AAAcC,UAAAA,KAAK,EAAE;AAArB;AAA7E,QAD7H,GAESS,KAAK,CAACtC,WAAN,gBACD,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAI;AAAC4B,UAAAA,MAAM,EAAC,EAAR;AAAWC,UAAAA,KAAK,EAAC,EAAjB;AAAoBC,UAAAA,eAAe,EAAC,OAApC;AAA4CC,UAAAA,YAAY,EAAC,EAAzD;AAA4DS,UAAAA,cAAc,EAAC,QAA3E;AAAoFC,UAAAA,UAAU,EAAC;AAA/F;AAAf,sBAAyH,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE;AAACnB,UAAAA,KAAK,EAAC,OAAP;AAAewB,UAAAA,QAAQ,EAAC;AAAxB;AAAb,kBAAzH,CADC,gBAEC,oBAAC,KAAD;AAAO,QAAA,MAAM,EAAEF,OAAO,CAAC,2BAAD,CAAtB;AAAqD,QAAA,KAAK,EAAE;AAAEhB,UAAAA,MAAM,EAAE,EAAV;AAAcC,UAAAA,KAAK,EAAE;AAArB;AAA5D,QANX,EAOCN,KAAK,IAAI,KAAKjC,KAAL,CAAWjB,SAAX,CAAqB+B,MAArB,GAA4B,CAArC,GAAyC,KAAKd,KAAL,CAAWjB,SAAX,CAAqBkD,KAAK,GAAC,CAA3B,EAA8BvB,WAA9B,gBAA4C,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAE;AAAE4B,UAAAA,MAAM,EAAE,CAAV;AAAaC,UAAAA,KAAK,EAAE,EAApB;AAAwBc,UAAAA,SAAS,EAAE,QAAnC;AAA8Cb,UAAAA,eAAe,EAAEP,KAAK,IAAI,KAAKjC,KAAL,CAAWjB,SAAX,CAAqB+B,MAArB,GAA4B,CAArC,GAAyC,OAAzC,GAAmD;AAAlH;AAAb,QAA5C,gBAAwL,oBAAC,OAAD;AAAS,QAAA,KAAK,EAAEmB,KAAK,IAAI,KAAKjC,KAAL,CAAWjB,SAAX,CAAqB+B,MAArB,GAA8B,CAAvC,GAA2C,OAA3C,GAAqD,OAArE;AAA8E,QAAA,KAAK,EAAEmB;AAArF,QAAjO,gBAAgU,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAI;AAACM,UAAAA,KAAK,EAAC;AAAP;AAAf,QAPjU,CADJ,eAUI,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAI;AAACkB,UAAAA,SAAS,EAAE,QAAZ;AAAqBzB,UAAAA,KAAK,EAAEgB,KAAK,CAACvC,WAAN,iDAAoB,KAAKiD,KAAL,CAAWC,KAA/B,sDAAoB,kBAAkBC,gBAAtC,yEAA0D,OAA1D,mDAAoE,KAAKF,KAAL,CAAWC,KAA/E,uDAAoE,mBAAkBE,gBAAtF,2EAA0G;AAAtI;AAAf,SAAgKb,KAAK,CAACvC,WAAN,GACxJuC,KAAK,CAACtC,WAAN,GAAoB,KAApB,GAA4B,MAD4H,GAEtJsC,KAAK,CAACtC,WAAN,GAAoB,SAAOuC,GAA3B,GAAiC,SAAOA,GAFlD,CAVJ,CADA;AAgBH,KAlBD;;AAmBA,wBACI,oBAAC,gBAAD;AAAkB,MAAA,KAAK,EAAEa,MAAM,CAACC,IAAhC;AAAsC,MAAA,OAAO,EAAI,MAAI;AACjDpF,QAAAA,IAAI,CAACqF,mBAAL;AACH;AAFD,oBAGI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAE1B,QAAAA,MAAM,EAAE;AAAV;AAAb,MAHJ,eAII,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAEkB,QAAAA,QAAQ,EAAE,EAAZ;AAAgBxB,QAAAA,KAAK,kDAAE,KAAK0B,KAAL,CAAWC,KAAb,uDAAE,mBAAkBM,iBAApB,2EAAyC,OAA9D;AAAuEC,QAAAA,UAAU,iDAAE,KAAKR,KAAL,CAAWC,KAAb,uDAAE,mBAAkBO,UAApB,yEAAkC;AAAnH;AAAb,gCACK,KAAKlE,KAAL,CAAWlB,YAAX,CAAwB,kBAAxB,CADL,yEACoD,KADpD,CAJJ,eAOI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAEwD,QAAAA,MAAM,EAAE;AAAV;AAAb,MAPJ,eAQI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAI;AAACJ,QAAAA,aAAa,EAAE,KAAhB;AAAsBK,QAAAA,KAAK,EAAC,GAA5B;AAAgCW,QAAAA,cAAc,EAAE;AAAhD;AAAf,oBACI,oBAAC,IAAD;AAAO,MAAA,aAAa,EAAE,CAAtB;AAAyB,MAAA,KAAK,EAAE;AAAEM,QAAAA,QAAQ,EAAE,EAAZ;AAAgBxB,QAAAA,KAAK,kDAAE,KAAK0B,KAAL,CAAWC,KAAb,uDAAE,mBAAkBQ,uBAApB,2EAA+C,MAApE;AAA4ED,QAAAA,UAAU,kDAAE,KAAKR,KAAL,CAAWC,KAAb,uDAAE,mBAAkBO,UAApB,2EAAkC,oBAAxH;AAA6IT,QAAAA,SAAS,EAAE;AAAxJ;AAAhC,OACC,KAAKzD,KAAL,CAAWlB,YAAX,CAAwB,aAAxB,KAA0C,IAA1C,GAAiD,KAAKkB,KAAL,CAAWlB,YAAX,CAAwB,aAAxB,EAAuCsF,OAAvC,CAA+C,eAA/C,EAAgE,EAAhE,CAAjD,GAAuH,KADxH,CADJ,CARJ,eAaI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAE9B,QAAAA,MAAM,EAAE;AAAV;AAAb,MAbJ,eAcI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEwB,MAAM,CAACO;AAApB,oBACI,oBAAC,IAAD,qBACA,oBAAC,eAAD;AACI,MAAA,IAAI,EAAE,KAAKrE,KAAL,CAAWjB,SADrB;AAEI,MAAA,KAAK,EAAI;AAACsE,QAAAA,SAAS,EAAE;AAAZ,OAFb;AAGI,MAAA,kBAAkB,EAAE,CAHxB;AAII,MAAA,UAAU,EAAE,IAJhB;AAKI,MAAA,UAAU,EAAE,CAAC;AAAEiB,QAAAA,IAAF;AAAQrC,QAAAA;AAAR,OAAD,kBAAqB,oBAAC,IAAD;AAAM,QAAA,KAAK,EAAEqC,IAAb;AAAmB,QAAA,KAAK,EAAErC;AAA1B,QALrC;AAMI,MAAA,YAAY,EAAES,YANlB;AAOI,MAAA,OAAO,EAAEC;AAPb,MADA,CADJ,CAdJ,eA2BI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AAAEL,QAAAA,MAAM,EAAE;AAAV;AAAb,MA3BJ,eA4BI,oBAAC,gBAAD;AACI,MAAA,KAAK,EAAEwB,MAAM,CAACS,MADlB;AAEI,MAAA,OAAO,EAAE,YAAY;AACjB,cAAMC,OAAO,GAAG,KAAKxE,KAAL,CAAWlB,YAAX,CAAwB,UAAxB,CAAhB;AACA,cAAMsC,GAAG,GAAG,KAAKpB,KAAL,CAAWlB,YAAX,CAAwB,UAAxB,CAAZ;;AACA,YAAG0F,OAAO,IAAI,IAAd,EAAmB;AACf,cAAIpD,GAAG,IAAI,EAAX,EAAe;AACX,kBAAMqD,SAAS,GAAG,MAAMhG,OAAO,CAACiG,UAAR,CAAmBtD,GAAnB,CAAxB;;AACA,gBAAIqD,SAAJ,EAAe;AACX,oBAAMhG,OAAO,CAACkG,OAAR,CAAgBvD,GAAhB,CAAN;AACH;AACJ;AACJ,SAPD,MAOK;AACD,eAAKD,UAAL;AACH;AACJ;AAfL,oBAgBI,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE;AACTqC,QAAAA,QAAQ,EAAE,EADD;AAETxB,QAAAA,KAAK,kDAAE,KAAK0B,KAAL,CAAWC,KAAb,uDAAE,mBAAkBiB,mBAApB,2EAA2C,OAFvC;AAGTC,QAAAA,WAAW,EAAE,EAHJ;AAITC,QAAAA,YAAY,EAAE,EAJL;AAKTZ,QAAAA,UAAU,EAAE;AALH;AAAb,OAMI,KAAKlE,KAAL,CAAWlB,YAAX,CAAwB,YAAxB,IAAwC,YAAxC,GAAuD,KAAKkB,KAAL,CAAWlB,YAAX,CAAwB,aAAxB,KAA0C,EAA1C,GAA+C,KAAKkB,KAAL,CAAWlB,YAAX,CAAwB,aAAxB,CAA/C,GAAwF,UANnJ,CAhBJ,CA5BJ,CADJ;AAuDD;;AA/L0C;;AAkM7C,MAAMgF,MAAM,GAAG1F,UAAU,CAAC2G,MAAX,CAAkB;AAC7BhB,EAAAA,IAAI,EAAE;AACFvB,IAAAA,eAAe,EAAE,OADf;AAEFwC,IAAAA,SAAS,EAAE,CAFT;AAGF1C,IAAAA,MAAM,EAAE,GAHN;AAIFC,IAAAA,KAAK,EAAE,KAJL;AAKFY,IAAAA,UAAU,EAAE,QALV;AAMFV,IAAAA,YAAY,EAAE;AANZ,GADuB;AAS7B4B,EAAAA,aAAa,EAAE;AAAE/B,IAAAA,MAAM,EAAE,EAAV;AAAaJ,IAAAA,aAAa,EAAE,KAA5B;AAAkCgB,IAAAA,cAAc,EAAE,QAAlD;AAA2DX,IAAAA,KAAK,EAAC,MAAjE;AAAwEY,IAAAA,UAAU,EAAC,QAAnF;AAA4FC,IAAAA,YAAY,EAAC,QAAzG;AAAkHZ,IAAAA,eAAe,EAAE;AAAnI,GATc;AAU7B+B,EAAAA,MAAM,EAAE;AAAE/B,IAAAA,eAAe,EAAE,SAAnB;AAA8BF,IAAAA,MAAM,EAAE,EAAtC;AAA0CG,IAAAA,YAAY,EAAE,CAAxD;AAA2DS,IAAAA,cAAc,EAAE;AAA3E;AAVqB,CAAlB,CAAf;AAaA,eAAetE,oBAAf","sourcesContent":["// @ts-nocheck\nimport React, { Component } from \"react\";\nimport { View, Text, TouchableOpacity,StyleSheet,Image, VirtualizedList, Platform, ToastAndroid, Alert, Linking, NativeModules } from \"react-native\";\nimport Toast from 'react-native-simple-toast';\nconst { Flyy } = NativeModules;\n\nclass FlyyCheckinComponent extends Component {\n\n state = {\n mileStoneData: [],\n checkinOffer: [],\n listItems: [],\n persons: [1,2,3,4,5],\n partnerId: \"\",\n userId: \"\",\n appData: \"\",\n environment: 0\n };\n\n async componentDidMount(){\n try {\n const data = await Flyy.getUserData();\n const appData = await Flyy.getAppData();\n this.setState({ \n partnerId : data[\"partner_id\"],\n userId : data[\"user_id\"],\n environment : data[\"environment\"],\n appData: appData\n })\n } catch (e) {\n console.error(e);\n }\n\n await this.fetchData();\n }\n\n\n async fetchData(){\n this.setState({ listItems : []})\n const resp = await fetch(`https://${this.state.environment == 0 ? \"ghc-stage\" : \"ghc\"}.theflyy.com/api/v7/flyy_app_info`, {\n headers: {\n \"X-Key\": this.state.partnerId,\n \"Content-Type\": \"application/json\",\n \"X-App-Data\": this.state.appData\n }\n });\n const data = await resp.json();\n for (var key in data.info.offers) {\n if (data.info.offers[key].offer_type_code === \"checkin\") {\n this.setState({ checkinOffer : data.info.offers[key] })\n this.setState({ mileStoneData : data.info.offers[key].milestones })\n break;\n }\n }\n var tempData = [];\n var isRewardDay = false;\n var isCheckedIn = false;\n for (let i = 0; i < this.state.checkinOffer.total_streak; i++) {\n for (let j = 0; j < this.state.mileStoneData.length; j++) {\n if (i + 1 === parseInt(this.state.mileStoneData[j].value)) {\n isRewardDay = true;\n }\n }\n if (i+1 <= this.state.checkinOffer.streak) {\n isCheckedIn = true;\n }\n tempData.push({ \"isRewardDay\": isRewardDay, \"isCheckedIn\": isCheckedIn })\n isRewardDay = false;\n isCheckedIn = false;\n }\n this.setState({ listItems : tempData })\n }\n\n\n async checkInApi() {\n var url = `https://${this.state.environment == 0 ? \"ghc-stage\" : \"ghc\"}.theflyy.com/api/v1/checkin?offer_id=` + this.state.checkinOffer.id.toString();\n const resp = await fetch(url, {\n headers: {\n \"X-Key\": this.state.partnerId,\n \"Content-Type\": \"application/json\",\n \"X-App-Data\": this.state.appData\n }\n });\n const data = await resp.json();\n if (data.success) {\n this.fetchData()\n } else {\n this.notifyMessage(data.message)\n }\n }\n\n notifyMessage(msg:string) {\n if (Platform.OS === 'android') {\n ToastAndroid.show(msg, ToastAndroid.SHORT)\n } else {\n // Toast.showWithGravity(msg, Toast.SHORT, Toast.BOTTOM);\n }\n }\n\n render() {\n const Divider = ({color = \"black\",index}:{color:any,index:any}) => {\n return (\n <View style={{ flexDirection: 'row'}}>\n {React.Children.toArray(\n this.state.persons.map(() => {\n return (\n <View style={{ flexDirection: 'row' }}>\n <View style={{ height: 1, width: 2, backgroundColor: color, borderRadius: 2 }} />\n <View style={{ width: 1, backgroundColor: \"white\", borderRadius: 2 }} />\n </View>\n );\n })\n )}\n </View>\n )\n }\n const getItemCount = () => this.state.listItems.length;\n const getItem = (data:any, index:any) => ({\n id: Math.random().toString(12).substring(0),\n isRewardDay: data[index].isRewardDay,\n isCheckedIn: data[index].isCheckedIn,\n index: index\n });\n const Item = ({ title, index }: {title:any,index:any}) => {\n const day = index + 1;\n return (\n <View style = {{justifyContent: \"center\",alignItems:'center',alignContent:'center'}}>\n <View style = {{flexDirection : 'row',height: 35,justifyContent:'center',alignItems:'center'}}>\n {title.isCheckedIn? <View style={{ height: 1, width: 15, alignSelf: \"center\" , backgroundColor: index == 0 ? \"white\" : \"black\"}} />:<Divider color={index == 0 ? \"white\" : \"black\"} index={index}/>}\n {title.isRewardDay ?\n title.isCheckedIn ? <Image source={require('./assets/images/reward_flyy.png')} style={{ height: 20, width: 15 }} /> : <Image source={{ uri: this.state.checkinOffer[\"currency_icon_url\"] }} style={{ height: 20, width: 20 }} />\n : title.isCheckedIn ?\n <View style = {{height:17,width:17,backgroundColor:\"black\",borderRadius:15,justifyContent:'center',alignItems:'center'}}><Text style={{color:\"white\",fontSize:10}}>✓</Text></View>\n : <Image source={require('./assets/images/radio.png')} style={{ height: 20, width: 20 }} />}\n {index != this.state.listItems.length-1 ? this.state.listItems[index+1].isCheckedIn ? <View style={{ height: 1, width: 15, alignSelf: \"center\" , backgroundColor: index == this.state.listItems.length-1 ? \"white\" : \"black\"}} />:<Divider color={index == this.state.listItems.length - 1 ? \"white\" : \"black\"} index={index}/>: <View style = {{width:15}}/>}\n </View>\n <Text style = {{textAlign: 'center',color: title.isRewardDay ? this.props.style?.checkInEarnColor ?? \"black\" : this.props.style?.checkInDaysColor ?? \"black\"}}>{title.isRewardDay ?\n title.isCheckedIn ? \"Won\" : \"Earn\"\n : title.isCheckedIn ? \"Day \"+day : \"Day \"+day}</Text>\n </View>\n )\n }\n return (\n <TouchableOpacity style={styles.main} onPress = {()=>{\n Flyy.openFlyyCheckinPage();\n }}>\n <View style={{ height: 10 }} />\n <Text style={{ fontSize: 20, color: this.props.style?.checkInTitleColor ?? \"black\", fontFamily: this.props.style?.fontFamily ?? \"Montserrat-Regular\" }}>\n {this.state.checkinOffer[\"offer_type_title\"] ?? \"N/A\"}\n </Text>\n <View style={{ height: 10 }} />\n <View style = {{flexDirection: 'row',width:250,justifyContent: 'center'}}>\n <Text numberOfLines={1} style={{ fontSize: 18, color: this.props.style?.checkInDescriptionColor ?? \"grey\", fontFamily: this.props.style?.fontFamily ?? \"Montserrat-Regular\",textAlign: \"center\"}}>\n {this.state.checkinOffer[\"description\"] != null ? this.state.checkinOffer[\"description\"].replace(/(<([^>]+)>)/ig, '') : \"N/A\"}\n </Text>\n </View>\n <View style={{ height: 10 }} />\n <View style={styles.listContainer}>\n <View>\n <VirtualizedList\n data={this.state.listItems}\n style = {{alignSelf: \"center\"}}\n initialNumToRender={4}\n horizontal={true}\n renderItem={({ item, index }) => <Item title={item} index={index} />}\n getItemCount={getItemCount}\n getItem={getItem}\n />\n </View>\n </View>\n <View style={{ height: 10 }} />\n <TouchableOpacity\n style={styles.button}\n onPress={async () => {\n const eventId = this.state.checkinOffer[\"event_id\"];\n const url = this.state.checkinOffer[\"deeplink\"];\n if(eventId != null){\n if (url != \"\") {\n const supported = await Linking.canOpenURL(url);\n if (supported) {\n await Linking.openURL(url);\n }\n }\n }else{\n this.checkInApi();\n }\n }}>\n <Text style={{\n fontSize: 20,\n color: this.props.style?.checkInBtnTextColor ?? \"white\",\n paddingLeft: 10, \n paddingRight: 10,\n fontFamily: \"Montserrat-Regular\"\n }}>{this.state.checkinOffer[\"checked_in\"] ? \"Checked In\" : this.state.checkinOffer[\"button_text\"] != \"\" ? this.state.checkinOffer[\"button_text\"] : \"Check In\"}</Text>\n </TouchableOpacity>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n main: {\n backgroundColor: \"white\",\n elevation: 5,\n height: 210,\n width: \"90%\",\n alignItems: \"center\",\n borderRadius: 10\n },\n listContainer: { height: 60,flexDirection: \"row\",justifyContent: \"center\",width:\"100%\",alignItems:'center',alignContent:'center',backgroundColor: \"white\"},\n button: { backgroundColor: \"#f57242\", height: 35, borderRadius: 5, justifyContent: \"center\" },\n});\n\nexport default FlyyCheckinComponent;"]}
@@ -1,19 +0,0 @@
1
- import { Component } from "react";
2
- declare class FlyyCheckinComponent extends Component {
3
- state: {
4
- mileStoneData: never[];
5
- checkinOffer: never[];
6
- listItems: never[];
7
- persons: number[];
8
- partnerId: string;
9
- userId: string;
10
- appData: string;
11
- environment: number;
12
- };
13
- componentDidMount(): Promise<void>;
14
- fetchData(): Promise<void>;
15
- checkInApi(): Promise<void>;
16
- notifyMessage(msg: string): void;
17
- render(): JSX.Element;
18
- }
19
- export default FlyyCheckinComponent;
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,214 +0,0 @@
1
- // @ts-nocheck
2
- import React, { Component } from "react";
3
- import { View, Text, TouchableOpacity,StyleSheet,Image, VirtualizedList, Platform, ToastAndroid, Alert, Linking, NativeModules } from "react-native";
4
- import Toast from 'react-native-simple-toast';
5
- const { Flyy } = NativeModules;
6
-
7
- class FlyyCheckinComponent extends Component {
8
-
9
- state = {
10
- mileStoneData: [],
11
- checkinOffer: [],
12
- listItems: [],
13
- persons: [1,2,3,4,5],
14
- partnerId: "",
15
- userId: "",
16
- appData: "",
17
- environment: 0
18
- };
19
-
20
- async componentDidMount(){
21
- try {
22
- const data = await Flyy.getUserData();
23
- const appData = await Flyy.getAppData();
24
- this.setState({
25
- partnerId : data["partner_id"],
26
- userId : data["user_id"],
27
- environment : data["environment"],
28
- appData: appData
29
- })
30
- } catch (e) {
31
- console.error(e);
32
- }
33
-
34
- await this.fetchData();
35
- }
36
-
37
-
38
- async fetchData(){
39
- this.setState({ listItems : []})
40
- const resp = await fetch(`https://${this.state.environment == 0 ? "ghc-stage" : "ghc"}.theflyy.com/api/v7/flyy_app_info`, {
41
- headers: {
42
- "X-Key": this.state.partnerId,
43
- "Content-Type": "application/json",
44
- "X-App-Data": this.state.appData
45
- }
46
- });
47
- const data = await resp.json();
48
- for (var key in data.info.offers) {
49
- if (data.info.offers[key].offer_type_code === "checkin") {
50
- this.setState({ checkinOffer : data.info.offers[key] })
51
- this.setState({ mileStoneData : data.info.offers[key].milestones })
52
- break;
53
- }
54
- }
55
- var tempData = [];
56
- var isRewardDay = false;
57
- var isCheckedIn = false;
58
- for (let i = 0; i < this.state.checkinOffer.total_streak; i++) {
59
- for (let j = 0; j < this.state.mileStoneData.length; j++) {
60
- if (i + 1 === parseInt(this.state.mileStoneData[j].value)) {
61
- isRewardDay = true;
62
- }
63
- }
64
- if (i+1 <= this.state.checkinOffer.streak) {
65
- isCheckedIn = true;
66
- }
67
- tempData.push({ "isRewardDay": isRewardDay, "isCheckedIn": isCheckedIn })
68
- isRewardDay = false;
69
- isCheckedIn = false;
70
- }
71
- this.setState({ listItems : tempData })
72
- }
73
-
74
-
75
- async checkInApi() {
76
- var url = `https://${this.state.environment == 0 ? "ghc-stage" : "ghc"}.theflyy.com/api/v1/checkin?offer_id=` + this.state.checkinOffer.id.toString();
77
- const resp = await fetch(url, {
78
- headers: {
79
- "X-Key": this.state.partnerId,
80
- "Content-Type": "application/json",
81
- "X-App-Data": this.state.appData
82
- }
83
- });
84
- const data = await resp.json();
85
- if (data.success) {
86
- this.fetchData()
87
- } else {
88
- this.notifyMessage(data.message)
89
- }
90
- }
91
-
92
- notifyMessage(msg:string) {
93
- if (Platform.OS === 'android') {
94
- ToastAndroid.show(msg, ToastAndroid.SHORT)
95
- } else {
96
- // Toast.showWithGravity(msg, Toast.SHORT, Toast.BOTTOM);
97
- }
98
- }
99
-
100
- render() {
101
- const Divider = ({color = "black",index}:{color:any,index:any}) => {
102
- return (
103
- <View style={{ flexDirection: 'row'}}>
104
- {React.Children.toArray(
105
- this.state.persons.map(() => {
106
- return (
107
- <View style={{ flexDirection: 'row' }}>
108
- <View style={{ height: 1, width: 2, backgroundColor: color, borderRadius: 2 }} />
109
- <View style={{ width: 1, backgroundColor: "white", borderRadius: 2 }} />
110
- </View>
111
- );
112
- })
113
- )}
114
- </View>
115
- )
116
- }
117
- const getItemCount = () => this.state.listItems.length;
118
- const getItem = (data:any, index:any) => ({
119
- id: Math.random().toString(12).substring(0),
120
- isRewardDay: data[index].isRewardDay,
121
- isCheckedIn: data[index].isCheckedIn,
122
- index: index
123
- });
124
- const Item = ({ title, index }: {title:any,index:any}) => {
125
- const day = index + 1;
126
- return (
127
- <View style = {{justifyContent: "center",alignItems:'center',alignContent:'center'}}>
128
- <View style = {{flexDirection : 'row',height: 35,justifyContent:'center',alignItems:'center'}}>
129
- {title.isCheckedIn? <View style={{ height: 1, width: 15, alignSelf: "center" , backgroundColor: index == 0 ? "white" : "black"}} />:<Divider color={index == 0 ? "white" : "black"} index={index}/>}
130
- {title.isRewardDay ?
131
- title.isCheckedIn ? <Image source={require('./assets/images/reward_flyy.png')} style={{ height: 20, width: 15 }} /> : <Image source={{ uri: this.state.checkinOffer["currency_icon_url"] }} style={{ height: 20, width: 20 }} />
132
- : title.isCheckedIn ?
133
- <View style = {{height:17,width:17,backgroundColor:"black",borderRadius:15,justifyContent:'center',alignItems:'center'}}><Text style={{color:"white",fontSize:10}}>✓</Text></View>
134
- : <Image source={require('./assets/images/radio.png')} style={{ height: 20, width: 20 }} />}
135
- {index != this.state.listItems.length-1 ? this.state.listItems[index+1].isCheckedIn ? <View style={{ height: 1, width: 15, alignSelf: "center" , backgroundColor: index == this.state.listItems.length-1 ? "white" : "black"}} />:<Divider color={index == this.state.listItems.length - 1 ? "white" : "black"} index={index}/>: <View style = {{width:15}}/>}
136
- </View>
137
- <Text style = {{textAlign: 'center',color: title.isRewardDay ? this.props.style?.checkInEarnColor ?? "black" : this.props.style?.checkInDaysColor ?? "black"}}>{title.isRewardDay ?
138
- title.isCheckedIn ? "Won" : "Earn"
139
- : title.isCheckedIn ? "Day "+day : "Day "+day}</Text>
140
- </View>
141
- )
142
- }
143
- return (
144
- <TouchableOpacity style={styles.main} onPress = {()=>{
145
- Flyy.openFlyyCheckinPage();
146
- }}>
147
- <View style={{ height: 10 }} />
148
- <Text style={{ fontSize: 20, color: this.props.style?.checkInTitleColor ?? "black", fontFamily: this.props.style?.fontFamily ?? "Montserrat-Regular" }}>
149
- {this.state.checkinOffer["offer_type_title"] ?? "N/A"}
150
- </Text>
151
- <View style={{ height: 10 }} />
152
- <View style = {{flexDirection: 'row',width:250,justifyContent: 'center'}}>
153
- <Text numberOfLines={1} style={{ fontSize: 18, color: this.props.style?.checkInDescriptionColor ?? "grey", fontFamily: this.props.style?.fontFamily ?? "Montserrat-Regular",textAlign: "center"}}>
154
- {this.state.checkinOffer["description"] != null ? this.state.checkinOffer["description"].replace(/(<([^>]+)>)/ig, '') : "N/A"}
155
- </Text>
156
- </View>
157
- <View style={{ height: 10 }} />
158
- <View style={styles.listContainer}>
159
- <View>
160
- <VirtualizedList
161
- data={this.state.listItems}
162
- style = {{alignSelf: "center"}}
163
- initialNumToRender={4}
164
- horizontal={true}
165
- renderItem={({ item, index }) => <Item title={item} index={index} />}
166
- getItemCount={getItemCount}
167
- getItem={getItem}
168
- />
169
- </View>
170
- </View>
171
- <View style={{ height: 10 }} />
172
- <TouchableOpacity
173
- style={styles.button}
174
- onPress={async () => {
175
- const eventId = this.state.checkinOffer["event_id"];
176
- const url = this.state.checkinOffer["deeplink"];
177
- if(eventId != null){
178
- if (url != "") {
179
- const supported = await Linking.canOpenURL(url);
180
- if (supported) {
181
- await Linking.openURL(url);
182
- }
183
- }
184
- }else{
185
- this.checkInApi();
186
- }
187
- }}>
188
- <Text style={{
189
- fontSize: 20,
190
- color: this.props.style?.checkInBtnTextColor ?? "white",
191
- paddingLeft: 10,
192
- paddingRight: 10,
193
- fontFamily: "Montserrat-Regular"
194
- }}>{this.state.checkinOffer["checked_in"] ? "Checked In" : this.state.checkinOffer["button_text"] != "" ? this.state.checkinOffer["button_text"] : "Check In"}</Text>
195
- </TouchableOpacity>
196
- </TouchableOpacity>
197
- );
198
- }
199
- }
200
-
201
- const styles = StyleSheet.create({
202
- main: {
203
- backgroundColor: "white",
204
- elevation: 5,
205
- height: 210,
206
- width: "90%",
207
- alignItems: "center",
208
- borderRadius: 10
209
- },
210
- listContainer: { height: 60,flexDirection: "row",justifyContent: "center",width:"100%",alignItems:'center',alignContent:'center',backgroundColor: "white"},
211
- button: { backgroundColor: "#f57242", height: 35, borderRadius: 5, justifyContent: "center" },
212
- });
213
-
214
- export default FlyyCheckinComponent;