be-components 6.2.2 → 6.2.4

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 (94) hide show
  1. package/lib/commonjs/Competition/components/CompetitionPlay.js +8 -1
  2. package/lib/commonjs/Competition/components/CompetitionPlay.js.map +1 -1
  3. package/lib/commonjs/Competition/components/MarketsCard.js +1 -0
  4. package/lib/commonjs/Competition/components/MarketsCard.js.map +1 -1
  5. package/lib/commonjs/MarketComponents/api/index.js +189 -0
  6. package/lib/commonjs/MarketComponents/api/index.js.map +1 -1
  7. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js +19 -5
  8. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  9. package/lib/commonjs/MarketComponents/components/CreateMarketForm.js +736 -0
  10. package/lib/commonjs/MarketComponents/components/CreateMarketForm.js.map +1 -0
  11. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js +23 -8
  12. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  13. package/lib/commonjs/MarketComponents/components/WeightProgress.js +53 -0
  14. package/lib/commonjs/MarketComponents/components/WeightProgress.js.map +1 -0
  15. package/lib/commonjs/MarketComponents/index.js +2 -0
  16. package/lib/commonjs/MarketComponents/index.js.map +1 -1
  17. package/lib/commonjs/MarketMaker/api/index.js +3 -0
  18. package/lib/commonjs/MarketMaker/api/index.js.map +1 -1
  19. package/lib/commonjs/Poll/components/PollCard.js +3 -0
  20. package/lib/commonjs/Poll/components/PollCard.js.map +1 -1
  21. package/lib/module/Competition/components/CompetitionPlay.js +8 -1
  22. package/lib/module/Competition/components/CompetitionPlay.js.map +1 -1
  23. package/lib/module/Competition/components/MarketsCard.js +1 -0
  24. package/lib/module/Competition/components/MarketsCard.js.map +1 -1
  25. package/lib/module/MarketComponents/api/index.js +189 -0
  26. package/lib/module/MarketComponents/api/index.js.map +1 -1
  27. package/lib/module/MarketComponents/components/AthleteMarket/index.js +19 -5
  28. package/lib/module/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  29. package/lib/module/MarketComponents/components/CreateMarketForm.js +727 -0
  30. package/lib/module/MarketComponents/components/CreateMarketForm.js.map +1 -0
  31. package/lib/module/MarketComponents/components/TeamEventMarket/index.js +23 -8
  32. package/lib/module/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  33. package/lib/module/MarketComponents/components/WeightProgress.js +45 -0
  34. package/lib/module/MarketComponents/components/WeightProgress.js.map +1 -0
  35. package/lib/module/MarketComponents/index.js +2 -0
  36. package/lib/module/MarketComponents/index.js.map +1 -1
  37. package/lib/module/MarketMaker/api/index.js +3 -0
  38. package/lib/module/MarketMaker/api/index.js.map +1 -1
  39. package/lib/module/Poll/components/PollCard.js +3 -0
  40. package/lib/module/Poll/components/PollCard.js.map +1 -1
  41. package/lib/typescript/lib/commonjs/Competition/components/CompetitionPlay.d.ts.map +1 -1
  42. package/lib/typescript/lib/commonjs/Competition/components/MarketsCard.d.ts.map +1 -1
  43. package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts +6 -0
  44. package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts.map +1 -1
  45. package/lib/typescript/lib/commonjs/MarketComponents/components/CreateMarketForm.d.ts +20 -0
  46. package/lib/typescript/lib/commonjs/MarketComponents/components/CreateMarketForm.d.ts.map +1 -0
  47. package/lib/typescript/lib/commonjs/MarketComponents/components/WeightProgress.d.ts +8 -0
  48. package/lib/typescript/lib/commonjs/MarketComponents/components/WeightProgress.d.ts.map +1 -0
  49. package/lib/typescript/lib/commonjs/MarketComponents/index.d.ts +1 -0
  50. package/lib/typescript/lib/commonjs/MarketMaker/api/index.d.ts.map +1 -1
  51. package/lib/typescript/lib/commonjs/Poll/components/PollCard.d.ts.map +1 -1
  52. package/lib/typescript/lib/module/Competition/components/CompetitionPlay.d.ts.map +1 -1
  53. package/lib/typescript/lib/module/Competition/components/MarketsCard.d.ts.map +1 -1
  54. package/lib/typescript/lib/module/MarketComponents/api/index.d.ts +6 -0
  55. package/lib/typescript/lib/module/MarketComponents/api/index.d.ts.map +1 -1
  56. package/lib/typescript/lib/module/MarketComponents/components/AthleteMarket/index.d.ts +2 -1
  57. package/lib/typescript/lib/module/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  58. package/lib/typescript/lib/module/MarketComponents/components/CreateMarketForm.d.ts +20 -0
  59. package/lib/typescript/lib/module/MarketComponents/components/CreateMarketForm.d.ts.map +1 -0
  60. package/lib/typescript/lib/module/MarketComponents/components/TeamEventMarket/index.d.ts +2 -1
  61. package/lib/typescript/lib/module/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -1
  62. package/lib/typescript/lib/module/MarketComponents/components/WeightProgress.d.ts +8 -0
  63. package/lib/typescript/lib/module/MarketComponents/components/WeightProgress.d.ts.map +1 -0
  64. package/lib/typescript/lib/module/MarketComponents/index.d.ts +2 -0
  65. package/lib/typescript/lib/module/MarketComponents/index.d.ts.map +1 -1
  66. package/lib/typescript/lib/module/MarketMaker/api/index.d.ts.map +1 -1
  67. package/lib/typescript/lib/module/Poll/components/PollCard.d.ts.map +1 -1
  68. package/lib/typescript/src/Competition/components/MarketsCard.d.ts.map +1 -1
  69. package/lib/typescript/src/MarketComponents/api/index.d.ts +6 -0
  70. package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -1
  71. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts +2 -1
  72. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  73. package/lib/typescript/src/MarketComponents/components/CreateMarketForm.d.ts +27 -0
  74. package/lib/typescript/src/MarketComponents/components/CreateMarketForm.d.ts.map +1 -0
  75. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts +2 -1
  76. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -1
  77. package/lib/typescript/src/MarketComponents/components/WeightProgress.d.ts +12 -0
  78. package/lib/typescript/src/MarketComponents/components/WeightProgress.d.ts.map +1 -0
  79. package/lib/typescript/src/MarketComponents/index.d.ts +25 -2
  80. package/lib/typescript/src/MarketComponents/index.d.ts.map +1 -1
  81. package/lib/typescript/src/MarketMaker/api/index.d.ts +1 -1
  82. package/lib/typescript/src/MarketMaker/api/index.d.ts.map +1 -1
  83. package/lib/typescript/src/Poll/components/PollCard.d.ts.map +1 -1
  84. package/package.json +1 -1
  85. package/src/Competition/components/CompetitionPlay.tsx +6 -6
  86. package/src/Competition/components/MarketsCard.tsx +1 -0
  87. package/src/MarketComponents/api/index.ts +166 -3
  88. package/src/MarketComponents/components/AthleteMarket/index.tsx +22 -10
  89. package/src/MarketComponents/components/CreateMarketForm.tsx +444 -0
  90. package/src/MarketComponents/components/TeamEventMarket/index.tsx +31 -18
  91. package/src/MarketComponents/components/WeightProgress.tsx +32 -0
  92. package/src/MarketComponents/index.tsx +2 -0
  93. package/src/MarketMaker/api/index.ts +2 -1
  94. package/src/Poll/components/PollCard.tsx +1 -0
@@ -0,0 +1,736 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _Themed = require("../../Components/Themed");
9
+ var _api = require("../api");
10
+ var _reactNative = require("react-native");
11
+ var _Components = require("../../Components");
12
+ var _useColors = require("../../constants/useColors");
13
+ var _api2 = require("../../MarketMaker/api");
14
+ var _OrderGradeBar = _interopRequireDefault(require("./OrderGradeBar"));
15
+ var _WeightProgress = _interopRequireDefault(require("./WeightProgress"));
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ const sections = ['o_side', 'submit', 'trade_side', 'draft_orders', 'my_orders', 'what_if'];
20
+ const CreateMarketForm = ({
21
+ float,
22
+ action_loading,
23
+ unit_size,
24
+ location,
25
+ coordinates,
26
+ style,
27
+ my_orders,
28
+ best_available_orders,
29
+ contest_type,
30
+ contest_id,
31
+ market_id,
32
+ side_id,
33
+ side_type,
34
+ onCancel,
35
+ onSubmitOrders
36
+ }) => {
37
+ const Colors = (0, _useColors.useColors)();
38
+ const [draft_orders, setDraftOrders] = (0, _react.useState)([]);
39
+ const [draft_data, setDraftData] = (0, _react.useState)({
40
+ stake: unit_size?.toFixed(2) ?? '10',
41
+ o_side_margin: 0.02,
42
+ trade_side_margin: 0.02
43
+ });
44
+ const {
45
+ o_side_margin,
46
+ trade_side_margin,
47
+ stake
48
+ } = draft_data;
49
+ const [form_data, setFormData] = (0, _react.useState)({
50
+ loading: false,
51
+ markets: [],
52
+ prices: [],
53
+ trades: []
54
+ });
55
+ const {
56
+ loading,
57
+ markets,
58
+ prices,
59
+ event,
60
+ tournament,
61
+ match
62
+ } = form_data;
63
+ const {
64
+ contest_title
65
+ } = _api.MarketComponentHelpers.getContestDetails(contest_type, event, tournament, match);
66
+ const market = markets.find(mk => mk.market_id == market_id);
67
+ const orders = _api.MarketComponentHelpers.setMarket(parseFloat(stake), contest_type, best_available_orders, prices, o_side_margin, trade_side_margin, market, event, tournament, match, undefined, undefined);
68
+ const no_vig_data = _api2.MarketMaketHelpers.getNoVigPrice(prices, market);
69
+ (0, _react.useEffect)(() => {
70
+ _api.MarketComponentApi.setEnvironment();
71
+ getFormData();
72
+ }, []);
73
+ const getFormData = async () => {
74
+ setFormData({
75
+ ...form_data,
76
+ loading: true
77
+ });
78
+ const mks = await _api.MarketComponentApi.getMarkets();
79
+ let ev, tourn, mtch;
80
+ if (contest_type == 'team') {
81
+ let evs = await _api.MarketComponentApi.getEventsByEventIds([contest_id]);
82
+ ev = evs[0];
83
+ }
84
+ if (contest_type == 'tournament') {
85
+ let tourns = await _api.MarketComponentApi.getTournamentsByTournamentIds([contest_id]);
86
+ tourn = tourns[0];
87
+ }
88
+ if (contest_type == 'match') {
89
+ let mtchs = await _api.MarketComponentApi.getMatchesByMatchIds([contest_id]);
90
+ mtch = mtchs[0];
91
+ if (mtch) {
92
+ let mtch_tourns = await _api.MarketComponentApi.getTournamentsByTournamentIds([mtch.tournament_id]);
93
+ tourn = mtch_tourns[0];
94
+ }
95
+ }
96
+ let contest_prices = await _api.MarketComponentApi.getExternalPrices(contest_type, contest_id, market_id);
97
+ //Get the correct prices
98
+ if (side_type) {
99
+ contest_prices = contest_prices.filter(p => p.participant_type == side_type && p.participant_id == side_id);
100
+ }
101
+ //First try to get consensus
102
+ contest_prices = contest_prices.filter(p => p.external_name == 'Consensus');
103
+ if (contest_prices.length == 0) {
104
+ let available_books = [...new Set(contest_prices.map(p => p.external_name))];
105
+ contest_prices = contest_prices.filter(p => p.external_name == available_books[0]);
106
+ }
107
+ let contest_trades = await _api.MarketComponentApi.getLatestTradesByEvents(contest_type, [contest_id]);
108
+ setFormData({
109
+ ...form_data,
110
+ loading: false,
111
+ markets: mks,
112
+ match: mtch,
113
+ event: ev,
114
+ tournament: tourn,
115
+ prices: contest_prices,
116
+ trades: contest_trades
117
+ });
118
+ };
119
+ const handleSubmitOrder = () => {
120
+ if (action_loading) {
121
+ return;
122
+ }
123
+ if (draft_orders.length == 0) {
124
+ return alert('Unable to submit!');
125
+ }
126
+ if (!location) {
127
+ return alert('Unable to create order without location');
128
+ }
129
+ if (!location.legal_ind) {
130
+ return alert('Unable to create order in this location');
131
+ }
132
+ if (!coordinates?.latitude) {
133
+ return alert('Need coordinates');
134
+ }
135
+ let new_orders = draft_orders.map(o => {
136
+ o.region = location.label;
137
+ o.location = coordinates;
138
+ return o;
139
+ });
140
+ onSubmitOrders(new_orders);
141
+ };
142
+ const handleUpdateMargin = (side, direction) => {
143
+ let o_side = o_side_margin;
144
+ let trade_side = trade_side_margin;
145
+ if (side == 'other' && direction == 'increase') {
146
+ o_side += 0.001;
147
+ }
148
+ if (side == 'other' && direction == 'decrease') {
149
+ o_side -= 0.001;
150
+ }
151
+ if (side == 'trade' && direction == 'increase') {
152
+ trade_side += 0.001;
153
+ }
154
+ if (side == 'trade' && direction == 'decrease') {
155
+ trade_side -= 0.001;
156
+ }
157
+ let total_margin = o_side + trade_side;
158
+ if (total_margin < 0.001) {
159
+ return;
160
+ } //Cant go negative!!
161
+ setDraftData({
162
+ o_side_margin: o_side,
163
+ trade_side_margin: trade_side,
164
+ stake
165
+ });
166
+ };
167
+ const renderOrders = data => {
168
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
169
+ style: {
170
+ flexGrow: 1
171
+ }
172
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
173
+ style: {
174
+ padding: 10
175
+ }
176
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
177
+ theme: "h1",
178
+ textAlign: "center"
179
+ }, data.item.title)));
180
+ };
181
+ const renderSections = data => {
182
+ switch (data.item) {
183
+ case 'my_orders':
184
+ if (!market) {
185
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
186
+ }
187
+ const hedges = _api2.MarketMaketHelpers.getHedgesFromPositions(my_orders, markets);
188
+ const hedge = hedges[0];
189
+ const o_side_stats = _api2.MarketMaketHelpers.getOrderStats(my_orders.filter(o => o.side != market.trade_side));
190
+ const t_side_stats = _api2.MarketMaketHelpers.getOrderStats(my_orders.filter(o => o.side == market.trade_side));
191
+ const stake_weight = _api2.MarketMaketHelpers.getWeight(o_side_stats.stake_potential_winnings, t_side_stats.stake_potential_winnings, market);
192
+ const at_risk = o_side_stats.stake_potential_winnings - t_side_stats.stake_potential_winnings;
193
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
194
+ type: "footer",
195
+ style: {
196
+ padding: 10
197
+ }
198
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
199
+ transparent: true,
200
+ style: {
201
+ flexDirection: 'row',
202
+ alignItems: 'center',
203
+ padding: 10
204
+ }
205
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
206
+ transparent: true,
207
+ style: {
208
+ flex: 1
209
+ }
210
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
211
+ theme: "h1"
212
+ }, "My Current Position")), hedge ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
213
+ transparent: true
214
+ }, hedge.delayed_cash_draw ? /*#__PURE__*/_react.default.createElement(_Themed.Text, {
215
+ theme: "error",
216
+ size: 14
217
+ }, "-$", hedge.delayed_cash_draw.toFixed(2)) : /*#__PURE__*/_react.default.createElement(_Themed.Text, {
218
+ theme: "success",
219
+ size: 14
220
+ }, "$", hedge.delayed_cash_no_draw.toFixed(2)), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
221
+ theme: "description"
222
+ }, "Hedged")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
223
+ transparent: true,
224
+ type: "row"
225
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
226
+ transparent: true,
227
+ style: {
228
+ flex: 1,
229
+ padding: 5
230
+ }
231
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
232
+ theme: "h2",
233
+ textAlign: "center"
234
+ }, o_side_stats.stake_potential_winnings.toFixed(2))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
235
+ transparent: true,
236
+ style: {
237
+ flex: 1,
238
+ padding: 5
239
+ }
240
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
241
+ theme: "h2",
242
+ textAlign: "center"
243
+ }, t_side_stats.stake_potential_winnings.toFixed(2)))), /*#__PURE__*/_react.default.createElement(_WeightProgress.default, {
244
+ style: {
245
+ margin: 10
246
+ },
247
+ min_value: 0,
248
+ max_value: 100,
249
+ value: stake_weight.weighted_pct,
250
+ bar_height: 18
251
+ }), /*#__PURE__*/_react.default.createElement(_Themed.View, {
252
+ transparent: true,
253
+ type: "row"
254
+ }, at_risk > 0 ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
255
+ transparent: true,
256
+ style: {
257
+ flex: 1,
258
+ padding: 5
259
+ }
260
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
261
+ theme: "error",
262
+ textAlign: "center",
263
+ style: {
264
+ marginTop: 3
265
+ }
266
+ }, "$", at_risk.toFixed(2)), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
267
+ theme: "description",
268
+ textAlign: "center",
269
+ style: {
270
+ marginTop: 3
271
+ }
272
+ }, "At Risk")) : /*#__PURE__*/_react.default.createElement(_Themed.View, {
273
+ style: {
274
+ flex: 1
275
+ }
276
+ }), at_risk < 0 ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
277
+ transparent: true,
278
+ style: {
279
+ flex: 1,
280
+ padding: 5
281
+ }
282
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
283
+ theme: "error",
284
+ textAlign: "center",
285
+ style: {
286
+ marginTop: 3
287
+ }
288
+ }, "$", at_risk.toFixed(2)), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
289
+ theme: "description",
290
+ textAlign: "center",
291
+ style: {
292
+ marginTop: 3
293
+ }
294
+ }, "At Risk")) : /*#__PURE__*/_react.default.createElement(_Themed.View, {
295
+ style: {
296
+ flex: 1
297
+ }
298
+ })));
299
+ case 'o_side':
300
+ if (draft_orders.length > 0) {
301
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
302
+ }
303
+ if (!market) {
304
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
305
+ }
306
+ let o_side_option = market.side_options.find(so => so.side != market.trade_side);
307
+ if (!o_side_option) {
308
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
309
+ }
310
+ const o_side_order = orders.find(o => o.side != market.trade_side);
311
+ if (!o_side_order) {
312
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
313
+ }
314
+ const o_side_price = prices.find(p => p.side != market.trade_side);
315
+ const o_side_no_vig = no_vig_data?.o_side_odds;
316
+ const o_best_available = best_available_orders.find(o => o.market_id == market_id && o.side != market.trade_side);
317
+ //const my_o_side_open = my_orders.filter(o => o.market_id == market_id && o.side != market.trade_side);
318
+ //const my_open_stats = MarketMaketHelpers.getOrderStats(my_o_side_open, o_best_available);
319
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
320
+ style: {
321
+ borderWidth: 1,
322
+ borderColor: Colors.borders.light,
323
+ margin: 10
324
+ }
325
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
326
+ type: "row",
327
+ style: {
328
+ padding: 10,
329
+ borderBottomWidth: 1,
330
+ borderColor: Colors.borders.light
331
+ }
332
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
333
+ transparent: true,
334
+ style: {
335
+ flex: 1
336
+ }
337
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
338
+ theme: "h2"
339
+ }, o_side_order.title), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
340
+ theme: "description",
341
+ style: {
342
+ marginTop: 3
343
+ }
344
+ }, "$", o_side_order.open_amt.toFixed(2), " to win $", o_side_order.potential_winnings.toFixed(2))), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
345
+ theme: "h1"
346
+ }, "$", o_side_order.open_amt.toFixed(2)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
347
+ type: "row",
348
+ style: {
349
+ marginLeft: 10
350
+ }
351
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
352
+ float: true,
353
+ onPress: () => handleUpdateMargin('other', 'increase')
354
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
355
+ direction: "left",
356
+ size: 8,
357
+ color: Colors.text.h1
358
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
359
+ style: {
360
+ paddingLeft: 10,
361
+ paddingRight: 10
362
+ }
363
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
364
+ theme: "h1",
365
+ textAlign: "center"
366
+ }, (o_side_order.probability * 100).toFixed(2), "%"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
367
+ theme: "light",
368
+ style: {
369
+ marginTop: 3
370
+ },
371
+ textAlign: "center"
372
+ }, _api.MarketComponentHelpers.getOddsLabel(o_side_order.odds))), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
373
+ float: true,
374
+ onPress: () => handleUpdateMargin('other', 'decrease')
375
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
376
+ direction: "right",
377
+ size: 8,
378
+ color: Colors.text.h1
379
+ })))), o_best_available ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
380
+ type: "row",
381
+ style: {
382
+ padding: 10
383
+ }
384
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
385
+ transparent: true,
386
+ style: {
387
+ flex: 1
388
+ }
389
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
390
+ theme: "h1"
391
+ }, o_best_available.title), o_best_available.grade ? /*#__PURE__*/_react.default.createElement(_OrderGradeBar.default, {
392
+ style: {
393
+ alignSelf: 'flex-start',
394
+ marginTop: 3
395
+ },
396
+ grade: o_best_available.grade,
397
+ view_type: "card",
398
+ onSelectGrade: () => console.log('')
399
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
400
+ style: {
401
+ alignItems: 'flex-end'
402
+ }
403
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
404
+ theme: "h2"
405
+ }, _api.MarketComponentHelpers.getOddsLabel(o_best_available.odds)), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
406
+ theme: "success"
407
+ }, "$", o_best_available.open_amt.toFixed(2), " Available")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
408
+ title: "BUY",
409
+ type: "success",
410
+ loading: action_loading,
411
+ style: {
412
+ padding: 10,
413
+ marginLeft: 10,
414
+ opacity: action_loading ? 0.5 : 1
415
+ },
416
+ disabled: action_loading,
417
+ onPress: () => {
418
+ let side_ids = _api.MarketComponentHelpers.getSideIds(contest_type, o_side_option, market, event, tournament, match, undefined, undefined);
419
+ if (!side_ids) {
420
+ return;
421
+ }
422
+ let trade = _api2.MarketMaketHelpers.getTradeFromAvailableOrder(o_best_available, side_ids.reversed_side_id);
423
+ let order = _api2.MarketMaketHelpers.getOrderFromTrade(trade, unit_size ?? 10, o_best_available.order_id);
424
+ order.title = o_best_available.title;
425
+ setDraftOrders([order]);
426
+ }
427
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), o_side_price && o_side_no_vig ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
428
+ type: "footer",
429
+ style: {
430
+ flexDirection: 'row',
431
+ alignItems: 'center',
432
+ padding: 10
433
+ }
434
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
435
+ transparent: true,
436
+ style: {
437
+ flex: 1
438
+ }
439
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
440
+ theme: "h1"
441
+ }, o_side_price.external_name), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
442
+ theme: "light",
443
+ style: {
444
+ marginTop: 3
445
+ }
446
+ }, "External price with vig removed")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
447
+ theme: "h2"
448
+ }, _api.MarketComponentHelpers.getOddsLabel(o_side_no_vig))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
449
+ case 'submit':
450
+ if (draft_orders.length > 0) {
451
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
452
+ }
453
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
454
+ type: "header",
455
+ style: {
456
+ flexDirection: 'row',
457
+ padding: 10
458
+ }
459
+ }, /*#__PURE__*/_react.default.createElement(_Themed.TextInput, {
460
+ value: stake,
461
+ style: {
462
+ width: 100,
463
+ textAlign: 'center'
464
+ },
465
+ onChangeText: text => setDraftData({
466
+ ...draft_data,
467
+ stake: text
468
+ })
469
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
470
+ style: {
471
+ flex: 2,
472
+ marginLeft: 10,
473
+ opacity: action_loading ? 0.5 : 1
474
+ },
475
+ type: "success",
476
+ loading: action_loading,
477
+ disabled: action_loading,
478
+ title: "SET MARKET",
479
+ onPress: () => setDraftOrders(orders)
480
+ }));
481
+ case 'trade_side':
482
+ if (draft_orders.length > 0) {
483
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
484
+ }
485
+ if (!market) {
486
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
487
+ }
488
+ let trade_side_option = market.side_options.find(so => so.side == market.trade_side);
489
+ if (!trade_side_option) {
490
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
491
+ }
492
+ const trade_side_order = orders.find(o => o.side == market.trade_side);
493
+ if (!trade_side_order) {
494
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
495
+ }
496
+ const trade_side_price = prices.find(p => p.side == market.trade_side);
497
+ const trade_side_no_vig_odds = no_vig_data?.trade_side_odds;
498
+ const t_best_available = best_available_orders.find(o => o.market_id == market_id && o.side == market.trade_side);
499
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
500
+ style: {
501
+ borderWidth: 1,
502
+ borderColor: Colors.borders.light,
503
+ margin: 10
504
+ }
505
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
506
+ type: "row",
507
+ style: {
508
+ padding: 10
509
+ }
510
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
511
+ transparent: true,
512
+ style: {
513
+ flex: 1
514
+ }
515
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
516
+ theme: "h2"
517
+ }, trade_side_order.title), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
518
+ theme: "description",
519
+ style: {
520
+ marginTop: 3
521
+ }
522
+ }, "$", trade_side_order.open_amt.toFixed(2), " to win $", trade_side_order.potential_winnings.toFixed(2))), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
523
+ theme: "h1"
524
+ }, "$", trade_side_order.open_amt.toFixed(2)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
525
+ type: "row",
526
+ style: {
527
+ marginLeft: 10
528
+ }
529
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
530
+ float: true,
531
+ onPress: () => handleUpdateMargin('trade', 'increase')
532
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
533
+ direction: "left",
534
+ size: 8,
535
+ color: Colors.text.h1
536
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
537
+ style: {
538
+ paddingLeft: 10,
539
+ paddingRight: 10
540
+ }
541
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
542
+ theme: "h1"
543
+ }, (trade_side_order.probability * 100).toFixed(2), "%"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
544
+ theme: "light",
545
+ style: {
546
+ marginTop: 3
547
+ },
548
+ textAlign: "center"
549
+ }, _api.MarketComponentHelpers.getOddsLabel(trade_side_order.odds))), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
550
+ float: true,
551
+ onPress: () => handleUpdateMargin('trade', 'decrease')
552
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
553
+ direction: "right",
554
+ size: 8,
555
+ color: Colors.text.h1
556
+ })))), t_best_available ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
557
+ type: "row",
558
+ style: {
559
+ padding: 10
560
+ }
561
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
562
+ transparent: true,
563
+ style: {
564
+ flex: 1
565
+ }
566
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
567
+ theme: "h1"
568
+ }, t_best_available.title), t_best_available.grade ? /*#__PURE__*/_react.default.createElement(_OrderGradeBar.default, {
569
+ style: {
570
+ alignSelf: 'flex-start',
571
+ marginTop: 3
572
+ },
573
+ grade: t_best_available.grade,
574
+ view_type: "card",
575
+ onSelectGrade: () => console.log('')
576
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
577
+ style: {
578
+ alignItems: 'flex-end'
579
+ }
580
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
581
+ theme: "h2"
582
+ }, _api.MarketComponentHelpers.getOddsLabel(t_best_available.odds)), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
583
+ theme: "success"
584
+ }, "$", t_best_available.open_amt.toFixed(2), " Available")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
585
+ title: "BUY",
586
+ type: "success",
587
+ style: {
588
+ padding: 10,
589
+ marginLeft: 10,
590
+ opacity: action_loading ? 0.5 : 1
591
+ },
592
+ disabled: action_loading,
593
+ onPress: () => {
594
+ let side_ids = _api.MarketComponentHelpers.getSideIds(contest_type, trade_side_option, market, event, tournament, match, undefined, undefined);
595
+ if (!side_ids) {
596
+ return;
597
+ }
598
+ let trade = _api2.MarketMaketHelpers.getTradeFromAvailableOrder(t_best_available, side_ids.reversed_side_id);
599
+ let order = _api2.MarketMaketHelpers.getOrderFromTrade(trade, unit_size ?? 10, t_best_available.order_id);
600
+ order.title = t_best_available.title;
601
+ setDraftOrders([order]);
602
+ }
603
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), trade_side_price && trade_side_no_vig_odds ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
604
+ type: "footer",
605
+ style: {
606
+ flexDirection: 'row',
607
+ alignItems: 'center',
608
+ padding: 10
609
+ }
610
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
611
+ transparent: true,
612
+ style: {
613
+ flex: 1
614
+ }
615
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
616
+ theme: "h1"
617
+ }, trade_side_price.external_name), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
618
+ theme: "light",
619
+ style: {
620
+ marginTop: 3
621
+ }
622
+ }, "External price with vig removed")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
623
+ theme: "h2"
624
+ }, _api.MarketComponentHelpers.getOddsLabel(trade_side_no_vig_odds))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
625
+ case 'draft_orders':
626
+ if (draft_orders.length == 0) {
627
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
628
+ }
629
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
630
+ style: {
631
+ flexDirection: 'row',
632
+ flexWrap: 'wrap'
633
+ }
634
+ }, draft_orders.map((o, i) => {
635
+ return renderOrders({
636
+ item: o,
637
+ index: i
638
+ });
639
+ }));
640
+ case 'what_if':
641
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
642
+ default:
643
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
644
+ }
645
+ };
646
+ const total_margin = o_side_margin + trade_side_margin;
647
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
648
+ float: float,
649
+ style: {
650
+ ...style
651
+ }
652
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
653
+ type: "header",
654
+ style: {
655
+ flexDirection: 'row',
656
+ alignItems: 'center',
657
+ padding: 10,
658
+ borderTopLeftRadius: 8,
659
+ borderTopRightRadius: 8
660
+ }
661
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
662
+ transparent: true,
663
+ style: {
664
+ flex: 1
665
+ }
666
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
667
+ theme: "h1"
668
+ }, contest_title)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
669
+ transparent: true,
670
+ style: {
671
+ justifyContent: 'center',
672
+ alignItems: 'center'
673
+ }
674
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
675
+ theme: "h2",
676
+ color: total_margin > 0.06 ? Colors.text.error : total_margin > 0.045 ? Colors.text.warning : Colors.text.success
677
+ }, (total_margin * 100).toFixed(2), "%"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
678
+ theme: "description",
679
+ textAlign: "center"
680
+ }, "Margin"))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
681
+ type: "body",
682
+ style: {
683
+ flex: 1
684
+ }
685
+ }, loading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
686
+ size: "large",
687
+ color: Colors.text.h1
688
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
689
+ key: 'create_market_sections',
690
+ keyExtractor: item => item,
691
+ renderItem: renderSections,
692
+ data: sections
693
+ })), draft_orders.length == 0 ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
694
+ type: "footer",
695
+ style: {
696
+ flexDirection: 'row',
697
+ alignItems: 'center',
698
+ padding: 10,
699
+ borderBottomRightRadius: 8,
700
+ borderBottomLeftRadius: 8
701
+ }
702
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
703
+ style: {
704
+ flex: 1
705
+ },
706
+ type: "action",
707
+ title: "CLOSE",
708
+ onPress: () => onCancel()
709
+ })) : /*#__PURE__*/_react.default.createElement(_Themed.View, {
710
+ type: "footer",
711
+ style: {
712
+ flexDirection: 'row',
713
+ alignItems: 'center',
714
+ padding: 10,
715
+ borderBottomRightRadius: 8,
716
+ borderBottomLeftRadius: 8
717
+ }
718
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
719
+ style: {
720
+ flex: 1
721
+ },
722
+ type: "error",
723
+ title: "CANCEL",
724
+ onPress: () => setDraftOrders([])
725
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
726
+ style: {
727
+ flex: 2,
728
+ marginLeft: 5
729
+ },
730
+ type: "success",
731
+ title: "SUBMIT ORDERS",
732
+ onPress: () => handleSubmitOrder()
733
+ })));
734
+ };
735
+ var _default = exports.default = CreateMarketForm;
736
+ //# sourceMappingURL=CreateMarketForm.js.map