be-components 6.6.1 → 6.6.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 (78) hide show
  1. package/lib/commonjs/Engage/components/CompetitionCard.js +54 -1
  2. package/lib/commonjs/Engage/components/CompetitionCard.js.map +1 -1
  3. package/lib/commonjs/Group/api/index.js +203 -0
  4. package/lib/commonjs/Group/api/index.js.map +1 -0
  5. package/lib/commonjs/Group/components/GroupCTAButton.js +85 -0
  6. package/lib/commonjs/Group/components/GroupCTAButton.js.map +1 -0
  7. package/lib/commonjs/Group/components/GroupPlayerActionForm.js +166 -0
  8. package/lib/commonjs/Group/components/GroupPlayerActionForm.js.map +1 -0
  9. package/lib/commonjs/Group/components/ManageGroupForm.js +476 -0
  10. package/lib/commonjs/Group/components/ManageGroupForm.js.map +1 -0
  11. package/lib/commonjs/Group/index.js +671 -0
  12. package/lib/commonjs/Group/index.js.map +1 -0
  13. package/lib/commonjs/index.js +7 -0
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/module/Engage/components/CompetitionCard.js +54 -1
  16. package/lib/module/Engage/components/CompetitionCard.js.map +1 -1
  17. package/lib/module/Group/api/index.js +197 -0
  18. package/lib/module/Group/api/index.js.map +1 -0
  19. package/lib/module/Group/components/GroupCTAButton.js +78 -0
  20. package/lib/module/Group/components/GroupCTAButton.js.map +1 -0
  21. package/lib/module/Group/components/GroupPlayerActionForm.js +159 -0
  22. package/lib/module/Group/components/GroupPlayerActionForm.js.map +1 -0
  23. package/lib/module/Group/components/ManageGroupForm.js +469 -0
  24. package/lib/module/Group/components/ManageGroupForm.js.map +1 -0
  25. package/lib/module/Group/index.js +663 -0
  26. package/lib/module/Group/index.js.map +1 -0
  27. package/lib/module/index.js +2 -1
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/typescript/lib/commonjs/Engage/components/CompetitionCard.d.ts +4 -1
  30. package/lib/typescript/lib/commonjs/Engage/components/CompetitionCard.d.ts.map +1 -1
  31. package/lib/typescript/lib/commonjs/Group/api/index.d.ts +38 -0
  32. package/lib/typescript/lib/commonjs/Group/api/index.d.ts.map +1 -0
  33. package/lib/typescript/lib/commonjs/Group/components/GroupCTAButton.d.ts +10 -0
  34. package/lib/typescript/lib/commonjs/Group/components/GroupCTAButton.d.ts.map +1 -0
  35. package/lib/typescript/lib/commonjs/Group/components/GroupPlayerActionForm.d.ts +9 -0
  36. package/lib/typescript/lib/commonjs/Group/components/GroupPlayerActionForm.d.ts.map +1 -0
  37. package/lib/typescript/lib/commonjs/Group/components/ManageGroupForm.d.ts +10 -0
  38. package/lib/typescript/lib/commonjs/Group/components/ManageGroupForm.d.ts.map +1 -0
  39. package/lib/typescript/lib/commonjs/Group/index.d.ts +12 -0
  40. package/lib/typescript/lib/commonjs/Group/index.d.ts.map +1 -0
  41. package/lib/typescript/lib/commonjs/index.d.ts +1 -0
  42. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -1
  43. package/lib/typescript/lib/module/Engage/components/CompetitionCard.d.ts +4 -1
  44. package/lib/typescript/lib/module/Engage/components/CompetitionCard.d.ts.map +1 -1
  45. package/lib/typescript/lib/module/Group/api/index.d.ts +37 -0
  46. package/lib/typescript/lib/module/Group/api/index.d.ts.map +1 -0
  47. package/lib/typescript/lib/module/Group/components/GroupCTAButton.d.ts +10 -0
  48. package/lib/typescript/lib/module/Group/components/GroupCTAButton.d.ts.map +1 -0
  49. package/lib/typescript/lib/module/Group/components/GroupPlayerActionForm.d.ts +9 -0
  50. package/lib/typescript/lib/module/Group/components/GroupPlayerActionForm.d.ts.map +1 -0
  51. package/lib/typescript/lib/module/Group/components/ManageGroupForm.d.ts +10 -0
  52. package/lib/typescript/lib/module/Group/components/ManageGroupForm.d.ts.map +1 -0
  53. package/lib/typescript/lib/module/Group/index.d.ts +12 -0
  54. package/lib/typescript/lib/module/Group/index.d.ts.map +1 -0
  55. package/lib/typescript/lib/module/index.d.ts +2 -1
  56. package/lib/typescript/lib/module/index.d.ts.map +1 -1
  57. package/lib/typescript/src/Engage/components/CompetitionCard.d.ts +5 -2
  58. package/lib/typescript/src/Engage/components/CompetitionCard.d.ts.map +1 -1
  59. package/lib/typescript/src/Group/api/index.d.ts +47 -0
  60. package/lib/typescript/src/Group/api/index.d.ts.map +1 -0
  61. package/lib/typescript/src/Group/components/GroupCTAButton.d.ts +13 -0
  62. package/lib/typescript/src/Group/components/GroupCTAButton.d.ts.map +1 -0
  63. package/lib/typescript/src/Group/components/GroupPlayerActionForm.d.ts +12 -0
  64. package/lib/typescript/src/Group/components/GroupPlayerActionForm.d.ts.map +1 -0
  65. package/lib/typescript/src/Group/components/ManageGroupForm.d.ts +12 -0
  66. package/lib/typescript/src/Group/components/ManageGroupForm.d.ts.map +1 -0
  67. package/lib/typescript/src/Group/index.d.ts +14 -0
  68. package/lib/typescript/src/Group/index.d.ts.map +1 -0
  69. package/lib/typescript/src/index.d.ts +2 -1
  70. package/lib/typescript/src/index.d.ts.map +1 -1
  71. package/package.json +1 -1
  72. package/src/Engage/components/CompetitionCard.tsx +29 -2
  73. package/src/Group/api/index.ts +176 -0
  74. package/src/Group/components/GroupCTAButton.tsx +57 -0
  75. package/src/Group/components/GroupPlayerActionForm.tsx +137 -0
  76. package/src/Group/components/ManageGroupForm.tsx +239 -0
  77. package/src/Group/index.tsx +497 -0
  78. package/src/index.tsx +2 -0
@@ -0,0 +1,671 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _Themed = require("../Components/Themed");
9
+ var _api = require("./api");
10
+ var _reactNative = require("react-native");
11
+ var _Components = require("../Components");
12
+ var _useColors = require("../constants/useColors");
13
+ var _momentMini = _interopRequireDefault(require("moment-mini"));
14
+ var _ManageGroupForm = _interopRequireDefault(require("./components/ManageGroupForm"));
15
+ var _GroupPlayerActionForm = _interopRequireDefault(require("./components/GroupPlayerActionForm"));
16
+ var _CompetitionCard = _interopRequireDefault(require("../Engage/components/CompetitionCard"));
17
+ var _SocialComponents = require("../SocialComponents");
18
+ var _Pagination = _interopRequireDefault(require("../Components/Pagination"));
19
+ var _GroupCTAButton = _interopRequireDefault(require("./components/GroupCTAButton"));
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ 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); }
22
+ const sections = ['header', 'chat', 'me', 'toggle', 'competition_toggle', 'members', 'competitions', 'activity'];
23
+ const GroupComponent = ({
24
+ group_id,
25
+ player,
26
+ mode,
27
+ onInvitePlayer,
28
+ onSelectCompetition,
29
+ onSelectChat,
30
+ onSelectPlayer
31
+ }) => {
32
+ const Colors = (0, _useColors.useColors)();
33
+ const leader_options = [{
34
+ to: (0, _momentMini.default)().subtract(1, 'days').unix(),
35
+ from: (0, _momentMini.default)().unix(),
36
+ option: '24_hours',
37
+ label: '24 Hours'
38
+ }, {
39
+ to: (0, _momentMini.default)().subtract(7, 'days').unix(),
40
+ from: (0, _momentMini.default)().unix(),
41
+ option: '7_days',
42
+ label: '7 Days'
43
+ }, {
44
+ to: (0, _momentMini.default)().subtract(30, 'days').unix(),
45
+ from: (0, _momentMini.default)().unix(),
46
+ option: '30_days',
47
+ label: '30 Days'
48
+ }, {
49
+ to: (0, _momentMini.default)().subtract(60, 'days').unix(),
50
+ from: (0, _momentMini.default)().unix(),
51
+ option: '60_days',
52
+ label: '60 Days'
53
+ }];
54
+ const [activity_data, setActivityData] = (0, _react.useState)({
55
+ loading: false,
56
+ posts: [],
57
+ orders: [],
58
+ offset: 0
59
+ });
60
+ const [comp_data, setCompData] = (0, _react.useState)({
61
+ loading: false,
62
+ toggle: 'upcoming',
63
+ competition_payout_types: [],
64
+ competition_result_types: [],
65
+ competition_types: [],
66
+ active_competitions: [],
67
+ competition_players: [],
68
+ competition_records: [],
69
+ competition_results: [],
70
+ offset: 0
71
+ });
72
+ const [group_analytics, setGroupAnalytics] = (0, _react.useState)({
73
+ loading: false,
74
+ time_option: leader_options[0],
75
+ order_analytics: []
76
+ });
77
+ const {
78
+ time_option,
79
+ order_analytics
80
+ } = group_analytics;
81
+ const [group_data, setGroupData] = (0, _react.useState)({
82
+ loading: false,
83
+ group_messages: [],
84
+ editing: false,
85
+ show_player_status: false,
86
+ active_toggle: 'members',
87
+ group_players: [],
88
+ players: []
89
+ });
90
+ const {
91
+ loading,
92
+ group,
93
+ active_toggle,
94
+ editing,
95
+ show_player_status,
96
+ group_messages,
97
+ group_players,
98
+ my_group_player,
99
+ players
100
+ } = group_data;
101
+ const {
102
+ sorted_players,
103
+ player_analytics
104
+ } = _api.GroupHelpers.sortMembers(group_players, order_analytics);
105
+ (0, _react.useEffect)(() => {
106
+ getGroupData(group_id);
107
+ }, [group_id]);
108
+ (0, _react.useEffect)(() => {
109
+ getToggleData(active_toggle);
110
+ }, [active_toggle]);
111
+ const getToggleData = async toggle => {
112
+ switch (toggle) {
113
+ case 'members':
114
+ if (!time_option) {
115
+ return;
116
+ }
117
+ return getGroupAnalytics(group_id, time_option);
118
+ case 'competitions':
119
+ return getCompetitionData(comp_data.toggle, 0);
120
+ case 'activity':
121
+ return getActitiyData(0);
122
+ default:
123
+ return;
124
+ }
125
+ };
126
+ const getActitiyData = async page => {
127
+ setActivityData({
128
+ ...activity_data,
129
+ loading: false
130
+ });
131
+ const activity = await _api.GroupApi.getPostsByGroupId(group_id, page);
132
+ let order_ids = [];
133
+ activity.filter(a => a.memo_orders).map(mo => mo.memo_orders.map(o => order_ids.push(o)));
134
+ let activity_orders = await _api.GroupApi.getBulkOrders(order_ids);
135
+ setActivityData({
136
+ ...activity_data,
137
+ loading: false,
138
+ offset: page,
139
+ orders: activity_orders,
140
+ posts: activity.sort((a, b) => (0, _momentMini.default)(a.create_datetime).unix() - (0, _momentMini.default)(b.create_datetime).unix())
141
+ });
142
+ };
143
+ const getCompetitionData = async (type, page) => {
144
+ setCompData({
145
+ ...comp_data,
146
+ loading: true
147
+ });
148
+ let resp = {
149
+ competitions: [],
150
+ competition_players: [],
151
+ competition_records: [],
152
+ competition_results: []
153
+ };
154
+ if (type == 'upcoming') {
155
+ resp = await _api.GroupApi.getActiveCompetitions(group_id);
156
+ } else {
157
+ resp = await _api.GroupApi.getHistoryCompetitions(group_id, page);
158
+ }
159
+ const opts = await _api.GroupApi.getCompetitionOptions();
160
+ setCompData({
161
+ ...comp_data,
162
+ loading: false,
163
+ toggle: type,
164
+ competition_players: resp.competition_players,
165
+ competition_records: resp.competition_records,
166
+ competition_results: resp.competition_results,
167
+ competition_payout_types: opts.competition_payout_types,
168
+ competition_result_types: opts.competition_result_types,
169
+ competition_types: opts.competition_types,
170
+ active_competitions: resp.competitions,
171
+ offset: page
172
+ });
173
+ };
174
+ const getGroupAnalytics = async (id, time_option) => {
175
+ setGroupAnalytics({
176
+ ...group_analytics,
177
+ loading: true
178
+ });
179
+ let analytics = await _api.GroupApi.getGroupAnalytics(id, time_option.to, time_option.from);
180
+ setGroupAnalytics({
181
+ ...group_analytics,
182
+ loading: false,
183
+ time_option: time_option,
184
+ order_analytics: analytics
185
+ });
186
+ };
187
+ const getGroupData = async id => {
188
+ _api.GroupApi.setEnvironment();
189
+ setGroupData({
190
+ ...group_data,
191
+ loading: true
192
+ });
193
+ const g_data = await _api.GroupApi.getGroupById(id);
194
+ if (!g_data) {
195
+ setGroupData({
196
+ ...group_data,
197
+ loading: false
198
+ });
199
+ return alert('Unable to get group information. Please try again later');
200
+ }
201
+ let player_ids = [...new Set(g_data.group_players.map(p => p.player_id).concat(g_data.group_messages.map(m => m.player_id)))];
202
+ let plyers = await _api.GroupApi.getPlayersByIds(player_ids);
203
+ setGroupData({
204
+ ...group_data,
205
+ loading: false,
206
+ players: plyers,
207
+ group: g_data.group,
208
+ show_player_status: !g_data.my_group_player ? true : g_data.my_group_player.status == 'active' ? false : true,
209
+ //Show to join if we can
210
+ group_messages: g_data.group_messages,
211
+ group_players: g_data.group_players,
212
+ my_group_player: g_data.my_group_player
213
+ });
214
+ };
215
+ const renderPlayers = data => {
216
+ const player = players.find(p => p.player_id == data.item.player_id);
217
+ if (!player) {
218
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
219
+ }
220
+ const player_analytic = player_analytics[data.item.player_id];
221
+ return /*#__PURE__*/_react.default.createElement(_Themed.Button, {
222
+ transparent: true,
223
+ style: {
224
+ flexDirection: 'row',
225
+ alignItems: 'center',
226
+ padding: 10,
227
+ borderBottomWidth: 1,
228
+ borderColor: Colors.borders.light,
229
+ borderRadius: 0
230
+ },
231
+ onPress: () => onSelectPlayer(player)
232
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
233
+ float: true,
234
+ style: {
235
+ borderRadius: 100,
236
+ padding: 2
237
+ }
238
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
239
+ source: {
240
+ uri: player.profile_pic
241
+ },
242
+ style: {
243
+ height: 45,
244
+ width: 45,
245
+ borderRadius: 100
246
+ },
247
+ resizeMode: "contain"
248
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
249
+ transparent: true,
250
+ style: {
251
+ flex: 1,
252
+ marginLeft: 10
253
+ }
254
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
255
+ theme: "h1"
256
+ }, "@", player.username), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
257
+ theme: "description",
258
+ style: {
259
+ marginTop: 3
260
+ }
261
+ }, "Joined ", (0, _momentMini.default)(data.item.create_datetime).fromNow())), player_analytic ? /*#__PURE__*/_react.default.createElement(_Themed.Text, {
262
+ theme: "h2"
263
+ }, "ROI ", (player_analytic.roi_pct * 100).toFixed(2), "%") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
264
+ };
265
+ const renderCompetitions = data => {
266
+ const type = comp_data.competition_types.find(t => t.competition_type_id == data.item.competition_type_id);
267
+ const result = comp_data.competition_result_types.find(r => r.competition_result_type_id == data.item.competition_result_type_id);
268
+ if (!type || !result) {
269
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
270
+ }
271
+ const my_result = comp_data.competition_results.find(cr => cr.player_id == player?.player_id && cr.competition_id == data.item.competition_id);
272
+ const my_record = comp_data.competition_records.find(cr => cr.player_id == player?.player_id && cr.competition_id == data.item.competition_id);
273
+ return /*#__PURE__*/_react.default.createElement(_CompetitionCard.default, {
274
+ competition: data.item,
275
+ player: player,
276
+ competition_type: type,
277
+ competition_record: my_record,
278
+ competition_result: my_result,
279
+ competition_result_type: result,
280
+ onCompetitionSelect: onSelectCompetition
281
+ });
282
+ };
283
+ const renderPosts = data => {
284
+ let player = players.find(p => p.player_id == data.item.player_id);
285
+ let orders = activity_data.orders.filter(o => data.item.memo_orders.includes(o.order_id));
286
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
287
+ style: {
288
+ padding: 5
289
+ }
290
+ }, /*#__PURE__*/_react.default.createElement(_SocialComponents.PostCard, {
291
+ post: data.item,
292
+ player: player,
293
+ orders: orders,
294
+ onRequestAuthenticate: () => console.log(''),
295
+ onSelectArticle: () => console.log(''),
296
+ articles: [],
297
+ width: 300,
298
+ onSelectImage: () => console.log(''),
299
+ onSelectPlayer: onSelectPlayer,
300
+ onSelectTag: () => console.log('')
301
+ }));
302
+ };
303
+ const renderSections = data => {
304
+ switch (data.item) {
305
+ case 'header':
306
+ if (!group) {
307
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
308
+ }
309
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
310
+ type: "header",
311
+ style: {
312
+ flexDirection: 'row',
313
+ alignItems: 'center',
314
+ padding: 10,
315
+ borderBottomWidth: 1,
316
+ borderColor: Colors.borders.light
317
+ }
318
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
319
+ source: {
320
+ uri: group.group_image?.url
321
+ },
322
+ style: {
323
+ height: 50,
324
+ width: 50
325
+ },
326
+ resizeMode: "cover"
327
+ }), /*#__PURE__*/_react.default.createElement(_Themed.View, {
328
+ transparent: true,
329
+ style: {
330
+ flex: 1,
331
+ marginLeft: 10,
332
+ marginRight: 10
333
+ }
334
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
335
+ theme: "h1"
336
+ }, group.name), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
337
+ theme: "description",
338
+ style: {
339
+ marginTop: 3
340
+ }
341
+ }, group.description)), player?.player_id == group.group_admin ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
342
+ float: true,
343
+ style: {
344
+ padding: 10
345
+ },
346
+ onPress: () => setGroupData({
347
+ ...group_data,
348
+ editing: true
349
+ })
350
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.EditIcon, {
351
+ size: 14,
352
+ color: Colors.text.h1
353
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
354
+ case 'chat':
355
+ if (!group || !onSelectChat) {
356
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
357
+ }
358
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
359
+ type: "header",
360
+ style: {
361
+ padding: 10,
362
+ borderBottomWidth: 1,
363
+ borderColor: Colors.borders.light
364
+ }
365
+ }, /*#__PURE__*/_react.default.createElement(_GroupCTAButton.default, {
366
+ group: group,
367
+ message_length: 100,
368
+ players: players,
369
+ group_messages: group_messages,
370
+ group_players: group_players,
371
+ onSelectChat: onSelectChat
372
+ }));
373
+ case 'me':
374
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
375
+ type: "row",
376
+ style: {
377
+ padding: 10
378
+ }
379
+ }, player ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
380
+ style: {
381
+ flex: 1
382
+ },
383
+ type: "row",
384
+ transparent: true
385
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
386
+ float: true,
387
+ style: {
388
+ borderRadius: 100,
389
+ padding: 2
390
+ }
391
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
392
+ style: {
393
+ height: 30,
394
+ width: 30,
395
+ borderRadius: 100
396
+ },
397
+ source: {
398
+ uri: player.profile_pic
399
+ },
400
+ resizeMode: "contain"
401
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
402
+ transparent: true,
403
+ style: {
404
+ flex: 1,
405
+ marginLeft: 10
406
+ }
407
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
408
+ theme: "h1"
409
+ }, "@", player.username), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
410
+ theme: "description",
411
+ style: {
412
+ marginTop: 3
413
+ }
414
+ }, "Member since ", (0, _momentMini.default)(player.create_datetime).format('MM/DD/YYYY'))), my_group_player?.status == 'invited' ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
415
+ type: "action",
416
+ title: "INVTED",
417
+ style: {
418
+ padding: 10
419
+ },
420
+ onPress: () => setGroupData({
421
+ ...group_data,
422
+ show_player_status: true
423
+ })
424
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), !my_group_player || my_group_player.status == 'inactive' ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
425
+ type: "success",
426
+ title: "JOIN",
427
+ style: {
428
+ padding: 10
429
+ },
430
+ onPress: () => setGroupData({
431
+ ...group_data,
432
+ show_player_status: true
433
+ })
434
+ }) : my_group_player?.status != 'invited' ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
435
+ type: "error",
436
+ title: "LEAVE",
437
+ style: {
438
+ padding: 10
439
+ },
440
+ onPress: () => setGroupData({
441
+ ...group_data,
442
+ show_player_status: true
443
+ })
444
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
445
+ case 'toggle':
446
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
447
+ style: {
448
+ padding: 10
449
+ }
450
+ }, /*#__PURE__*/_react.default.createElement(_Components.Toggle, {
451
+ options: [{
452
+ key: 'members',
453
+ label: 'Members'
454
+ }, {
455
+ key: 'activity',
456
+ label: 'Activity'
457
+ }, {
458
+ key: 'competitions',
459
+ label: 'Competitions'
460
+ }],
461
+ selected_option: active_toggle,
462
+ onSelectOption: option => setGroupData({
463
+ ...group_data,
464
+ active_toggle: option
465
+ })
466
+ }), loading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
467
+ size: "large",
468
+ color: Colors.text.h1,
469
+ style: {
470
+ padding: 20,
471
+ alignSelf: 'center'
472
+ }
473
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
474
+ case 'activity':
475
+ if (active_toggle != 'activity') {
476
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
477
+ }
478
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
479
+ style: {
480
+ padding: 10
481
+ }
482
+ }, /*#__PURE__*/_react.default.createElement(_Pagination.default, {
483
+ offset: activity_data.offset,
484
+ onNext: () => getActitiyData(activity_data.offset + 1),
485
+ onPrevious: () => getActitiyData(activity_data.offset - 1)
486
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
487
+ data: activity_data.posts,
488
+ key: 'post_list',
489
+ keyExtractor: item => item.memo_post_id.toString(),
490
+ renderItem: renderPosts
491
+ }));
492
+ case 'members':
493
+ if (active_toggle != 'members') {
494
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
495
+ }
496
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
497
+ style: {
498
+ padding: 10
499
+ }
500
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
501
+ data: sorted_players,
502
+ keyExtractor: item => item.group_player_id.toString(),
503
+ renderItem: renderPlayers,
504
+ key: 'group_members'
505
+ }));
506
+ case 'competition_toggle':
507
+ if (active_toggle != 'competitions') {
508
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
509
+ }
510
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
511
+ style: {
512
+ padding: 10
513
+ }
514
+ }, /*#__PURE__*/_react.default.createElement(_Components.Toggle, {
515
+ options: [{
516
+ key: 'upcoming',
517
+ label: 'Upcoming'
518
+ }, {
519
+ key: 'history',
520
+ label: 'History'
521
+ }],
522
+ selected_option: comp_data.toggle,
523
+ onSelectOption: option => getCompetitionData(option, 0)
524
+ }));
525
+ case 'competitions':
526
+ if (active_toggle != 'competitions') {
527
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
528
+ }
529
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
530
+ transparent: true,
531
+ style: {
532
+ padding: 10
533
+ }
534
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
535
+ key: 'competition_list',
536
+ keyExtractor: item => item.competition_id.toString(),
537
+ data: comp_data.active_competitions.sort((a, b) => (0, _momentMini.default)(a.scheduled_datetime).unix() - (0, _momentMini.default)(b.scheduled_datetime).unix()),
538
+ renderItem: renderCompetitions
539
+ }));
540
+ default:
541
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
542
+ }
543
+ };
544
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
545
+ style: {
546
+ flex: 1
547
+ }
548
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
549
+ style: {
550
+ flex: 1
551
+ }
552
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
553
+ data: sections,
554
+ key: 'group_list',
555
+ keyExtractor: item => item,
556
+ renderItem: renderSections
557
+ }), active_toggle == 'members' ? /*#__PURE__*/_react.default.createElement(_Components.Toggle, {
558
+ options: leader_options.map(o => {
559
+ return {
560
+ key: o.option,
561
+ label: o.label
562
+ };
563
+ }),
564
+ selected_option: time_option?.option,
565
+ onSelectOption: option => {
566
+ const selected = leader_options.find(o => o.option == option);
567
+ if (!selected) {
568
+ return;
569
+ }
570
+ getGroupAnalytics(group_id, selected);
571
+ }
572
+ }) : active_toggle == 'competitions' ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
573
+ type: "footer",
574
+ style: {
575
+ flexDirection: 'row',
576
+ alignItems: 'center',
577
+ padding: 10
578
+ }
579
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
580
+ transparent: true,
581
+ style: {
582
+ flex: 1,
583
+ marginRight: 10
584
+ }
585
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
586
+ theme: "h2"
587
+ }, "CREATE A NEW COMPETITION"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
588
+ theme: "description",
589
+ style: {
590
+ marginTop: 3
591
+ }
592
+ }, "Create a new pick-em or other engagement for this group!")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
593
+ type: "success",
594
+ style: {
595
+ padding: 10
596
+ },
597
+ title: "CREATE",
598
+ onPress: () => console.log('New competition!')
599
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), editing && group ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
600
+ type: "blur",
601
+ style: {
602
+ position: 'absolute',
603
+ top: 0,
604
+ left: 0,
605
+ right: 0,
606
+ bottom: 0
607
+ }
608
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
609
+ type: "blur",
610
+ style: mode == 'desktop' ? {
611
+ justifyContent: 'center',
612
+ alignItems: 'center',
613
+ width: 500,
614
+ height: 500
615
+ } : {
616
+ flex: 1,
617
+ justifyContent: 'flex-end',
618
+ padding: 10
619
+ }
620
+ }, /*#__PURE__*/_react.default.createElement(_ManageGroupForm.default, {
621
+ group: group,
622
+ onInvitePlayer: onInvitePlayer,
623
+ onClose: () => setGroupData({
624
+ ...group_data,
625
+ editing: false
626
+ }),
627
+ onUpdateGroup: g => setGroupData({
628
+ ...group_data,
629
+ group: g
630
+ })
631
+ }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), show_player_status && group && player ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
632
+ type: "blur",
633
+ style: {
634
+ position: 'absolute',
635
+ top: 0,
636
+ left: 0,
637
+ right: 0,
638
+ bottom: 0
639
+ }
640
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
641
+ type: "blur",
642
+ style: mode == 'desktop' ? {
643
+ justifyContent: 'center',
644
+ alignItems: 'center',
645
+ width: 500,
646
+ height: 500
647
+ } : {
648
+ flex: 1,
649
+ justifyContent: 'flex-end',
650
+ padding: 10
651
+ }
652
+ }, /*#__PURE__*/_react.default.createElement(_GroupPlayerActionForm.default, {
653
+ group: group,
654
+ group_player: my_group_player,
655
+ me: player,
656
+ onResponse: new_gp => {
657
+ setGroupData({
658
+ ...group_data,
659
+ group_players: group_players.filter(gp => gp.group_player_id != new_gp.group_player_id).concat(new_gp),
660
+ my_group_player: new_gp,
661
+ show_player_status: false
662
+ });
663
+ },
664
+ onClose: () => setGroupData({
665
+ ...group_data,
666
+ show_player_status: false
667
+ })
668
+ }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
669
+ };
670
+ var _default = exports.default = GroupComponent;
671
+ //# sourceMappingURL=index.js.map