be-components 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/CompetitionManager/components/AthleteSelector.js +50 -1
- package/lib/commonjs/CompetitionManager/components/AthleteSelector.js.map +1 -1
- package/lib/commonjs/Components/Icons.js +90 -0
- package/lib/commonjs/Components/Icons.js.map +1 -1
- package/lib/commonjs/MarketComponents/api/index.js +213 -0
- package/lib/commonjs/MarketComponents/api/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js +183 -0
- package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/EventMarket/index.js +209 -0
- package/lib/commonjs/MarketComponents/components/EventMarket/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/MarketButton/api/index.js +179 -0
- package/lib/commonjs/MarketComponents/components/MarketButton/api/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/MarketButton/index.js +69 -0
- package/lib/commonjs/MarketComponents/components/MarketButton/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/OrderGradeBar.js +154 -0
- package/lib/commonjs/MarketComponents/components/OrderGradeBar.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/TeamEventMarket/api/index.js +48 -0
- package/lib/commonjs/MarketComponents/components/TeamEventMarket/api/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js +510 -0
- package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js.map +1 -0
- package/lib/commonjs/MarketComponents/index.js +12 -0
- package/lib/commonjs/MarketComponents/index.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/CompetitionManager/components/AthleteSelector.js +50 -1
- package/lib/module/CompetitionManager/components/AthleteSelector.js.map +1 -1
- package/lib/module/Components/Icons.js +90 -0
- package/lib/module/Components/Icons.js.map +1 -1
- package/lib/module/MarketComponents/api/index.js +207 -0
- package/lib/module/MarketComponents/api/index.js.map +1 -0
- package/lib/module/MarketComponents/components/AthleteMarket/index.js +176 -0
- package/lib/module/MarketComponents/components/AthleteMarket/index.js.map +1 -0
- package/lib/module/MarketComponents/components/EventMarket/index.js +202 -0
- package/lib/module/MarketComponents/components/EventMarket/index.js.map +1 -0
- package/lib/module/MarketComponents/components/MarketButton/api/index.js +172 -0
- package/lib/module/MarketComponents/components/MarketButton/api/index.js.map +1 -0
- package/lib/module/MarketComponents/components/MarketButton/index.js +62 -0
- package/lib/module/MarketComponents/components/MarketButton/index.js.map +1 -0
- package/lib/module/MarketComponents/components/OrderGradeBar.js +148 -0
- package/lib/module/MarketComponents/components/OrderGradeBar.js.map +1 -0
- package/lib/module/MarketComponents/components/TeamEventMarket/api/index.js +42 -0
- package/lib/module/MarketComponents/components/TeamEventMarket/api/index.js.map +1 -0
- package/lib/module/MarketComponents/components/TeamEventMarket/index.js +501 -0
- package/lib/module/MarketComponents/components/TeamEventMarket/index.js.map +1 -0
- package/lib/module/MarketComponents/index.js +5 -0
- package/lib/module/MarketComponents/index.js.map +1 -0
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/CompetitionManager/components/AthleteSelector.d.ts.map +1 -1
- package/lib/typescript/src/Components/Icons.d.ts +3 -0
- package/lib/typescript/src/Components/Icons.d.ts.map +1 -1
- package/lib/typescript/src/MarketComponents/api/index.d.ts +22 -0
- package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts +26 -0
- package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts +22 -0
- package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/MarketButton/api/index.d.ts +15 -0
- package/lib/typescript/src/MarketComponents/components/MarketButton/api/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/MarketButton/index.d.ts +14 -0
- package/lib/typescript/src/MarketComponents/components/MarketButton/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/OrderGradeBar.d.ts +10 -0
- package/lib/typescript/src/MarketComponents/components/OrderGradeBar.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/TeamEventMarket/api/index.d.ts +10 -0
- package/lib/typescript/src/MarketComponents/components/TeamEventMarket/api/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts +28 -0
- package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -0
- package/lib/typescript/src/MarketComponents/index.d.ts +28 -0
- package/lib/typescript/src/MarketComponents/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/CompetitionManager/components/AthleteSelector.tsx +36 -0
- package/src/Components/Icons.tsx +50 -0
- package/src/MarketComponents/api/index.ts +143 -0
- package/src/MarketComponents/components/AthleteMarket/index.tsx +113 -0
- package/src/MarketComponents/components/EventMarket/index.tsx +119 -0
- package/src/MarketComponents/components/MarketButton/api/index.ts +152 -0
- package/src/MarketComponents/components/MarketButton/index.tsx +50 -0
- package/src/MarketComponents/components/OrderGradeBar.tsx +110 -0
- package/src/MarketComponents/components/TeamEventMarket/api/index.ts +35 -0
- package/src/MarketComponents/components/TeamEventMarket/index.tsx +311 -0
- package/src/MarketComponents/index.tsx +5 -0
- package/src/index.tsx +2 -0
- package/src/types.d.ts +78 -2
- package/lib/commonjs/Markets/api/index.js +0 -28
- package/lib/commonjs/Markets/api/index.js.map +0 -1
- package/lib/commonjs/Markets/components/MarketButton.js +0 -25
- package/lib/commonjs/Markets/components/MarketButton.js.map +0 -1
- package/lib/module/Markets/api/index.js +0 -23
- package/lib/module/Markets/api/index.js.map +0 -1
- package/lib/module/Markets/components/MarketButton.js +0 -18
- package/lib/module/Markets/components/MarketButton.js.map +0 -1
- package/lib/typescript/src/Markets/api/index.d.ts +0 -7
- package/lib/typescript/src/Markets/api/index.d.ts.map +0 -1
- package/lib/typescript/src/Markets/components/MarketButton.d.ts +0 -11
- package/lib/typescript/src/Markets/components/MarketButton.d.ts.map +0 -1
- package/src/Markets/api/index.ts +0 -18
- package/src/Markets/components/MarketButton.tsx +0 -24
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { View, Image, FlatList, TouchableOpacity, ActivityIndicator } from 'react-native';
|
|
3
|
+
import type { AthleteProps, BestAvailableOrderProps, CompetitionProps, EventOrderStatProps, EventProps, MarketProps, MarketSideOptionProps, OrderProps, SquaresCompetitionProps, TradeProps } from '../../../types';
|
|
4
|
+
import { view_styles } from '../../../constants/styles';
|
|
5
|
+
import { Button, Icons, LinearDiagnal, Text } from '../../../Components';
|
|
6
|
+
import {TeamEventMarketHelpers} from './api';
|
|
7
|
+
import MarketButton from '../../components/MarketButton';
|
|
8
|
+
import Colors from '../../../constants/colors';
|
|
9
|
+
import moment from 'moment-mini';
|
|
10
|
+
import AthleteMarket from '../../components/AthleteMarket';
|
|
11
|
+
import EventMarket from '../../components/EventMarket';
|
|
12
|
+
|
|
13
|
+
import { MarketComponentApi, MarketComponentHelpers } from '../../api';
|
|
14
|
+
import { MarketButtonHelpers } from '../MarketButton/api';
|
|
15
|
+
|
|
16
|
+
type TeamEventMarketProps = {
|
|
17
|
+
event:EventProps,
|
|
18
|
+
markets:MarketProps[],
|
|
19
|
+
competition?:CompetitionProps,
|
|
20
|
+
squares_competition?:SquaresCompetitionProps,
|
|
21
|
+
latest_trades:TradeProps[],
|
|
22
|
+
best_available_orders:BestAvailableOrderProps[],
|
|
23
|
+
event_order_stats:EventOrderStatProps[],
|
|
24
|
+
default_price_view: 'last_trade'|'best_available',
|
|
25
|
+
onView:(data:{ event_id:string, event_type:string, market_id:string, side_type?:string, side_id?:string }) => void,
|
|
26
|
+
onOrder:(order:OrderProps) => void,
|
|
27
|
+
onExpand?:(expanded:boolean) => void,
|
|
28
|
+
onCompetitionSelect:(competition_id:string) => void,
|
|
29
|
+
onSquaresSelect: (sq_comp_id:string) => void,
|
|
30
|
+
onViewAdditionalMarkets: (event_id:string, event_type:string) => void,
|
|
31
|
+
onTradeLongPress:(trade:TradeProps) => void
|
|
32
|
+
}
|
|
33
|
+
const TeamEventMarket = ({ event, competition, squares_competition, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets, onTradeLongPress }:TeamEventMarketProps) => {
|
|
34
|
+
const [ expanded_data, setExpandedData ] = useState<{
|
|
35
|
+
expanded:boolean,
|
|
36
|
+
loaded:boolean,
|
|
37
|
+
loading:boolean,
|
|
38
|
+
athletes:AthleteProps[]
|
|
39
|
+
}>({
|
|
40
|
+
loaded:false,
|
|
41
|
+
loading:false,
|
|
42
|
+
expanded:false,
|
|
43
|
+
athletes:[]
|
|
44
|
+
})
|
|
45
|
+
const { expanded, athletes, loaded, loading } = expanded_data;
|
|
46
|
+
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
MarketComponentApi.setEnvironment();
|
|
49
|
+
},[])
|
|
50
|
+
|
|
51
|
+
const expandedEvent = async() => {
|
|
52
|
+
if(onExpand){ onExpand(expanded ? false : true) }
|
|
53
|
+
if(expanded){ return setExpandedData({ ...expanded_data, expanded: false }) }
|
|
54
|
+
if(loaded){ return setExpandedData({ ...expanded_data, expanded: true }) }
|
|
55
|
+
setExpandedData({ ...expanded_data, expanded:true, loading:true });
|
|
56
|
+
|
|
57
|
+
//Need to load our athletes in here!
|
|
58
|
+
const away_athletes = await MarketComponentApi.getAthletesByTeamId(event.away_team_id);
|
|
59
|
+
const home_athletes = await MarketComponentApi.getAthletesByTeamId(event.home_team_id);
|
|
60
|
+
setExpandedData({
|
|
61
|
+
expanded:true,
|
|
62
|
+
loaded:true,
|
|
63
|
+
loading:false,
|
|
64
|
+
athletes: away_athletes.concat(home_athletes)
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const primary_markets = TeamEventMarketHelpers.getPrimaryMarkets(event, markets);
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
|
|
72
|
+
const ba_order = best_available_orders.find(o => o.market_id == data.market.market_id && o.side == data.item.side)
|
|
73
|
+
const side_details = MarketComponentHelpers.getTeamEventSideIds(event, data.market, data.item);
|
|
74
|
+
if(!side_details){ return <></> } //Bomb out if we cant get the side details
|
|
75
|
+
let trade = MarketButtonHelpers.getVisibleTrade(default_price_view, data.market, data.item, latest_trades, best_available_orders, side_details.side_id, side_details.reversed_side_id);
|
|
76
|
+
if(!trade){
|
|
77
|
+
trade = MarketButtonHelpers.getTradeFromMarket(data.market, event.event_id, 'team', data.item.side, data.item.id_source, side_details.side_id, side_details.reversed_side_id)
|
|
78
|
+
}
|
|
79
|
+
if(!trade){ return <></> }
|
|
80
|
+
return (
|
|
81
|
+
<View style={{ margin:2, width:50, height:50 }}>
|
|
82
|
+
<MarketButton
|
|
83
|
+
side_option={data.item}
|
|
84
|
+
market={data.market}
|
|
85
|
+
trade={trade}
|
|
86
|
+
order={ba_order}
|
|
87
|
+
onLongPress={onTradeLongPress}
|
|
88
|
+
onPress={(order) => {
|
|
89
|
+
const order_title = MarketComponentHelpers.getOrderTitleForTeamEvent(order, data.market, event);
|
|
90
|
+
if(!order_title){ return alert('Unable to process order') }
|
|
91
|
+
onOrder({ ...order, title: order_title })
|
|
92
|
+
}}
|
|
93
|
+
/>
|
|
94
|
+
</View>
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const renderMarketHeaders = (data:{ item:MarketProps, index:number }) => {
|
|
99
|
+
return (
|
|
100
|
+
<View style={{ width:50, marginLeft:2, marginRight:2 }}>
|
|
101
|
+
<Text size={12} color={Colors.brand.midnight} textAlign='center'>{data.item.type.toUpperCase()}</Text>
|
|
102
|
+
</View>
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const renderNonPrimaryMarkets = (data: { item:EventOrderStatProps, index:number }) => {
|
|
107
|
+
const market = markets.find(m => m.market_id == data.item.market_id);
|
|
108
|
+
if(!market){ return <></> }
|
|
109
|
+
switch(market.level){
|
|
110
|
+
case 'athlete':
|
|
111
|
+
const athlete = athletes.find(a => a.athlete_id == data.item.side_id)
|
|
112
|
+
if(!athlete){ return <></> }
|
|
113
|
+
const athlete_trades = latest_trades.filter(t => t.market_type == 'FOR_MONEY' && t.market_id == data.item.market_id && t.side_type == 'athlete' && t.side_id == data.item.side_id);
|
|
114
|
+
const athlete_orders = best_available_orders.filter(t => t.market_id == data.item.market_id && t.side_type == 'athlete' && t.side_id == data.item.side_id);
|
|
115
|
+
return (
|
|
116
|
+
<View>
|
|
117
|
+
<AthleteMarket
|
|
118
|
+
event={event}
|
|
119
|
+
event_type='team'
|
|
120
|
+
athlete={athlete}
|
|
121
|
+
market={market}
|
|
122
|
+
event_order_stats={[data.item]}
|
|
123
|
+
latest_trades={athlete_trades}
|
|
124
|
+
onTradeLongPress={onTradeLongPress}
|
|
125
|
+
default_price_view={default_price_view}
|
|
126
|
+
best_available_orders={athlete_orders}
|
|
127
|
+
onOrder={onOrder}
|
|
128
|
+
onView={onView}
|
|
129
|
+
/>
|
|
130
|
+
</View>
|
|
131
|
+
)
|
|
132
|
+
case 'event':
|
|
133
|
+
const event_trades = latest_trades.filter(t => t.market_type == 'FOR_MONEY' && t.market_id == data.item.market_id);
|
|
134
|
+
const event_orders = best_available_orders.filter(t => t.market_id == data.item.market_id);
|
|
135
|
+
return (
|
|
136
|
+
<View>
|
|
137
|
+
<EventMarket
|
|
138
|
+
event={event}
|
|
139
|
+
market={market}
|
|
140
|
+
onTradeLongPress={onTradeLongPress}
|
|
141
|
+
event_order_stats={[data.item]}
|
|
142
|
+
latest_trades={event_trades}
|
|
143
|
+
best_available_orders={event_orders}
|
|
144
|
+
default_price_view={default_price_view}
|
|
145
|
+
onOrder={onOrder}
|
|
146
|
+
onView={onView}
|
|
147
|
+
/>
|
|
148
|
+
</View>
|
|
149
|
+
)
|
|
150
|
+
default: return<></>
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const renderPrimaryMarkets = (data:{ item:MarketProps, index:number }) => {
|
|
155
|
+
return (
|
|
156
|
+
<View>
|
|
157
|
+
<FlatList
|
|
158
|
+
key={`${event.event_id}_side_options`}
|
|
159
|
+
data={data.item.side_options.sort((a,b) => {
|
|
160
|
+
let a_t = a.side == data.item.trade_side ? 1 : 0
|
|
161
|
+
let b_t = b.side == data.item.trade_side ? 1 : 0
|
|
162
|
+
return a_t - b_t
|
|
163
|
+
})}
|
|
164
|
+
keyExtractor={(item) => item.side}
|
|
165
|
+
renderItem={({ item, index }) => renderSides({ item, index, market:data.item })}
|
|
166
|
+
/>
|
|
167
|
+
</View>
|
|
168
|
+
)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if(!event.away || !event.home){ return <></> }
|
|
172
|
+
|
|
173
|
+
const upcoming = moment().isBefore(moment(event.scheduled_datetime)) ? true : false
|
|
174
|
+
const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
|
|
175
|
+
|
|
176
|
+
const non_primary_markets = TeamEventMarketHelpers.sortNonPrimaryMarkets(TeamEventMarketHelpers.getNonPrimaryMarkets(event, markets), event_order_stats)
|
|
177
|
+
|
|
178
|
+
return (
|
|
179
|
+
<View style={{ ...view_styles.section, borderWidth:1, borderColor:Colors.shades.shade600 }}>
|
|
180
|
+
<View nativeID='event_header_data' style={{ flexDirection:'row', padding:10, borderBottomWidth:1, borderBottomColor:Colors.shades.shade600 }}>
|
|
181
|
+
<View style={{ flex:1 }}>
|
|
182
|
+
{event.event_sub_title ?
|
|
183
|
+
<Text size={12} color={Colors.brand.midnight} weight='semibold'>{event.event_sub_title}</Text>
|
|
184
|
+
:<></>}
|
|
185
|
+
</View>
|
|
186
|
+
<View style={{ flexDirection:'row', alignItems:'center' }}>
|
|
187
|
+
<Icons.TVIcon size={10} color={Colors.brand.midnight} />
|
|
188
|
+
<Text style={{ marginLeft:8 }} size={12} color={Colors.brand.midnight} weight='semibold'>{event.info?.broadcast?.network}</Text>
|
|
189
|
+
</View>
|
|
190
|
+
</View>
|
|
191
|
+
<View nativeID='primary_markets' style={{ flexDirection:'row' }}>
|
|
192
|
+
<View nativeID='team_details' style={{ flex:1, padding:5, paddingRight:0 }}>
|
|
193
|
+
<View style={{ flexDirection:'row', alignItems:'center', marginTop:5, marginBottom:5, marginLeft:10 }}>
|
|
194
|
+
<View style={{ marginRight:5, height:10, width:10, borderRadius:100, backgroundColor:upcoming?Colors.brand.electric:Colors.utility.success }} />
|
|
195
|
+
<Text size={12} color={Colors.brand.midnight}>{TeamEventMarketHelpers.getTimeDetail(event)}</Text>
|
|
196
|
+
</View>
|
|
197
|
+
<View nativeID='away_details' style={{ ...view_styles.body_row, minHeight:48 }}>
|
|
198
|
+
<Image
|
|
199
|
+
source={{ uri: event.away.image?.url }}
|
|
200
|
+
style={{ height:30, width:30 }}
|
|
201
|
+
resizeMode='cover'
|
|
202
|
+
/>
|
|
203
|
+
<View style={{ flex:1, flexDirection:'row', alignItems:'center', marginLeft:5 }}>
|
|
204
|
+
<View style={{ flex:1, marginRight:5 }}>
|
|
205
|
+
<Text theme='header_2'>{event.away.market_name} {event.away.name}</Text>
|
|
206
|
+
{event.away_sub_title ?
|
|
207
|
+
<Text style={{ marginTop:3 }} theme='body_2'>{event.away_sub_title}</Text>
|
|
208
|
+
:<></>}
|
|
209
|
+
</View>
|
|
210
|
+
<Text theme='body'>{event.away_team_score}</Text>
|
|
211
|
+
</View>
|
|
212
|
+
</View>
|
|
213
|
+
<View nativeID='home_details' style={{ ...view_styles.body_row, minHeight:48 }}>
|
|
214
|
+
<Image
|
|
215
|
+
source={{ uri: event.home.image?.url }}
|
|
216
|
+
style={{ height:30, width:30 }}
|
|
217
|
+
resizeMode='cover'
|
|
218
|
+
/>
|
|
219
|
+
<View style={{ flex:1, flexDirection:'row', alignItems:'center', marginLeft:5 }}>
|
|
220
|
+
<View style={{ flex:1, marginRight:5 }}>
|
|
221
|
+
<Text theme='header_2'>{event.home.market_name} {event.home.name}</Text>
|
|
222
|
+
{event.home_sub_title ?
|
|
223
|
+
<Text style={{ marginTop:3 }} theme='body_2'>{event.home_sub_title}</Text>
|
|
224
|
+
:<></>}
|
|
225
|
+
</View>
|
|
226
|
+
<Text theme='body'>{event.home_team_score}</Text>
|
|
227
|
+
</View>
|
|
228
|
+
</View>
|
|
229
|
+
</View>
|
|
230
|
+
<View nativeID='primary_market_details' style={{ padding:5 }}>
|
|
231
|
+
<View style={{ marginTop:5, marginBottom:5 }}>
|
|
232
|
+
<FlatList
|
|
233
|
+
key={`${event.event_id}_market_headers`}
|
|
234
|
+
data={primary_markets}
|
|
235
|
+
keyExtractor={(item) => item.market_id.toString()}
|
|
236
|
+
horizontal
|
|
237
|
+
renderItem={renderMarketHeaders}
|
|
238
|
+
/>
|
|
239
|
+
</View>
|
|
240
|
+
<FlatList
|
|
241
|
+
key={`${event.event_id}_primary_markets`}
|
|
242
|
+
data={primary_markets}
|
|
243
|
+
horizontal
|
|
244
|
+
renderItem={renderPrimaryMarkets}
|
|
245
|
+
keyExtractor={(item) => item.market_id.toString()}
|
|
246
|
+
/>
|
|
247
|
+
</View>
|
|
248
|
+
</View>
|
|
249
|
+
<View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', flexWrap:'wrap', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
|
|
250
|
+
<TouchableOpacity style={{ flex:1, flexDirection:'row', minWidth:115 }} onPress={() => {
|
|
251
|
+
if(!primary_markets[0]){ return }
|
|
252
|
+
onView({ event_id: event.event_id, event_type:'team', market_id: primary_markets[0].market_id });
|
|
253
|
+
}}>
|
|
254
|
+
<View style={{ backgroundColor:Colors.shades.white, height:30, width:30, borderRadius:100, justifyContent:'center', alignItems:'center', ...view_styles.float }}>
|
|
255
|
+
<Icons.LiquidityIcon color={Colors.brand.midnight} size={30}/>
|
|
256
|
+
</View>
|
|
257
|
+
<View style={{ marginLeft:5 }}>
|
|
258
|
+
<Text theme='body_2'>Liquidity</Text>
|
|
259
|
+
<Text size={12} color={Colors.brand.electric} weight='semibold'>${liquidity.toFixed()} {open_order_count} Orders</Text>
|
|
260
|
+
</View>
|
|
261
|
+
</TouchableOpacity>
|
|
262
|
+
{squares_competition ?
|
|
263
|
+
<TouchableOpacity
|
|
264
|
+
style={{ marginRight:10, flexDirection:'row', alignItems:'center', padding:10, borderRadius:22, backgroundColor:Colors.highlights.highlight100, ...view_styles.float }}
|
|
265
|
+
onPress={() => onSquaresSelect(squares_competition.sq_comp_id)}>
|
|
266
|
+
<Icons.SquaresIcon size={18} color={Colors.shades.white} />
|
|
267
|
+
<Text style={{ marginLeft:5 }} size={14} color={Colors.shades.white} weight='semibold'>Squares</Text>
|
|
268
|
+
</TouchableOpacity>
|
|
269
|
+
:<></>}
|
|
270
|
+
{competition ?
|
|
271
|
+
<TouchableOpacity
|
|
272
|
+
style={{ marginRight:10, flexDirection:'row', alignItems:'center', padding:10, borderRadius:22, backgroundColor:Colors.highlights.highlight500, ...view_styles.float }}
|
|
273
|
+
onPress={() => onCompetitionSelect(competition.competition_id)}>
|
|
274
|
+
<Icons.PickEmIcon size={18} color={Colors.shades.white} />
|
|
275
|
+
<Text style={{ marginLeft:5 }} size={14} color={Colors.shades.white} weight='semibold'>Pick 6</Text>
|
|
276
|
+
</TouchableOpacity>
|
|
277
|
+
:<></>}
|
|
278
|
+
<TouchableOpacity style={{ height:35, width:35, justifyContent:'center', borderRadius:100, alignItems:'center', backgroundColor:Colors.shades.white, ...view_styles.float }} onPress={() => expandedEvent()}>
|
|
279
|
+
<Icons.ChevronIcon direction={expanded ? 'up' : 'down'} size={8} color={Colors.brand.midnight} />
|
|
280
|
+
</TouchableOpacity>
|
|
281
|
+
</View>
|
|
282
|
+
{expanded ?
|
|
283
|
+
<View>
|
|
284
|
+
<View style={{ flexDirection:'row', alignItems:'center' }}>
|
|
285
|
+
<View style={{flex:1}}>
|
|
286
|
+
<LinearDiagnal label_size={12} label={'Hot Markets'} left_color={Colors.utility.warning} right_color={Colors.utility.error}/>
|
|
287
|
+
</View>
|
|
288
|
+
{loading ?
|
|
289
|
+
<ActivityIndicator style={{ paddingRight:20 }} size='small' color={Colors.brand.midnight} />
|
|
290
|
+
:
|
|
291
|
+
<Button
|
|
292
|
+
title='SEE ALL'
|
|
293
|
+
padding={15}
|
|
294
|
+
title_color={Colors.brand.electric}
|
|
295
|
+
onPress={() => onViewAdditionalMarkets(event.event_id, 'team')}
|
|
296
|
+
/>
|
|
297
|
+
}
|
|
298
|
+
</View>
|
|
299
|
+
<FlatList
|
|
300
|
+
data={non_primary_markets}
|
|
301
|
+
renderItem={renderNonPrimaryMarkets}
|
|
302
|
+
keyExtractor={(item) => `${item.market_id}:${item.side_type}:${item.side_id}`}
|
|
303
|
+
horizontal
|
|
304
|
+
/>
|
|
305
|
+
</View>
|
|
306
|
+
:<></>}
|
|
307
|
+
</View>
|
|
308
|
+
)
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export default TeamEventMarket
|
package/src/index.tsx
CHANGED
|
@@ -25,6 +25,7 @@ import EngageModule from "./Engage";
|
|
|
25
25
|
import SeasonManager from "./CompetitionSeasonManager";
|
|
26
26
|
import SeasonModule from "./CompetitionSeason";
|
|
27
27
|
import CreateSeasonForm from "./CompetitionSeasonManager/components/CreateSeasonForm";
|
|
28
|
+
import MarketComponents from './MarketComponents';
|
|
28
29
|
|
|
29
30
|
export {
|
|
30
31
|
Authenticator,
|
|
@@ -42,6 +43,7 @@ export {
|
|
|
42
43
|
Colors,
|
|
43
44
|
MyWallet,
|
|
44
45
|
Checkout,
|
|
46
|
+
MarketComponents,
|
|
45
47
|
PollCampaign,
|
|
46
48
|
PollCampaignApi,
|
|
47
49
|
PollApi,
|
package/src/types.d.ts
CHANGED
|
@@ -1007,9 +1007,11 @@ export interface TradeProps {
|
|
|
1007
1007
|
event_type: 'tournament'|'team'|'match'
|
|
1008
1008
|
var_1: number;
|
|
1009
1009
|
side:string;
|
|
1010
|
+
limit_override?:boolean,
|
|
1011
|
+
draft_liquidity?:number,
|
|
1010
1012
|
side_id:string;
|
|
1011
1013
|
reversed_side_id:string;
|
|
1012
|
-
side_type:'athlete'|'team'|'side';
|
|
1014
|
+
side_type:'athlete'|'team'|'side'|'exotic';
|
|
1013
1015
|
odds: number;
|
|
1014
1016
|
probability:number;
|
|
1015
1017
|
market_type: 'FOR_MONEY' | 'FREE';
|
|
@@ -1647,4 +1649,78 @@ export interface BestAvailableOrderProps {
|
|
|
1647
1649
|
promoted?:boolean,
|
|
1648
1650
|
odds: number,
|
|
1649
1651
|
probability: number
|
|
1650
|
-
}
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
export interface EventOrderStatProps {
|
|
1655
|
+
event_id: string;
|
|
1656
|
+
event_type:string;
|
|
1657
|
+
market_id: string;
|
|
1658
|
+
side_id:string;
|
|
1659
|
+
side_type:string;
|
|
1660
|
+
open_order_count: number|string;
|
|
1661
|
+
open_order_amount: number;
|
|
1662
|
+
market_type: string;
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
export interface OrderProps {
|
|
1667
|
+
order_id:string; //Primary key of the order
|
|
1668
|
+
player_id:string; //Id of the player creating the order
|
|
1669
|
+
order_type: 'market' | 'limit' | 'h2h'; //Order type determines how it will be matched in the marketplace
|
|
1670
|
+
collar_pct: number; //Pct worse price willing to accept on a market order
|
|
1671
|
+
side: string; //Side of the order
|
|
1672
|
+
side_id: string; //Id of the side - this could be either a team or athlete or over / under
|
|
1673
|
+
side_type: 'athlete' | 'team' | 'side';
|
|
1674
|
+
reversed?:boolean,
|
|
1675
|
+
draft_liquidity?:number,
|
|
1676
|
+
be_type: 'market' | 'prop' | 'ind'; //The old be-type of order so we can compare to historical orders
|
|
1677
|
+
buy_sell_ind: 'buy' | 'sell'; //Indicates whether this order is selling a position or attempting to buy one
|
|
1678
|
+
open_amt: number; //Amount still available to be matched
|
|
1679
|
+
called_amt: number; //Amount already fulfilled
|
|
1680
|
+
potential_winnings: number //Potential winnings calculated by open_amt and odds / prob
|
|
1681
|
+
market_id: string; //Id of the market that this order is (i.e., Spread, Total, stat, etc)
|
|
1682
|
+
market?: MarketProps; //Market object of the ID
|
|
1683
|
+
title: string; //Title of the order
|
|
1684
|
+
event_id: string; //Id of the event associated with the order
|
|
1685
|
+
event_type: 'team' | 'tournament'|'match'; //Is the event a team event or individual (i.e., golf tournament / UFC)
|
|
1686
|
+
position_ids: string[]; //Array of positions that were created due to trades
|
|
1687
|
+
expire_datetime: any; //Expiration time of the order
|
|
1688
|
+
create_datetime?: any; //Create time of the order
|
|
1689
|
+
last_update_datetime?: any; //Last update time of te order
|
|
1690
|
+
odds: number; //American odds of the order
|
|
1691
|
+
probability: number; //Implied probability of the order
|
|
1692
|
+
var_1: number; //
|
|
1693
|
+
league_id?:string;
|
|
1694
|
+
promo_balance?:boolean,
|
|
1695
|
+
promoted?:boolean //Should show up on the lead even screen
|
|
1696
|
+
rejections:number;
|
|
1697
|
+
location?: any; //JSON of coordinate (lat and long)
|
|
1698
|
+
region?: string;
|
|
1699
|
+
market_type: 'FREE' | 'FOR_MONEY';
|
|
1700
|
+
available_for_parlays:boolean; //Indicates of the order can be accepted by a person trying a parlay
|
|
1701
|
+
status: 'cancelled' | 'approved' | 'closed'; //Current status of the order
|
|
1702
|
+
cancel_type?: 'expired' | 'manual' | 'closed'; //If the order is cancelled, then how was it cancelled?
|
|
1703
|
+
resolution_status: 'inprogress' | 'closed';
|
|
1704
|
+
live?:boolean; //If the order is created after the start time of the event, then an indicator of live is added
|
|
1705
|
+
h2h?:boolean;
|
|
1706
|
+
h2h_id?:string; //If the order is h2h, then this is the id of the other user
|
|
1707
|
+
h2h_user?:any //Player type
|
|
1708
|
+
parlay_id?:string //id of the parlay
|
|
1709
|
+
event?:any //Event details,
|
|
1710
|
+
selling_position_id?:string,
|
|
1711
|
+
result_viewed?:boolean,
|
|
1712
|
+
commission_pct:number,
|
|
1713
|
+
positions:PositionProps[]
|
|
1714
|
+
pfof?:boolean
|
|
1715
|
+
influencer_id?:string,
|
|
1716
|
+
influencer?:PublicPlayerProps,
|
|
1717
|
+
influence_type?: 'copy' | 'fade',
|
|
1718
|
+
tip_type?: 'win' | 'all',
|
|
1719
|
+
tip_pct?:number,
|
|
1720
|
+
tip_processed?:boolean,
|
|
1721
|
+
legacy_id?: string,
|
|
1722
|
+
grade?: number,
|
|
1723
|
+
last_grade_datetime?:any,
|
|
1724
|
+
no_bet?:boolean,
|
|
1725
|
+
no_bet_reason?:string
|
|
1726
|
+
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.MarketHelpers = void 0;
|
|
7
|
-
const MarketHelpers = exports.MarketHelpers = {
|
|
8
|
-
getVar1Label: (market, var_1) => {
|
|
9
|
-
if (market.type != 'Spread') {
|
|
10
|
-
return `${var_1}`;
|
|
11
|
-
}
|
|
12
|
-
if (var_1 < 0) {
|
|
13
|
-
return `${var_1}`;
|
|
14
|
-
}
|
|
15
|
-
return `+${var_1}`;
|
|
16
|
-
},
|
|
17
|
-
getOddsLabel: (odds, decimals) => {
|
|
18
|
-
let new_odds = odds.toFixed();
|
|
19
|
-
if (decimals) {
|
|
20
|
-
new_odds = odds.toFixed(decimals);
|
|
21
|
-
}
|
|
22
|
-
if (odds < 0) {
|
|
23
|
-
return `${new_odds}`;
|
|
24
|
-
}
|
|
25
|
-
return `+${new_odds}`;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["MarketHelpers","exports","getVar1Label","market","var_1","type","getOddsLabel","odds","decimals","new_odds","toFixed"],"sourceRoot":"../../../../src","sources":["Markets/api/index.ts"],"mappings":";;;;;;AAKA,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAClBE,YAAY,EAAEA,CAACC,MAAkB,EAAEC,KAAY,KAAK;IAChD,IAAGD,MAAM,CAACE,IAAI,IAAI,QAAQ,EAAC;MAAE,OAAQ,GAAED,KAAM,EAAC;IAAC;IAC/C,IAAGA,KAAK,GAAG,CAAC,EAAC;MAAE,OAAQ,GAAEA,KAAM,EAAC;IAAC;IACjC,OAAQ,IAAGA,KAAM,EAAC;EACtB,CAAC;EACDE,YAAY,EAAEA,CAACC,IAAW,EAAEC,QAAgB,KAAK;IAC7C,IAAIC,QAAQ,GAAGF,IAAI,CAACG,OAAO,CAAC,CAAC;IAC7B,IAAGF,QAAQ,EAAC;MAAEC,QAAQ,GAAGF,IAAI,CAACG,OAAO,CAACF,QAAQ,CAAC;IAAC;IAChD,IAAGD,IAAI,GAAG,CAAC,EAAC;MAAE,OAAQ,GAAEE,QAAS,EAAC;IAAC;IACnC,OAAQ,IAAGA,QAAS,EAAC;EACzB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _Text = _interopRequireDefault(require("../../Components/Text"));
|
|
10
|
-
var _api = require("../api");
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
const MarketCard = ({
|
|
13
|
-
market,
|
|
14
|
-
trade
|
|
15
|
-
}) => {
|
|
16
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
17
|
-
style: {
|
|
18
|
-
padding: 5
|
|
19
|
-
}
|
|
20
|
-
}, trade && market.var_1_required ? /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
21
|
-
theme: "body"
|
|
22
|
-
}, _api.MarketHelpers.getVar1Label(market, trade.var_1)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
|
|
23
|
-
};
|
|
24
|
-
var _default = exports.default = MarketCard;
|
|
25
|
-
//# sourceMappingURL=MarketButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_Text","_api","obj","__esModule","default","MarketCard","market","trade","createElement","TouchableOpacity","style","padding","var_1_required","theme","MarketHelpers","getVar1Label","var_1","Fragment","_default","exports"],"sourceRoot":"../../../../src","sources":["Markets/components/MarketButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,IAAA,GAAAH,OAAA;AAAuC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQvC,MAAMG,UAAU,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAwB,CAAC,KAAK;EAExD,oBACIX,MAAA,CAAAQ,OAAA,CAAAI,aAAA,CAACT,YAAA,CAAAU,gBAAgB;IAACC,KAAK,EAAE;MAAEC,OAAO,EAAC;IAAE;EAAE,GAClCJ,KAAK,IAAID,MAAM,CAACM,cAAc,gBAC/BhB,MAAA,CAAAQ,OAAA,CAAAI,aAAA,CAACR,KAAA,CAAAI,OAAI;IAACS,KAAK,EAAC;EAAM,GAAEC,kBAAa,CAACC,YAAY,CAACT,MAAM,EAAEC,KAAK,CAACS,KAAK,CAAQ,CAAC,gBAC1EpB,MAAA,CAAAQ,OAAA,CAAAI,aAAA,CAAAZ,MAAA,CAAAQ,OAAA,CAAAa,QAAA,MAAI,CACS,CAAC;AAE3B,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAf,OAAA,GAEcC,UAAU","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export { MarketHelpers };
|
|
2
|
-
const MarketHelpers = {
|
|
3
|
-
getVar1Label: (market, var_1) => {
|
|
4
|
-
if (market.type != 'Spread') {
|
|
5
|
-
return `${var_1}`;
|
|
6
|
-
}
|
|
7
|
-
if (var_1 < 0) {
|
|
8
|
-
return `${var_1}`;
|
|
9
|
-
}
|
|
10
|
-
return `+${var_1}`;
|
|
11
|
-
},
|
|
12
|
-
getOddsLabel: (odds, decimals) => {
|
|
13
|
-
let new_odds = odds.toFixed();
|
|
14
|
-
if (decimals) {
|
|
15
|
-
new_odds = odds.toFixed(decimals);
|
|
16
|
-
}
|
|
17
|
-
if (odds < 0) {
|
|
18
|
-
return `${new_odds}`;
|
|
19
|
-
}
|
|
20
|
-
return `+${new_odds}`;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["MarketHelpers","getVar1Label","market","var_1","type","getOddsLabel","odds","decimals","new_odds","toFixed"],"sourceRoot":"../../../../src","sources":["Markets/api/index.ts"],"mappings":"AAGA,SAASA,aAAa;AAEtB,MAAMA,aAAa,GAAG;EAClBC,YAAY,EAAEA,CAACC,MAAkB,EAAEC,KAAY,KAAK;IAChD,IAAGD,MAAM,CAACE,IAAI,IAAI,QAAQ,EAAC;MAAE,OAAQ,GAAED,KAAM,EAAC;IAAC;IAC/C,IAAGA,KAAK,GAAG,CAAC,EAAC;MAAE,OAAQ,GAAEA,KAAM,EAAC;IAAC;IACjC,OAAQ,IAAGA,KAAM,EAAC;EACtB,CAAC;EACDE,YAAY,EAAEA,CAACC,IAAW,EAAEC,QAAgB,KAAK;IAC7C,IAAIC,QAAQ,GAAGF,IAAI,CAACG,OAAO,CAAC,CAAC;IAC7B,IAAGF,QAAQ,EAAC;MAAEC,QAAQ,GAAGF,IAAI,CAACG,OAAO,CAACF,QAAQ,CAAC;IAAC;IAChD,IAAGD,IAAI,GAAG,CAAC,EAAC;MAAE,OAAQ,GAAEE,QAAS,EAAC;IAAC;IACnC,OAAQ,IAAGA,QAAS,EAAC;EACzB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TouchableOpacity } from "react-native";
|
|
3
|
-
import Text from '../../Components/Text';
|
|
4
|
-
import { MarketHelpers } from '../api';
|
|
5
|
-
const MarketCard = ({
|
|
6
|
-
market,
|
|
7
|
-
trade
|
|
8
|
-
}) => {
|
|
9
|
-
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
10
|
-
style: {
|
|
11
|
-
padding: 5
|
|
12
|
-
}
|
|
13
|
-
}, trade && market.var_1_required ? /*#__PURE__*/React.createElement(Text, {
|
|
14
|
-
theme: "body"
|
|
15
|
-
}, MarketHelpers.getVar1Label(market, trade.var_1)) : /*#__PURE__*/React.createElement(React.Fragment, null));
|
|
16
|
-
};
|
|
17
|
-
export default MarketCard;
|
|
18
|
-
//# sourceMappingURL=MarketButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","Text","MarketHelpers","MarketCard","market","trade","createElement","style","padding","var_1_required","theme","getVar1Label","var_1","Fragment"],"sourceRoot":"../../../../src","sources":["Markets/components/MarketButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,OAAOC,IAAI,MAAM,uBAAuB;AAExC,SAASC,aAAa,QAAQ,QAAQ;AAQtC,MAAMC,UAAU,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAwB,CAAC,KAAK;EAExD,oBACIN,KAAA,CAAAO,aAAA,CAACN,gBAAgB;IAACO,KAAK,EAAE;MAAEC,OAAO,EAAC;IAAE;EAAE,GAClCH,KAAK,IAAID,MAAM,CAACK,cAAc,gBAC/BV,KAAA,CAAAO,aAAA,CAACL,IAAI;IAACS,KAAK,EAAC;EAAM,GAAER,aAAa,CAACS,YAAY,CAACP,MAAM,EAAEC,KAAK,CAACO,KAAK,CAAQ,CAAC,gBAC1Eb,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAc,QAAA,MAAI,CACS,CAAC;AAE3B,CAAC;AAED,eAAeV,UAAU","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { MarketProps } from "../../types";
|
|
2
|
-
export { MarketHelpers };
|
|
3
|
-
declare const MarketHelpers: {
|
|
4
|
-
getVar1Label: (market: MarketProps, var_1: number) => string;
|
|
5
|
-
getOddsLabel: (odds: number, decimals?: number) => string;
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/Markets/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAE,aAAa,EAAE,CAAA;AAExB,QAAA,MAAM,aAAa;2BACO,WAAW,SAAQ,MAAM;yBAK3B,MAAM,aAAY,MAAM;CAM/C,CAAA"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { BestAvailableOrderProps, MarketProps, MarketSideOptionProps, TradeProps } from '../../types';
|
|
3
|
-
type MarketButtonProps = {
|
|
4
|
-
market: MarketProps;
|
|
5
|
-
side_option: MarketSideOptionProps;
|
|
6
|
-
trade?: TradeProps;
|
|
7
|
-
order?: BestAvailableOrderProps;
|
|
8
|
-
};
|
|
9
|
-
declare const MarketCard: ({ market, trade }: MarketButtonProps) => React.JSX.Element;
|
|
10
|
-
export default MarketCard;
|
|
11
|
-
//# sourceMappingURL=MarketButton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarketButton.d.ts","sourceRoot":"","sources":["../../../../../src/Markets/components/MarketButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3G,KAAK,iBAAiB,GAAG;IACrB,MAAM,EAAC,WAAW,CAAC;IACnB,WAAW,EAAC,qBAAqB,CAAC;IAClC,KAAK,CAAC,EAAC,UAAU,CAAC;IAClB,KAAK,CAAC,EAAC,uBAAuB,CAAA;CACjC,CAAA;AACD,QAAA,MAAM,UAAU,sBAAsB,iBAAiB,sBAStD,CAAA;AAED,eAAe,UAAU,CAAA"}
|
package/src/Markets/api/index.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { MarketProps } from "../../types"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { MarketHelpers }
|
|
5
|
-
|
|
6
|
-
const MarketHelpers = {
|
|
7
|
-
getVar1Label: (market:MarketProps, var_1:number) => {
|
|
8
|
-
if(market.type != 'Spread'){ return `${var_1}` }
|
|
9
|
-
if(var_1 < 0){ return `${var_1}` }
|
|
10
|
-
return `+${var_1}`
|
|
11
|
-
},
|
|
12
|
-
getOddsLabel: (odds:number, decimals?:number) => {
|
|
13
|
-
let new_odds = odds.toFixed()
|
|
14
|
-
if(decimals){ new_odds = odds.toFixed(decimals) }
|
|
15
|
-
if(odds < 0){ return `${new_odds}` }
|
|
16
|
-
return `+${new_odds}`
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TouchableOpacity } from "react-native"
|
|
3
|
-
import Text from '../../Components/Text';
|
|
4
|
-
import type { BestAvailableOrderProps, MarketProps, MarketSideOptionProps, TradeProps } from '../../types';
|
|
5
|
-
import { MarketHelpers } from '../api';
|
|
6
|
-
|
|
7
|
-
type MarketButtonProps = {
|
|
8
|
-
market:MarketProps,
|
|
9
|
-
side_option:MarketSideOptionProps,
|
|
10
|
-
trade?:TradeProps,
|
|
11
|
-
order?:BestAvailableOrderProps
|
|
12
|
-
}
|
|
13
|
-
const MarketCard = ({ market, trade }:MarketButtonProps) => {
|
|
14
|
-
|
|
15
|
-
return (
|
|
16
|
-
<TouchableOpacity style={{ padding:5 }}>
|
|
17
|
-
{trade && market.var_1_required ?
|
|
18
|
-
<Text theme='body'>{MarketHelpers.getVar1Label(market, trade.var_1)}</Text>
|
|
19
|
-
:<></>}
|
|
20
|
-
</TouchableOpacity>
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default MarketCard
|