be-components 6.2.2 → 6.2.3

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