be-components 7.0.6 → 7.0.9

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 (180) hide show
  1. package/lib/commonjs/Components/BETimePicker.js +110 -0
  2. package/lib/commonjs/Components/BETimePicker.js.map +1 -0
  3. package/lib/commonjs/Components/Icons.js +37 -0
  4. package/lib/commonjs/Components/Icons.js.map +1 -1
  5. package/lib/commonjs/Components/ImageUploader.js +4 -0
  6. package/lib/commonjs/Components/ImageUploader.js.map +1 -1
  7. package/lib/commonjs/Components/Slider.js +2 -0
  8. package/lib/commonjs/Components/Slider.js.map +1 -1
  9. package/lib/commonjs/Components/Themed.js +4 -2
  10. package/lib/commonjs/Components/Themed.js.map +1 -1
  11. package/lib/commonjs/CreateEngagement/api/index.js +89 -1
  12. package/lib/commonjs/CreateEngagement/api/index.js.map +1 -1
  13. package/lib/commonjs/CreateEngagement/index.js +306 -5
  14. package/lib/commonjs/CreateEngagement/index.js.map +1 -1
  15. package/lib/commonjs/FlashMarket/FlashHolder.js +14 -1
  16. package/lib/commonjs/FlashMarket/FlashHolder.js.map +1 -1
  17. package/lib/commonjs/FlashMarket/api/index.js +42 -0
  18. package/lib/commonjs/FlashMarket/api/index.js.map +1 -1
  19. package/lib/commonjs/FlashMarket/components/FlashOptionCard.js +265 -0
  20. package/lib/commonjs/FlashMarket/components/FlashOptionCard.js.map +1 -0
  21. package/lib/commonjs/FlashMarket/components/ManageFlashMarket.js +1244 -0
  22. package/lib/commonjs/FlashMarket/components/ManageFlashMarket.js.map +1 -0
  23. package/lib/commonjs/FlashMarket/index.js +18 -6
  24. package/lib/commonjs/FlashMarket/index.js.map +1 -1
  25. package/lib/commonjs/Group/api/index.js +6 -3
  26. package/lib/commonjs/Group/api/index.js.map +1 -1
  27. package/lib/commonjs/Group/index.js +135 -20
  28. package/lib/commonjs/Group/index.js.map +1 -1
  29. package/lib/commonjs/Poll/api/index.js +0 -1
  30. package/lib/commonjs/Poll/api/index.js.map +1 -1
  31. package/lib/commonjs/constants/useColors.js +2 -0
  32. package/lib/commonjs/constants/useColors.js.map +1 -1
  33. package/lib/commonjs/index.js +7 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/types.d.js.map +1 -1
  36. package/lib/module/Components/BETimePicker.js +102 -0
  37. package/lib/module/Components/BETimePicker.js.map +1 -0
  38. package/lib/module/Components/Icons.js +37 -0
  39. package/lib/module/Components/Icons.js.map +1 -1
  40. package/lib/module/Components/ImageUploader.js +4 -0
  41. package/lib/module/Components/ImageUploader.js.map +1 -1
  42. package/lib/module/Components/Slider.js +2 -0
  43. package/lib/module/Components/Slider.js.map +1 -1
  44. package/lib/module/Components/Themed.js +4 -2
  45. package/lib/module/Components/Themed.js.map +1 -1
  46. package/lib/module/CreateEngagement/api/index.js +89 -1
  47. package/lib/module/CreateEngagement/api/index.js.map +1 -1
  48. package/lib/module/CreateEngagement/index.js +306 -5
  49. package/lib/module/CreateEngagement/index.js.map +1 -1
  50. package/lib/module/FlashMarket/FlashHolder.js +14 -1
  51. package/lib/module/FlashMarket/FlashHolder.js.map +1 -1
  52. package/lib/module/FlashMarket/api/index.js +42 -0
  53. package/lib/module/FlashMarket/api/index.js.map +1 -1
  54. package/lib/module/FlashMarket/components/FlashOptionCard.js +258 -0
  55. package/lib/module/FlashMarket/components/FlashOptionCard.js.map +1 -0
  56. package/lib/module/FlashMarket/components/ManageFlashMarket.js +1236 -0
  57. package/lib/module/FlashMarket/components/ManageFlashMarket.js.map +1 -0
  58. package/lib/module/FlashMarket/index.js +18 -6
  59. package/lib/module/FlashMarket/index.js.map +1 -1
  60. package/lib/module/Group/api/index.js +6 -3
  61. package/lib/module/Group/api/index.js.map +1 -1
  62. package/lib/module/Group/index.js +135 -20
  63. package/lib/module/Group/index.js.map +1 -1
  64. package/lib/module/Poll/api/index.js +0 -1
  65. package/lib/module/Poll/api/index.js.map +1 -1
  66. package/lib/module/constants/useColors.js +2 -0
  67. package/lib/module/constants/useColors.js.map +1 -1
  68. package/lib/module/index.js +2 -1
  69. package/lib/module/index.js.map +1 -1
  70. package/lib/module/types.d.js.map +1 -1
  71. package/lib/typescript/lib/commonjs/Components/BETimePicker.d.ts +8 -0
  72. package/lib/typescript/lib/commonjs/Components/BETimePicker.d.ts.map +1 -0
  73. package/lib/typescript/lib/commonjs/Components/Icons.d.ts +5 -0
  74. package/lib/typescript/lib/commonjs/Components/Icons.d.ts.map +1 -1
  75. package/lib/typescript/lib/commonjs/Components/ImageUploader.d.ts +2 -1
  76. package/lib/typescript/lib/commonjs/Components/ImageUploader.d.ts.map +1 -1
  77. package/lib/typescript/lib/commonjs/Components/Slider.d.ts +2 -1
  78. package/lib/typescript/lib/commonjs/Components/Slider.d.ts.map +1 -1
  79. package/lib/typescript/lib/commonjs/Components/Themed.d.ts.map +1 -1
  80. package/lib/typescript/lib/commonjs/CreateEngagement/api/index.d.ts +40 -1
  81. package/lib/typescript/lib/commonjs/CreateEngagement/api/index.d.ts.map +1 -1
  82. package/lib/typescript/lib/commonjs/CreateEngagement/index.d.ts.map +1 -1
  83. package/lib/typescript/lib/commonjs/FlashMarket/FlashHolder.d.ts +3 -1
  84. package/lib/typescript/lib/commonjs/FlashMarket/FlashHolder.d.ts.map +1 -1
  85. package/lib/typescript/lib/commonjs/FlashMarket/api/index.d.ts +2 -0
  86. package/lib/typescript/lib/commonjs/FlashMarket/api/index.d.ts.map +1 -1
  87. package/lib/typescript/lib/commonjs/FlashMarket/components/FlashOptionCard.d.ts +13 -0
  88. package/lib/typescript/lib/commonjs/FlashMarket/components/FlashOptionCard.d.ts.map +1 -0
  89. package/lib/typescript/lib/commonjs/FlashMarket/components/ManageFlashMarket.d.ts +11 -0
  90. package/lib/typescript/lib/commonjs/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -0
  91. package/lib/typescript/lib/commonjs/FlashMarket/index.d.ts +2 -1
  92. package/lib/typescript/lib/commonjs/FlashMarket/index.d.ts.map +1 -1
  93. package/lib/typescript/lib/commonjs/Group/api/index.d.ts.map +1 -1
  94. package/lib/typescript/lib/commonjs/Group/index.d.ts +2 -1
  95. package/lib/typescript/lib/commonjs/Group/index.d.ts.map +1 -1
  96. package/lib/typescript/lib/commonjs/Poll/api/index.d.ts.map +1 -1
  97. package/lib/typescript/lib/commonjs/constants/useColors.d.ts +1 -0
  98. package/lib/typescript/lib/commonjs/constants/useColors.d.ts.map +1 -1
  99. package/lib/typescript/lib/commonjs/index.d.ts +1 -0
  100. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -1
  101. package/lib/typescript/lib/module/Components/BETimePicker.d.ts +8 -0
  102. package/lib/typescript/lib/module/Components/BETimePicker.d.ts.map +1 -0
  103. package/lib/typescript/lib/module/Components/Icons.d.ts +5 -0
  104. package/lib/typescript/lib/module/Components/Icons.d.ts.map +1 -1
  105. package/lib/typescript/lib/module/Components/ImageUploader.d.ts +2 -1
  106. package/lib/typescript/lib/module/Components/ImageUploader.d.ts.map +1 -1
  107. package/lib/typescript/lib/module/Components/Slider.d.ts +2 -1
  108. package/lib/typescript/lib/module/Components/Slider.d.ts.map +1 -1
  109. package/lib/typescript/lib/module/Components/Themed.d.ts.map +1 -1
  110. package/lib/typescript/lib/module/CreateEngagement/api/index.d.ts +41 -1
  111. package/lib/typescript/lib/module/CreateEngagement/api/index.d.ts.map +1 -1
  112. package/lib/typescript/lib/module/CreateEngagement/index.d.ts.map +1 -1
  113. package/lib/typescript/lib/module/FlashMarket/FlashHolder.d.ts +3 -1
  114. package/lib/typescript/lib/module/FlashMarket/FlashHolder.d.ts.map +1 -1
  115. package/lib/typescript/lib/module/FlashMarket/api/index.d.ts +2 -0
  116. package/lib/typescript/lib/module/FlashMarket/api/index.d.ts.map +1 -1
  117. package/lib/typescript/lib/module/FlashMarket/components/FlashOptionCard.d.ts +13 -0
  118. package/lib/typescript/lib/module/FlashMarket/components/FlashOptionCard.d.ts.map +1 -0
  119. package/lib/typescript/lib/module/FlashMarket/components/ManageFlashMarket.d.ts +11 -0
  120. package/lib/typescript/lib/module/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -0
  121. package/lib/typescript/lib/module/FlashMarket/index.d.ts +2 -1
  122. package/lib/typescript/lib/module/FlashMarket/index.d.ts.map +1 -1
  123. package/lib/typescript/lib/module/Group/api/index.d.ts.map +1 -1
  124. package/lib/typescript/lib/module/Group/index.d.ts +2 -1
  125. package/lib/typescript/lib/module/Group/index.d.ts.map +1 -1
  126. package/lib/typescript/lib/module/Poll/api/index.d.ts.map +1 -1
  127. package/lib/typescript/lib/module/constants/useColors.d.ts +1 -0
  128. package/lib/typescript/lib/module/constants/useColors.d.ts.map +1 -1
  129. package/lib/typescript/lib/module/index.d.ts +2 -1
  130. package/lib/typescript/lib/module/index.d.ts.map +1 -1
  131. package/lib/typescript/src/Components/BETimePicker.d.ts +11 -0
  132. package/lib/typescript/src/Components/BETimePicker.d.ts.map +1 -0
  133. package/lib/typescript/src/Components/Icons.d.ts +1 -0
  134. package/lib/typescript/src/Components/Icons.d.ts.map +1 -1
  135. package/lib/typescript/src/Components/ImageUploader.d.ts +2 -1
  136. package/lib/typescript/src/Components/ImageUploader.d.ts.map +1 -1
  137. package/lib/typescript/src/Components/Slider.d.ts +2 -1
  138. package/lib/typescript/src/Components/Slider.d.ts.map +1 -1
  139. package/lib/typescript/src/Components/Themed.d.ts.map +1 -1
  140. package/lib/typescript/src/CreateEngagement/api/index.d.ts +8 -2
  141. package/lib/typescript/src/CreateEngagement/api/index.d.ts.map +1 -1
  142. package/lib/typescript/src/CreateEngagement/index.d.ts.map +1 -1
  143. package/lib/typescript/src/FlashMarket/FlashHolder.d.ts +4 -2
  144. package/lib/typescript/src/FlashMarket/FlashHolder.d.ts.map +1 -1
  145. package/lib/typescript/src/FlashMarket/api/index.d.ts +2 -0
  146. package/lib/typescript/src/FlashMarket/api/index.d.ts.map +1 -1
  147. package/lib/typescript/src/FlashMarket/components/FlashOptionCard.d.ts +15 -0
  148. package/lib/typescript/src/FlashMarket/components/FlashOptionCard.d.ts.map +1 -0
  149. package/lib/typescript/src/FlashMarket/components/ManageFlashMarket.d.ts +15 -0
  150. package/lib/typescript/src/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -0
  151. package/lib/typescript/src/FlashMarket/index.d.ts +2 -1
  152. package/lib/typescript/src/FlashMarket/index.d.ts.map +1 -1
  153. package/lib/typescript/src/Group/api/index.d.ts +5 -2
  154. package/lib/typescript/src/Group/api/index.d.ts.map +1 -1
  155. package/lib/typescript/src/Group/index.d.ts +3 -2
  156. package/lib/typescript/src/Group/index.d.ts.map +1 -1
  157. package/lib/typescript/src/Poll/api/index.d.ts.map +1 -1
  158. package/lib/typescript/src/constants/useColors.d.ts +1 -0
  159. package/lib/typescript/src/constants/useColors.d.ts.map +1 -1
  160. package/lib/typescript/src/index.d.ts +2 -1
  161. package/lib/typescript/src/index.d.ts.map +1 -1
  162. package/package.json +4 -2
  163. package/src/Components/BETimePicker.tsx +77 -0
  164. package/src/Components/Icons.tsx +17 -0
  165. package/src/Components/ImageUploader.tsx +3 -1
  166. package/src/Components/Slider.tsx +3 -1
  167. package/src/Components/Themed.tsx +6 -4
  168. package/src/CreateEngagement/api/index.ts +78 -2
  169. package/src/CreateEngagement/index.tsx +181 -7
  170. package/src/FlashMarket/FlashHolder.tsx +11 -2
  171. package/src/FlashMarket/api/index.ts +24 -1
  172. package/src/FlashMarket/components/FlashOptionCard.tsx +174 -0
  173. package/src/FlashMarket/components/ManageFlashMarket.tsx +769 -0
  174. package/src/FlashMarket/index.tsx +14 -8
  175. package/src/Group/api/index.ts +5 -5
  176. package/src/Group/index.tsx +84 -9
  177. package/src/Poll/api/index.ts +0 -2
  178. package/src/constants/useColors.tsx +2 -0
  179. package/src/index.tsx +2 -0
  180. package/src/types.d.ts +8 -1
@@ -0,0 +1,1244 @@
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 _reactNative = require("react-native");
10
+ var _Components = require("../../Components");
11
+ var _api = require("../../Poll/api");
12
+ var _ImageUploader = _interopRequireDefault(require("../../Components/ImageUploader"));
13
+ var _useColors = require("../../constants/useColors");
14
+ var _FlashOptionCard = _interopRequireDefault(require("./FlashOptionCard"));
15
+ var _momentMini = _interopRequireDefault(require("moment-mini"));
16
+ var _BETimePicker = _interopRequireDefault(require("../../Components/BETimePicker"));
17
+ var _api2 = require("../api");
18
+ var _ConfirmAlert = require("../../Components/ConfirmAlert");
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ 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); }
21
+ const sections = ['header', 'activate', 'pause_resume', 'closed', 'resolve', 'toggle', 'image', 'question', 'options', 'settings', 'results'];
22
+ const ManageFlashMarket = ({
23
+ float,
24
+ header_style,
25
+ player,
26
+ onClose,
27
+ poll_id,
28
+ onFocusPosition
29
+ }) => {
30
+ const Colors = (0, _useColors.useColors)();
31
+ const [labels, setLabels] = (0, _react.useState)({
32
+ base_stake: '0',
33
+ min_stake: '0',
34
+ max_stake: '0'
35
+ });
36
+ const {
37
+ min_stake,
38
+ max_stake,
39
+ base_stake
40
+ } = labels;
41
+ const [expand_participants, setExpandParticipants] = (0, _react.useState)(false);
42
+ const [flash_state, setFlashState] = (0, _react.useState)({
43
+ loading: false,
44
+ action_loading: false,
45
+ probability_changed: false,
46
+ active_step: 'settings',
47
+ players: [],
48
+ poll_summaries: [],
49
+ poll_options: []
50
+ });
51
+ const {
52
+ loading,
53
+ action_loading,
54
+ poll_options,
55
+ players,
56
+ active_step,
57
+ poll,
58
+ draft_poll,
59
+ poll_summaries,
60
+ probability_changed
61
+ } = flash_state;
62
+ const real_options = poll_options.filter(o => o.status != 'inactive');
63
+ const total_responses = poll_summaries.reduce((a, b) => a + b.count, 0);
64
+ const unlocked_options = real_options.filter(o => !o.probability_locked);
65
+ const prob_locked = unlocked_options.length <= 1 ? true : false;
66
+ const errors = _api2.FlashMarketHelpers.isNewValid(real_options, poll_summaries, poll);
67
+ const winning_option = real_options.find(o => o.poll_option_id == poll?.winning_option_id);
68
+ (0, _react.useEffect)(() => {
69
+ _api.PollCampaignApi.setEnvironment();
70
+ if (!poll_id) {
71
+ return;
72
+ }
73
+ getData(poll_id);
74
+ }, [poll_id]);
75
+ const getData = async id => {
76
+ setFlashState({
77
+ ...flash_state,
78
+ loading: true
79
+ });
80
+ const server_response = await _api.PollApi.getPollById(id);
81
+ const server_campaign = await _api.PollCampaignApi.getPollCampaignById(server_response.poll.poll_campaign_id);
82
+ let player_ids = [];
83
+ server_response.poll_summaries.map(s => {
84
+ s.player_ids.map(id => id != '4985' ? player_ids.push(id) : console.log(''));
85
+ });
86
+ const server_players = await _api.PollCampaignApi.getPlayersByPlayerIds([...new Set(player_ids.map(id => id))]);
87
+ setFlashState({
88
+ ...flash_state,
89
+ poll: server_response.poll,
90
+ poll_options: server_response.poll_options,
91
+ draft_poll: server_response.poll,
92
+ poll_summaries: server_response.poll_summaries,
93
+ poll_campaign: server_campaign,
94
+ players: server_players,
95
+ loading: false
96
+ });
97
+ setLabels({
98
+ min_stake: server_response.poll.minimum_stake.toString(),
99
+ max_stake: server_response.poll.max_stake.toString(),
100
+ base_stake: server_response.poll.base_stake?.toString() ?? '0'
101
+ });
102
+ };
103
+ const updatePoll = async dp => {
104
+ if (action_loading) {
105
+ return;
106
+ }
107
+ setFlashState({
108
+ ...flash_state,
109
+ action_loading: true
110
+ });
111
+ const new_resp = await _api.PollApi.updatePoll(dp);
112
+ if (!new_resp) {
113
+ return alert('Unable to update');
114
+ }
115
+ setFlashState({
116
+ ...flash_state,
117
+ action_loading: false,
118
+ poll: new_resp.poll,
119
+ draft_poll: new_resp.poll,
120
+ poll_options: new_resp.poll_options
121
+ });
122
+ };
123
+ const handleSelectWinningOption = (checked, option) => {
124
+ if (!poll) {
125
+ return alert('Unable to process');
126
+ }
127
+ if (checked) {
128
+ (0, _ConfirmAlert.showConfirmAlert)('Are you sure', `Confirm ${option.option_name} is the correct answer`, () => updatePoll({
129
+ ...poll,
130
+ winning_option_id: option.poll_option_id,
131
+ status: 'paused'
132
+ }), () => console.log(''));
133
+ } else {
134
+ if (!poll.winning_option_id) {
135
+ return;
136
+ }
137
+ (0, _ConfirmAlert.showConfirmAlert)('Are you sure', `Remove ${option.option_name} as the correct answer`, () => updatePoll({
138
+ ...poll,
139
+ winning_option_id: undefined
140
+ }), () => console.log(''));
141
+ }
142
+ };
143
+ const handleChangeProbability = (option, probability) => {
144
+ if (option.probability_locked) {
145
+ return;
146
+ }
147
+ if (probability < 0) {
148
+ return;
149
+ }
150
+ if (probability > 1) {
151
+ return;
152
+ }
153
+ let other_options = [...real_options.filter(o => o.poll_option_id != option.poll_option_id)];
154
+ //Find the min probability
155
+
156
+ //Other option probabilities
157
+ let other_option_probabilities = other_options.reduce((a, b) => a + (b.initial_odds ?? 0), 0);
158
+ //With new probabilities
159
+ let all_probs = other_option_probabilities + probability;
160
+ let difference = 1 - all_probs;
161
+ let unlocked_options = other_options.filter(po => !po.probability_locked);
162
+ if (unlocked_options.length == 0) {
163
+ return;
164
+ } //There are no options!
165
+
166
+ let new_option = {
167
+ ...option,
168
+ initial_odds: probability
169
+ };
170
+ //what is the current total probability
171
+ let delta = difference / unlocked_options.length;
172
+ //Map through the others and update those
173
+
174
+ let min_option = unlocked_options.reduce((min, item) => {
175
+ let item_init = item.initial_odds ?? 0;
176
+ let min_init = min.initial_odds ?? 0;
177
+ if (item_init < min_init) {
178
+ return item;
179
+ } else {
180
+ return min;
181
+ }
182
+ });
183
+ let max_option = unlocked_options.reduce((min, item) => {
184
+ let item_init = item.initial_odds ?? 0;
185
+ let min_init = min.initial_odds ?? 0;
186
+ if (item_init > min_init) {
187
+ return item;
188
+ } else {
189
+ return min;
190
+ }
191
+ });
192
+ let new_delta = delta;
193
+ if (delta < 0) {
194
+ //Make sure our min has enough room
195
+ let min_diff = (min_option.initial_odds ?? 0) + delta;
196
+ if (min_diff < 0) {
197
+ new_delta = min_option.initial_odds ?? 0;
198
+ }
199
+ } else {
200
+ let max_diff = (max_option.initial_odds ?? 0) + delta;
201
+ if (max_diff > 1) {
202
+ new_delta = 1 - (max_option.initial_odds ?? 0);
203
+ }
204
+ }
205
+ let delta_difference = new_delta - delta;
206
+ if (delta_difference != 0) {
207
+ return;
208
+ }
209
+ let failed = false;
210
+ other_options = other_options.map(o => {
211
+ if (o.probability_locked) {
212
+ return o;
213
+ }
214
+ let starting_odds = o.initial_odds ?? 0;
215
+ let new_odds = starting_odds + delta;
216
+ if (new_odds < 0) {
217
+ failed = true;
218
+ }
219
+ if (new_odds > 1) {
220
+ failed = true;
221
+ }
222
+ o.initial_odds = new_odds;
223
+ return o;
224
+ });
225
+ if (failed) {
226
+ return;
227
+ }
228
+ let final_options = other_options.concat(new_option);
229
+ //let check it
230
+ let total_prob = final_options.reduce((a, b) => a + (b.initial_odds ?? 0), 0);
231
+ if (total_prob.toFixed(2) != '1.00') {
232
+ return;
233
+ }
234
+ setFlashState({
235
+ ...flash_state,
236
+ probability_changed: true,
237
+ poll_options: poll_options.filter(po => !final_options.find(fo => fo.poll_option_id == po.poll_option_id)).concat(final_options)
238
+ });
239
+ };
240
+ const renderOptions = data => {
241
+ if (!poll) {
242
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
243
+ }
244
+ const summary = poll_summaries.find(ps => ps.poll_option_id == data.item.poll_option_id);
245
+ if (!summary) {
246
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
247
+ }
248
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
249
+ style: {
250
+ padding: 5
251
+ }
252
+ }, /*#__PURE__*/_react.default.createElement(_FlashOptionCard.default, {
253
+ poll_option: data.item,
254
+ summary: summary,
255
+ poll: poll,
256
+ onSelectWinningOption: handleSelectWinningOption,
257
+ probability_locked: prob_locked,
258
+ onChangeProbability: probability => handleChangeProbability(data.item, probability),
259
+ onLockProbability: locked => {
260
+ setFlashState({
261
+ ...flash_state,
262
+ poll_options: poll_options.filter(po => po.poll_option_id != data.item.poll_option_id).concat({
263
+ ...data.item,
264
+ probability_locked: locked
265
+ })
266
+ });
267
+ },
268
+ onUpdateOption: option => {
269
+ setFlashState({
270
+ ...flash_state,
271
+ poll_options: poll_options.filter(po => po.poll_option_id != option.poll_option_id).concat(option)
272
+ });
273
+ }
274
+ }));
275
+ };
276
+ const handleSaveProbabilities = async () => {
277
+ if (!probability_changed) {
278
+ return;
279
+ }
280
+ if (poll?.status != 'pending') {
281
+ return;
282
+ }
283
+ let total_prob = real_options.reduce((a, b) => a + (b.initial_odds ?? 0), 0);
284
+ if (total_prob.toFixed(2) != '1.00') {
285
+ return;
286
+ }
287
+ setFlashState({
288
+ ...flash_state,
289
+ action_loading: true
290
+ });
291
+ let new_options = [];
292
+ const saveOptions = real_options.map(async o => {
293
+ new_options.push(await _api.PollOptionApi.updatePollOption(o));
294
+ });
295
+ await Promise.all(saveOptions);
296
+ setFlashState({
297
+ ...flash_state,
298
+ poll_options: new_options,
299
+ probability_changed: false
300
+ });
301
+ };
302
+ const handleResolve = () => {
303
+ if (!poll) {
304
+ return;
305
+ }
306
+ if (!winning_option) {
307
+ return;
308
+ }
309
+ (0, _ConfirmAlert.showConfirmAlert)('Are you sure', `Confirm ${winning_option.option_name} is the correct answer and payout participants`, () => resolveFlashMarket(), () => console.log(''));
310
+ };
311
+ const resolveFlashMarket = async () => {
312
+ if (!poll) {
313
+ return;
314
+ }
315
+ if (!poll.winning_option_id) {
316
+ return;
317
+ }
318
+ setFlashState({
319
+ ...flash_state,
320
+ action_loading: true
321
+ });
322
+ const resolved_poll = await _api.PollApi.closePoll(poll.poll_id);
323
+ if (!resolved_poll) {
324
+ return alert('Unable to activate market at this time');
325
+ }
326
+ setFlashState({
327
+ ...flash_state,
328
+ action_loading: false,
329
+ poll: resolved_poll
330
+ });
331
+ };
332
+ const handleAddOption = async () => {
333
+ if (poll?.status != 'pending') {
334
+ return;
335
+ }
336
+ if (action_loading) {
337
+ return;
338
+ }
339
+ setFlashState({
340
+ ...flash_state,
341
+ action_loading: true
342
+ });
343
+ let length = real_options.length;
344
+ const new_option = await _api.PollOptionApi.createPollOption({
345
+ poll_id: poll.poll_id,
346
+ poll_option_id: '',
347
+ option_name: '',
348
+ initial_odds: length == 0 ? 1 : 0,
349
+ option_value: 'optional',
350
+ response_message: '',
351
+ priority: length + 1,
352
+ create_datetime: '',
353
+ last_update_datetime: '',
354
+ option_type: 'select',
355
+ status: 'pending'
356
+ });
357
+ if (!new_option) {
358
+ setFlashState({
359
+ ...flash_state,
360
+ action_loading: false
361
+ });
362
+ return alert('Unable to process');
363
+ }
364
+ let new_summary = {
365
+ poll_id: poll_id,
366
+ poll_option_id: new_option.poll_option_id,
367
+ count: 0,
368
+ stake: 0,
369
+ winnings: 0,
370
+ player_ids: [],
371
+ pct: 0
372
+ };
373
+ //We have a new option! Now we will need to update the probabilities
374
+ setFlashState({
375
+ ...flash_state,
376
+ action_loading: false,
377
+ poll_options: poll_options.filter(po => po.poll_option_id != new_option.poll_option_id).concat(new_option),
378
+ poll_summaries: poll_summaries.filter(ps => ps.poll_option_id != new_summary.poll_option_id).concat(new_summary)
379
+ });
380
+ };
381
+ const renderPlayers = data => {
382
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
383
+ type: "row",
384
+ style: {
385
+ borderBottomWidth: 1,
386
+ borderColor: Colors.borders.light,
387
+ padding: 10
388
+ }
389
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
390
+ source: {
391
+ uri: data.item.profile_pic
392
+ },
393
+ style: {
394
+ height: 30,
395
+ width: 30,
396
+ borderRadius: 100
397
+ }
398
+ }), /*#__PURE__*/_react.default.createElement(_Themed.View, {
399
+ transparent: true,
400
+ style: {
401
+ flex: 1,
402
+ marginLeft: 10
403
+ }
404
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
405
+ theme: "h1"
406
+ }, "@", data.item.username), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
407
+ theme: "description",
408
+ style: {
409
+ marginTop: 3
410
+ }
411
+ }, "Joined ", (0, _momentMini.default)(data.item.create_datetime).fromNow())));
412
+ };
413
+ const renderSections = data => {
414
+ switch (data.item) {
415
+ case 'header':
416
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
417
+ type: "header",
418
+ style: {
419
+ flexDirection: 'row',
420
+ alignItems: 'center',
421
+ padding: 10,
422
+ ...header_style
423
+ }
424
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
425
+ transparent: true,
426
+ style: {
427
+ flex: 1
428
+ }
429
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
430
+ theme: "h1"
431
+ }, "Flash Market"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
432
+ theme: "description",
433
+ style: {
434
+ marginTop: 3
435
+ }
436
+ }, "Use the form below to manage your custom flash market!")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
437
+ float: true,
438
+ title: "X",
439
+ title_color: Colors.text.error,
440
+ onPress: () => onClose()
441
+ }));
442
+ case 'activate':
443
+ if (poll?.status != 'pending') {
444
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
445
+ }
446
+ const ready = errors.length == 0 ? true : false;
447
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
448
+ transparent: true,
449
+ style: {
450
+ flexDirection: 'row',
451
+ alignItems: 'center',
452
+ padding: 10
453
+ }
454
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
455
+ transparent: true,
456
+ style: {
457
+ flex: 1
458
+ }
459
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
460
+ theme: "h1"
461
+ }, "Flash Market is Pending"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
462
+ theme: "description"
463
+ }, "Complete set up and select activate when you are ready")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
464
+ type: "success",
465
+ title: "Activate",
466
+ loading: action_loading,
467
+ disabled: errors.length > 0 ? true : probability_changed ? true : false,
468
+ style: {
469
+ opacity: ready && !action_loading && !probability_changed ? 1 : 0.5
470
+ },
471
+ onPress: async () => {
472
+ if (errors.length > 0) {
473
+ return alert(errors.map(e => e));
474
+ }
475
+ if (probability_changed) {
476
+ return;
477
+ }
478
+ setFlashState({
479
+ ...flash_state,
480
+ action_loading: true
481
+ });
482
+ const resp = await _api.PollApi.activatePoll(poll.poll_id);
483
+ if (!resp) {
484
+ return alert('Unable to activate market at this time');
485
+ }
486
+ setFlashState({
487
+ ...flash_state,
488
+ action_loading: false,
489
+ poll: resp.poll,
490
+ poll_options: resp.poll_options
491
+ });
492
+ }
493
+ }));
494
+ case 'closed':
495
+ if (!poll) {
496
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
497
+ }
498
+ if (poll.status != 'closed') {
499
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
500
+ }
501
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
502
+ transparent: true,
503
+ style: {
504
+ flexDirection: 'row',
505
+ alignItems: 'center',
506
+ padding: 10,
507
+ backgroundColor: Colors.views.liquidMarket
508
+ }
509
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
510
+ transparent: true,
511
+ style: {
512
+ flex: 1
513
+ }
514
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
515
+ theme: "h1"
516
+ }, "Flash Market is Closed"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
517
+ theme: "description"
518
+ }, "This flash market has been completed and all participants have been paid out")));
519
+ case 'pause_resume':
520
+ if (!poll) {
521
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
522
+ }
523
+ if (!['active', 'paused', ''].includes(poll.status)) {
524
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
525
+ }
526
+ if (poll.winning_option_id) {
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
+ flexDirection: 'row',
533
+ alignItems: 'center',
534
+ padding: 10
535
+ }
536
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
537
+ transparent: true,
538
+ style: {
539
+ flex: 1
540
+ }
541
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
542
+ theme: "h1"
543
+ }, "Flash Market is ", poll.status), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
544
+ theme: "description"
545
+ }, "Complete set up and select activate when you are ready")), poll.status == 'paused' ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
546
+ type: "success",
547
+ title: "Resume",
548
+ loading: action_loading,
549
+ disabled: action_loading ? true : false,
550
+ style: {
551
+ opacity: action_loading ? 0.5 : 1
552
+ },
553
+ onPress: async () => {
554
+ updatePoll({
555
+ ...poll,
556
+ status: 'active'
557
+ });
558
+ }
559
+ }) : /*#__PURE__*/_react.default.createElement(_Themed.Button, {
560
+ type: "warning",
561
+ title: "Pause",
562
+ loading: action_loading,
563
+ disabled: action_loading ? true : false,
564
+ style: {
565
+ opacity: action_loading ? 0.5 : 1
566
+ },
567
+ onPress: async () => {
568
+ updatePoll({
569
+ ...poll,
570
+ status: 'paused'
571
+ });
572
+ }
573
+ }));
574
+ case 'resolve':
575
+ if (!poll) {
576
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
577
+ }
578
+ if (!poll.winning_option_id) {
579
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
580
+ }
581
+ if (!winning_option) {
582
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
583
+ }
584
+ if (poll.status == 'closed') {
585
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
586
+ }
587
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
588
+ transparent: true,
589
+ style: {
590
+ flexDirection: 'row',
591
+ alignItems: 'center',
592
+ padding: 10
593
+ }
594
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
595
+ transparent: true,
596
+ style: {
597
+ flex: 1
598
+ }
599
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
600
+ theme: "h1"
601
+ }, "Resolve Flash Market"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
602
+ theme: "description"
603
+ }, "Resolve with option: ", winning_option.option_name, " as the winner")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
604
+ type: "success",
605
+ title: "Resolve",
606
+ loading: action_loading,
607
+ disabled: action_loading,
608
+ style: {
609
+ opacity: action_loading ? 0.5 : 1
610
+ },
611
+ onPress: async () => handleResolve()
612
+ }));
613
+ case 'toggle':
614
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
615
+ style: {
616
+ padding: 10
617
+ }
618
+ }, /*#__PURE__*/_react.default.createElement(_Components.Toggle, {
619
+ options: [{
620
+ key: 'question',
621
+ label: 'Question'
622
+ }, {
623
+ key: 'options',
624
+ label: 'Options'
625
+ }, {
626
+ key: 'settings',
627
+ label: 'Settings'
628
+ }, {
629
+ key: 'results',
630
+ label: 'Results'
631
+ }],
632
+ selected_option: active_step,
633
+ onSelectOption: key => setFlashState({
634
+ ...flash_state,
635
+ active_step: key
636
+ })
637
+ }));
638
+ case 'image':
639
+ if (active_step != 'question') {
640
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
641
+ }
642
+ if (!draft_poll || !poll) {
643
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
644
+ }
645
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
646
+ style: {
647
+ flexDirection: 'row',
648
+ alignItems: 'center',
649
+ padding: 10,
650
+ borderBottomWidth: 1,
651
+ borderColor: Colors.borders.light
652
+ }
653
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
654
+ transparent: true,
655
+ style: {
656
+ flex: 1,
657
+ marginRight: 10
658
+ }
659
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
660
+ theme: "h1"
661
+ }, "Flash Market Image"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
662
+ theme: "description",
663
+ style: {
664
+ marginTop: 3
665
+ }
666
+ }, "Give the question an image that aligns with the question")), /*#__PURE__*/_react.default.createElement(_ImageUploader.default, {
667
+ disabled: poll.status == 'closed' ? true : false,
668
+ public_id: `poll_${poll_id}_${Math.random().toFixed(9)}`,
669
+ onFinishUpload: obj => {
670
+ updatePoll({
671
+ ...draft_poll,
672
+ poll_image: {
673
+ ...obj,
674
+ url: obj.secure_url
675
+ }
676
+ });
677
+ }
678
+ }, poll.poll_image ? /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
679
+ source: {
680
+ uri: poll.poll_image.url
681
+ },
682
+ style: {
683
+ height: 45,
684
+ width: 45
685
+ },
686
+ resizeMode: "contain"
687
+ }) : /*#__PURE__*/_react.default.createElement(_Components.Icons.ImageIcon, {
688
+ size: 45,
689
+ color: Colors.text.h1
690
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
691
+ style: {
692
+ marginTop: 5
693
+ },
694
+ textAlign: "center",
695
+ theme: "action"
696
+ }, draft_poll.poll_image ? 'CHANGE' : 'UPLOAD')));
697
+ case 'question':
698
+ if (active_step != 'question') {
699
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
700
+ }
701
+ if (!draft_poll || !poll) {
702
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
703
+ }
704
+ const is_q_changed = JSON.stringify(poll.poll_question) != JSON.stringify(draft_poll.poll_question) ? true : false;
705
+ const edit_allowed = poll_summaries.length == 0 && ['pending', 'paused'].includes(poll.status) ? true : false;
706
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
707
+ transparent: true
708
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
709
+ style: {
710
+ flexDirection: 'row',
711
+ alignItems: 'center',
712
+ padding: 10
713
+ }
714
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
715
+ transparent: true,
716
+ style: {
717
+ flex: 1
718
+ }
719
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
720
+ theme: "h1"
721
+ }, "Flash Market Question"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
722
+ theme: "description",
723
+ style: {
724
+ marginTop: 3
725
+ }
726
+ }, "Edit your question below. Questions can be edited until a response is recorded."))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
727
+ transparent: true,
728
+ style: {
729
+ padding: 20
730
+ }
731
+ }, /*#__PURE__*/_react.default.createElement(_Themed.TextInput, {
732
+ style: {
733
+ height: 150,
734
+ textAlign: 'center'
735
+ },
736
+ multiline: true,
737
+ editable: edit_allowed,
738
+ placeholder: "Enter Question Here",
739
+ value: draft_poll.poll_question,
740
+ onChangeText: text => setFlashState({
741
+ ...flash_state,
742
+ draft_poll: {
743
+ ...draft_poll,
744
+ poll_question: text
745
+ }
746
+ })
747
+ })), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
748
+ title: "SAVE QUESTION",
749
+ type: "success",
750
+ disabled: !edit_allowed || !is_q_changed ? true : false,
751
+ style: {
752
+ margin: 10,
753
+ opacity: !edit_allowed || !is_q_changed ? 0.5 : 1
754
+ },
755
+ loading: action_loading,
756
+ onPress: () => updatePoll(draft_poll)
757
+ }));
758
+ case 'results':
759
+ if (!poll) {
760
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
761
+ }
762
+ if (active_step != 'results') {
763
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
764
+ }
765
+ let staked = poll_summaries.reduce((a, b) => a + b.stake, 0) - (poll.base_stake ?? 0);
766
+ let responses = poll_summaries.reduce((a, b) => a + b.count, 0) - poll_summaries.length;
767
+ if (responses < 0) {
768
+ responses = 0;
769
+ }
770
+ let participants = players.length;
771
+ let total_stake = poll_summaries.reduce((a, b) => a + b.stake, 0);
772
+ let winnings = poll_summaries.reduce((a, b) => a + b.winnings, 0);
773
+ let revenue = total_stake - winnings;
774
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
775
+ transparent: true
776
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
777
+ transparent: true,
778
+ type: "row",
779
+ style: {
780
+ padding: 20,
781
+ borderBottomWidth: 1,
782
+ borderColor: Colors.borders.light
783
+ }
784
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
785
+ transparent: true,
786
+ style: {
787
+ flex: 1,
788
+ marginRight: 10
789
+ }
790
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
791
+ theme: "h1"
792
+ }, "Total Revenue"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
793
+ theme: "description",
794
+ style: {
795
+ marginTop: 3
796
+ }
797
+ }, "Total amount of revenue earned on this flash market")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
798
+ theme: "h1"
799
+ }, "$", revenue.toFixed(2))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
800
+ transparent: true,
801
+ type: "row",
802
+ style: {
803
+ padding: 20,
804
+ borderBottomWidth: 1,
805
+ borderColor: Colors.borders.light
806
+ }
807
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
808
+ transparent: true,
809
+ style: {
810
+ flex: 1,
811
+ marginRight: 10
812
+ }
813
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
814
+ theme: "h1"
815
+ }, "Total Volume"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
816
+ theme: "description",
817
+ style: {
818
+ marginTop: 3
819
+ }
820
+ }, "Total amount bet on this market")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
821
+ theme: "h1"
822
+ }, "$", staked.toFixed(2))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
823
+ transparent: true,
824
+ type: "row",
825
+ style: {
826
+ padding: 20,
827
+ borderBottomWidth: 1,
828
+ borderColor: Colors.borders.light
829
+ }
830
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
831
+ transparent: true,
832
+ style: {
833
+ flex: 1,
834
+ marginRight: 10
835
+ }
836
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
837
+ theme: "h1"
838
+ }, "Total Responses"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
839
+ theme: "description",
840
+ style: {
841
+ marginTop: 3
842
+ }
843
+ }, "Total number of bets on this market")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
844
+ theme: "h1"
845
+ }, responses.toFixed())), /*#__PURE__*/_react.default.createElement(_Themed.View, {
846
+ transparent: true,
847
+ type: "row",
848
+ style: {
849
+ padding: 20,
850
+ borderBottomWidth: 1,
851
+ borderColor: Colors.borders.light
852
+ }
853
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
854
+ transparent: true,
855
+ style: {
856
+ flex: 1,
857
+ marginRight: 10
858
+ }
859
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
860
+ theme: "h1"
861
+ }, "Participants"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
862
+ theme: "description",
863
+ style: {
864
+ marginTop: 3
865
+ }
866
+ }, "Players that participated in this flash market")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
867
+ theme: "h1"
868
+ }, participants.toFixed()), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
869
+ onPress: () => setExpandParticipants(!expand_participants),
870
+ float: true,
871
+ style: {
872
+ marginLeft: 10,
873
+ height: 30,
874
+ width: 30,
875
+ borderRadius: 100,
876
+ padding: 10,
877
+ justifyContent: 'center',
878
+ alignItems: 'center'
879
+ }
880
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
881
+ direction: expand_participants ? 'up' : 'down',
882
+ size: 8,
883
+ color: Colors.text.action
884
+ }))), expand_participants ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
885
+ transparent: true,
886
+ style: {
887
+ margin: 10
888
+ }
889
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
890
+ data: players,
891
+ renderItem: renderPlayers,
892
+ key: 'participant_list_poll',
893
+ keyExtractor: item => item.player_id.toString()
894
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
895
+ case 'options':
896
+ if (!poll) {
897
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
898
+ }
899
+ if (active_step != 'options') {
900
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
901
+ }
902
+ const add_allowed = ['pending', 'paused'].includes(poll.status) && total_responses == 0 ? true : false;
903
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
904
+ transparent: true
905
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
906
+ style: {
907
+ flexDirection: 'row',
908
+ alignItems: 'center',
909
+ padding: 10
910
+ }
911
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
912
+ transparent: true,
913
+ style: {
914
+ flex: 1
915
+ }
916
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
917
+ theme: "h1"
918
+ }, "Flash Market Options"), poll.status == 'pending' ? /*#__PURE__*/_react.default.createElement(_Themed.Text, {
919
+ theme: "description",
920
+ style: {
921
+ marginTop: 3
922
+ }
923
+ }, "Enter the options below!") : /*#__PURE__*/_react.default.createElement(_Themed.Text, {
924
+ theme: "description",
925
+ style: {
926
+ marginTop: 3
927
+ }
928
+ }, "Select the winning option below")), probability_changed ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
929
+ title: "SAVE PROBABILITIES",
930
+ onPress: () => handleSaveProbabilities(),
931
+ type: "success",
932
+ disabled: action_loading,
933
+ loading: action_loading,
934
+ style: {
935
+ margin: 5,
936
+ padding: 10,
937
+ opacity: loading ? 0.5 : 1
938
+ }
939
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
940
+ transparent: true,
941
+ style: {
942
+ padding: 10
943
+ }
944
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
945
+ data: real_options.sort((a, b) => a.priority - b.priority || (0, _momentMini.default)(a.create_datetime).unix() - (0, _momentMini.default)(b.create_datetime).unix()),
946
+ key: "option_list",
947
+ keyboardShouldPersistTaps: true,
948
+ keyExtractor: item => item.poll_option_id.toString(),
949
+ renderItem: renderOptions
950
+ }), add_allowed ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
951
+ transparent: true,
952
+ title_color: Colors.text.action,
953
+ title: real_options.length > 0 ? 'Add another option' : 'Add an option',
954
+ style: {
955
+ alignItems: 'flex-start',
956
+ padding: 10
957
+ },
958
+ onPress: async () => handleAddOption()
959
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)));
960
+ case 'settings':
961
+ if (active_step != 'settings') {
962
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
963
+ }
964
+ if (!draft_poll) {
965
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
966
+ }
967
+ let settings_edit_allowed = ['paused', 'pending'].includes(draft_poll.status) && total_responses == 0 ? true : false;
968
+ const min_stake_changed = settings_edit_allowed && poll?.minimum_stake != parseFloat(min_stake) ? true : false;
969
+ const max_stake_changed = settings_edit_allowed && poll?.max_stake != parseFloat(max_stake) ? true : false;
970
+ const base_stake_changed = settings_edit_allowed && poll?.base_stake != parseFloat(base_stake) ? true : false;
971
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
972
+ transparent: true
973
+ }, player?.role == 'admin' ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
974
+ type: "row",
975
+ style: {
976
+ padding: 20,
977
+ borderBottomWidth: 1,
978
+ borderColor: Colors.borders.light
979
+ }
980
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
981
+ transparent: true,
982
+ style: {
983
+ flex: 1,
984
+ marginRight: 10
985
+ }
986
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
987
+ theme: "h1"
988
+ }, "Base Stake"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
989
+ theme: "description",
990
+ style: {
991
+ marginTop: 3
992
+ }
993
+ }, "Fill responses with a base stake based on their probabilities.")), /*#__PURE__*/_react.default.createElement(_Themed.TextInput, {
994
+ value: base_stake,
995
+ editable: settings_edit_allowed,
996
+ style: {
997
+ width: 75,
998
+ textAlign: 'center'
999
+ },
1000
+ onFocusPosition: onFocusPosition,
1001
+ onChangeText: text => setLabels({
1002
+ ...labels,
1003
+ base_stake: text
1004
+ })
1005
+ }), base_stake_changed && poll?.status == 'pending' ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1006
+ title: "SAVE",
1007
+ type: "success",
1008
+ onPress: () => {
1009
+ let num = parseFloat(base_stake);
1010
+ if (isNaN(num)) {
1011
+ return alert('Invalid value');
1012
+ }
1013
+ if (num < 0) {
1014
+ return alert('Invalid amount');
1015
+ }
1016
+ updatePoll({
1017
+ ...draft_poll,
1018
+ base_stake: parseFloat(base_stake)
1019
+ });
1020
+ }
1021
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1022
+ transparent: true,
1023
+ type: "row",
1024
+ style: {
1025
+ padding: 20,
1026
+ borderBottomWidth: 1,
1027
+ borderColor: Colors.borders.light
1028
+ }
1029
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1030
+ transparent: true,
1031
+ style: {
1032
+ flex: 1,
1033
+ marginRight: 10
1034
+ }
1035
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1036
+ theme: "h1"
1037
+ }, "Minimum Stake Allowed"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1038
+ theme: "description",
1039
+ style: {
1040
+ marginTop: 3
1041
+ }
1042
+ }, "The smallest bet allowed to be placed on this market.")), /*#__PURE__*/_react.default.createElement(_Themed.TextInput, {
1043
+ value: min_stake,
1044
+ editable: settings_edit_allowed,
1045
+ onFocus: () => min_stake == '0' ? setLabels({
1046
+ ...labels,
1047
+ min_stake: ''
1048
+ }) : console.log(''),
1049
+ style: {
1050
+ width: 75,
1051
+ textAlign: 'center'
1052
+ },
1053
+ onFocusPosition: onFocusPosition,
1054
+ onChangeText: text => setLabels({
1055
+ ...labels,
1056
+ min_stake: text
1057
+ })
1058
+ }), min_stake_changed ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1059
+ title: "SAVE",
1060
+ type: "success",
1061
+ onPress: () => {
1062
+ let num = parseFloat(min_stake);
1063
+ if (isNaN(num)) {
1064
+ return alert('Invalid value');
1065
+ }
1066
+ if (num < 0) {
1067
+ return alert('Invalid amount');
1068
+ }
1069
+ updatePoll({
1070
+ ...draft_poll,
1071
+ minimum_stake: parseFloat(min_stake)
1072
+ });
1073
+ }
1074
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1075
+ transparent: true,
1076
+ type: "row",
1077
+ style: {
1078
+ padding: 20,
1079
+ borderBottomWidth: 1,
1080
+ borderColor: Colors.borders.light
1081
+ }
1082
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1083
+ transparent: true,
1084
+ style: {
1085
+ flex: 1,
1086
+ marginRight: 10
1087
+ }
1088
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1089
+ theme: "h1"
1090
+ }, "Max Stake Allowed"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1091
+ theme: "description",
1092
+ style: {
1093
+ marginTop: 3
1094
+ }
1095
+ }, "The largest bet allowed to be placed on this market.")), /*#__PURE__*/_react.default.createElement(_Themed.TextInput, {
1096
+ value: max_stake,
1097
+ editable: settings_edit_allowed,
1098
+ onFocus: () => max_stake == '0' ? setLabels({
1099
+ ...labels,
1100
+ max_stake: ''
1101
+ }) : console.log(''),
1102
+ style: {
1103
+ width: 75,
1104
+ textAlign: 'center'
1105
+ },
1106
+ onFocusPosition: onFocusPosition,
1107
+ onChangeText: text => setLabels({
1108
+ ...labels,
1109
+ max_stake: text
1110
+ })
1111
+ }), max_stake_changed ? /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1112
+ title: "SAVE",
1113
+ type: "success",
1114
+ onPress: () => {
1115
+ let num = parseFloat(max_stake);
1116
+ if (isNaN(num)) {
1117
+ return alert('Invalid value');
1118
+ }
1119
+ if (num < 0) {
1120
+ return alert('Invalid amount');
1121
+ }
1122
+ updatePoll({
1123
+ ...draft_poll,
1124
+ max_stake: parseFloat(max_stake)
1125
+ });
1126
+ }
1127
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1128
+ transparent: true,
1129
+ type: "row",
1130
+ style: {
1131
+ padding: 20,
1132
+ borderBottomWidth: 1,
1133
+ borderColor: Colors.borders.light
1134
+ }
1135
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1136
+ transparent: true,
1137
+ style: {
1138
+ flex: 1,
1139
+ marginRight: 10
1140
+ }
1141
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1142
+ theme: "h1"
1143
+ }, "Allow Multiple Responses"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1144
+ theme: "description",
1145
+ style: {
1146
+ marginTop: 3
1147
+ }
1148
+ }, "If on, players can select multiple options.")), /*#__PURE__*/_react.default.createElement(_Components.Switch, {
1149
+ switch_type: "on_off",
1150
+ disabled: settings_edit_allowed ? false : true,
1151
+ value: draft_poll.multi_responses_allowed ?? false,
1152
+ onChange: async val => {
1153
+ updatePoll({
1154
+ ...draft_poll,
1155
+ multi_responses_allowed: val
1156
+ });
1157
+ }
1158
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1159
+ transparent: true,
1160
+ type: "row",
1161
+ style: {
1162
+ padding: 20,
1163
+ borderBottomWidth: 1,
1164
+ borderColor: Colors.borders.light
1165
+ }
1166
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1167
+ transparent: true,
1168
+ style: {
1169
+ flex: 1,
1170
+ marginRight: 10
1171
+ }
1172
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1173
+ theme: "h1"
1174
+ }, "Allow Increase Stake"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1175
+ theme: "description",
1176
+ style: {
1177
+ marginTop: 3
1178
+ }
1179
+ }, "If on, players can continue to add more funds to a selected option.")), /*#__PURE__*/_react.default.createElement(_Components.Switch, {
1180
+ switch_type: "on_off",
1181
+ disabled: settings_edit_allowed ? false : true,
1182
+ value: draft_poll.stake_increase_allowed ?? false,
1183
+ onChange: async val => {
1184
+ updatePoll({
1185
+ ...draft_poll,
1186
+ stake_increase_allowed: val
1187
+ });
1188
+ }
1189
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1190
+ transparent: true,
1191
+ type: "row",
1192
+ style: {
1193
+ padding: 20,
1194
+ borderBottomWidth: 1,
1195
+ borderColor: Colors.borders.light
1196
+ }
1197
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1198
+ transparent: true,
1199
+ style: {
1200
+ flex: 1,
1201
+ marginRight: 10
1202
+ }
1203
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1204
+ theme: "h1"
1205
+ }, "Flash Close Time"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1206
+ theme: "description",
1207
+ style: {
1208
+ marginTop: 3
1209
+ }
1210
+ }, "When should this market close?")), /*#__PURE__*/_react.default.createElement(_BETimePicker.default, {
1211
+ selected_time: (0, _momentMini.default)(poll?.end_datetime),
1212
+ disabled: settings_edit_allowed ? false : true,
1213
+ onSelectTime: val => {
1214
+ updatePoll({
1215
+ ...draft_poll,
1216
+ end_datetime: val
1217
+ });
1218
+ }
1219
+ })));
1220
+ default:
1221
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
1222
+ }
1223
+ };
1224
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
1225
+ float: float,
1226
+ style: {
1227
+ flex: 1
1228
+ }
1229
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1230
+ transparent: true,
1231
+ style: {
1232
+ flex: 1
1233
+ }
1234
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
1235
+ data: sections
1236
+ //keyboardShouldPersistTaps
1237
+ ,
1238
+ key: "flash_market_sections",
1239
+ keyExtractor: item => item,
1240
+ renderItem: renderSections
1241
+ })));
1242
+ };
1243
+ var _default = exports.default = ManageFlashMarket;
1244
+ //# sourceMappingURL=ManageFlashMarket.js.map