be-components 7.0.5 → 7.0.8

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