be-components 6.2.6 → 6.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/lib/commonjs/ApiOverrides/index.js +2 -2
  2. package/lib/commonjs/ApiOverrides/index.js.map +1 -1
  3. package/lib/commonjs/Components/Icons.js +53 -0
  4. package/lib/commonjs/Components/Icons.js.map +1 -1
  5. package/lib/commonjs/Components/Jerseys.js +37 -5
  6. package/lib/commonjs/Components/Jerseys.js.map +1 -1
  7. package/lib/commonjs/GolfScoreboard/components/LeaderBetSelector.js +7 -2
  8. package/lib/commonjs/GolfScoreboard/components/LeaderBetSelector.js.map +1 -1
  9. package/lib/commonjs/GolfScoreboard/index.js +1 -0
  10. package/lib/commonjs/GolfScoreboard/index.js.map +1 -1
  11. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js +6 -1
  12. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  13. package/lib/commonjs/MarketComponents/components/AthleteTournamentMarket/index.js +6 -1
  14. package/lib/commonjs/MarketComponents/components/AthleteTournamentMarket/index.js.map +1 -1
  15. package/lib/commonjs/MarketComponents/components/CreateMarketForm.js +27 -58
  16. package/lib/commonjs/MarketComponents/components/CreateMarketForm.js.map +1 -1
  17. package/lib/commonjs/MarketComponents/components/EventMarket/index.js +6 -1
  18. package/lib/commonjs/MarketComponents/components/EventMarket/index.js.map +1 -1
  19. package/lib/commonjs/MarketComponents/components/MatchMarket/index.js +6 -1
  20. package/lib/commonjs/MarketComponents/components/MatchMarket/index.js.map +1 -1
  21. package/lib/commonjs/MarketComponents/components/Parlay/ParlayCard.js +213 -0
  22. package/lib/commonjs/MarketComponents/components/Parlay/ParlayCard.js.map +1 -0
  23. package/lib/commonjs/MarketComponents/components/Parlay/api/index.js +16 -0
  24. package/lib/commonjs/MarketComponents/components/Parlay/api/index.js.map +1 -0
  25. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js +8 -1
  26. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  27. package/lib/commonjs/MarketComponents/components/TeamTournamentMarket/index.js +6 -1
  28. package/lib/commonjs/MarketComponents/components/TeamTournamentMarket/index.js.map +1 -1
  29. package/lib/commonjs/MarketComponents/components/TournamentMarket/index.js +4 -0
  30. package/lib/commonjs/MarketComponents/components/TournamentMarket/index.js.map +1 -1
  31. package/lib/commonjs/MarketComponents/index.js +2 -0
  32. package/lib/commonjs/MarketComponents/index.js.map +1 -1
  33. package/lib/module/ApiOverrides/index.js +2 -2
  34. package/lib/module/ApiOverrides/index.js.map +1 -1
  35. package/lib/module/Components/Icons.js +54 -1
  36. package/lib/module/Components/Icons.js.map +1 -1
  37. package/lib/module/Components/Jerseys.js +37 -5
  38. package/lib/module/Components/Jerseys.js.map +1 -1
  39. package/lib/module/GolfScoreboard/components/LeaderBetSelector.js +7 -2
  40. package/lib/module/GolfScoreboard/components/LeaderBetSelector.js.map +1 -1
  41. package/lib/module/GolfScoreboard/index.js +1 -0
  42. package/lib/module/GolfScoreboard/index.js.map +1 -1
  43. package/lib/module/MarketComponents/components/AthleteMarket/index.js +6 -1
  44. package/lib/module/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  45. package/lib/module/MarketComponents/components/AthleteTournamentMarket/index.js +6 -1
  46. package/lib/module/MarketComponents/components/AthleteTournamentMarket/index.js.map +1 -1
  47. package/lib/module/MarketComponents/components/CreateMarketForm.js +27 -58
  48. package/lib/module/MarketComponents/components/CreateMarketForm.js.map +1 -1
  49. package/lib/module/MarketComponents/components/EventMarket/index.js +6 -1
  50. package/lib/module/MarketComponents/components/EventMarket/index.js.map +1 -1
  51. package/lib/module/MarketComponents/components/MatchMarket/index.js +6 -1
  52. package/lib/module/MarketComponents/components/MatchMarket/index.js.map +1 -1
  53. package/lib/module/MarketComponents/components/Parlay/ParlayCard.js +206 -0
  54. package/lib/module/MarketComponents/components/Parlay/ParlayCard.js.map +1 -0
  55. package/lib/module/MarketComponents/components/Parlay/api/index.js +10 -0
  56. package/lib/module/MarketComponents/components/Parlay/api/index.js.map +1 -0
  57. package/lib/module/MarketComponents/components/TeamEventMarket/index.js +8 -1
  58. package/lib/module/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  59. package/lib/module/MarketComponents/components/TeamTournamentMarket/index.js +6 -1
  60. package/lib/module/MarketComponents/components/TeamTournamentMarket/index.js.map +1 -1
  61. package/lib/module/MarketComponents/components/TournamentMarket/index.js +4 -0
  62. package/lib/module/MarketComponents/components/TournamentMarket/index.js.map +1 -1
  63. package/lib/module/MarketComponents/index.js +2 -0
  64. package/lib/module/MarketComponents/index.js.map +1 -1
  65. package/lib/typescript/lib/commonjs/Components/Icons.d.ts +5 -0
  66. package/lib/typescript/lib/commonjs/Components/Icons.d.ts.map +1 -1
  67. package/lib/typescript/lib/commonjs/Components/Jerseys.d.ts.map +1 -1
  68. package/lib/typescript/lib/commonjs/GolfScoreboard/components/LeaderBetSelector.d.ts +2 -1
  69. package/lib/typescript/lib/commonjs/GolfScoreboard/components/LeaderBetSelector.d.ts.map +1 -1
  70. package/lib/typescript/lib/commonjs/GolfScoreboard/index.d.ts.map +1 -1
  71. package/lib/typescript/lib/commonjs/MarketComponents/components/CreateMarketForm.d.ts.map +1 -1
  72. package/lib/typescript/lib/commonjs/MarketComponents/components/Parlay/ParlayCard.d.ts +15 -0
  73. package/lib/typescript/lib/commonjs/MarketComponents/components/Parlay/ParlayCard.d.ts.map +1 -0
  74. package/lib/typescript/lib/commonjs/MarketComponents/components/Parlay/api/index.d.ts +5 -0
  75. package/lib/typescript/lib/commonjs/MarketComponents/components/Parlay/api/index.d.ts.map +1 -0
  76. package/lib/typescript/lib/commonjs/MarketComponents/components/TournamentMarket/index.d.ts +2 -1
  77. package/lib/typescript/lib/commonjs/MarketComponents/components/TournamentMarket/index.d.ts.map +1 -1
  78. package/lib/typescript/lib/commonjs/MarketComponents/index.d.ts +1 -0
  79. package/lib/typescript/lib/module/Components/Icons.d.ts +5 -0
  80. package/lib/typescript/lib/module/Components/Icons.d.ts.map +1 -1
  81. package/lib/typescript/lib/module/Components/Jerseys.d.ts.map +1 -1
  82. package/lib/typescript/lib/module/GolfScoreboard/components/LeaderBetSelector.d.ts +2 -1
  83. package/lib/typescript/lib/module/GolfScoreboard/components/LeaderBetSelector.d.ts.map +1 -1
  84. package/lib/typescript/lib/module/GolfScoreboard/index.d.ts.map +1 -1
  85. package/lib/typescript/lib/module/MarketComponents/components/AthleteMarket/index.d.ts +2 -1
  86. package/lib/typescript/lib/module/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  87. package/lib/typescript/lib/module/MarketComponents/components/AthleteTournamentMarket/index.d.ts +2 -1
  88. package/lib/typescript/lib/module/MarketComponents/components/AthleteTournamentMarket/index.d.ts.map +1 -1
  89. package/lib/typescript/lib/module/MarketComponents/components/CreateMarketForm.d.ts.map +1 -1
  90. package/lib/typescript/lib/module/MarketComponents/components/EventMarket/index.d.ts +2 -1
  91. package/lib/typescript/lib/module/MarketComponents/components/EventMarket/index.d.ts.map +1 -1
  92. package/lib/typescript/lib/module/MarketComponents/components/MatchMarket/index.d.ts +2 -1
  93. package/lib/typescript/lib/module/MarketComponents/components/MatchMarket/index.d.ts.map +1 -1
  94. package/lib/typescript/lib/module/MarketComponents/components/Parlay/ParlayCard.d.ts +15 -0
  95. package/lib/typescript/lib/module/MarketComponents/components/Parlay/ParlayCard.d.ts.map +1 -0
  96. package/lib/typescript/lib/module/MarketComponents/components/Parlay/api/index.d.ts +4 -0
  97. package/lib/typescript/lib/module/MarketComponents/components/Parlay/api/index.d.ts.map +1 -0
  98. package/lib/typescript/lib/module/MarketComponents/components/TeamEventMarket/index.d.ts +2 -1
  99. package/lib/typescript/lib/module/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -1
  100. package/lib/typescript/lib/module/MarketComponents/components/TeamTournamentMarket/index.d.ts +2 -1
  101. package/lib/typescript/lib/module/MarketComponents/components/TeamTournamentMarket/index.d.ts.map +1 -1
  102. package/lib/typescript/lib/module/MarketComponents/components/TournamentMarket/index.d.ts +2 -1
  103. package/lib/typescript/lib/module/MarketComponents/components/TournamentMarket/index.d.ts.map +1 -1
  104. package/lib/typescript/lib/module/MarketComponents/index.d.ts +2 -0
  105. package/lib/typescript/lib/module/MarketComponents/index.d.ts.map +1 -1
  106. package/lib/typescript/src/Components/Icons.d.ts +6 -0
  107. package/lib/typescript/src/Components/Icons.d.ts.map +1 -1
  108. package/lib/typescript/src/Components/Jerseys.d.ts.map +1 -1
  109. package/lib/typescript/src/GolfScoreboard/components/LeaderBetSelector.d.ts +2 -1
  110. package/lib/typescript/src/GolfScoreboard/components/LeaderBetSelector.d.ts.map +1 -1
  111. package/lib/typescript/src/GolfScoreboard/index.d.ts.map +1 -1
  112. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts +2 -1
  113. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  114. package/lib/typescript/src/MarketComponents/components/AthleteTournamentMarket/index.d.ts +2 -1
  115. package/lib/typescript/src/MarketComponents/components/AthleteTournamentMarket/index.d.ts.map +1 -1
  116. package/lib/typescript/src/MarketComponents/components/CreateMarketForm.d.ts.map +1 -1
  117. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts +2 -1
  118. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts.map +1 -1
  119. package/lib/typescript/src/MarketComponents/components/MatchMarket/index.d.ts +2 -1
  120. package/lib/typescript/src/MarketComponents/components/MatchMarket/index.d.ts.map +1 -1
  121. package/lib/typescript/src/MarketComponents/components/Parlay/ParlayCard.d.ts +19 -0
  122. package/lib/typescript/src/MarketComponents/components/Parlay/ParlayCard.d.ts.map +1 -0
  123. package/lib/typescript/src/MarketComponents/components/Parlay/api/index.d.ts +5 -0
  124. package/lib/typescript/src/MarketComponents/components/Parlay/api/index.d.ts.map +1 -0
  125. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts +2 -1
  126. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -1
  127. package/lib/typescript/src/MarketComponents/components/TeamTournamentMarket/index.d.ts +2 -1
  128. package/lib/typescript/src/MarketComponents/components/TeamTournamentMarket/index.d.ts.map +1 -1
  129. package/lib/typescript/src/MarketComponents/components/TournamentMarket/index.d.ts +2 -1
  130. package/lib/typescript/src/MarketComponents/components/TournamentMarket/index.d.ts.map +1 -1
  131. package/lib/typescript/src/MarketComponents/index.d.ts +27 -7
  132. package/lib/typescript/src/MarketComponents/index.d.ts.map +1 -1
  133. package/package.json +1 -1
  134. package/src/ApiOverrides/index.ts +2 -2
  135. package/src/Components/Icons.tsx +29 -1
  136. package/src/Components/Jerseys.tsx +12 -4
  137. package/src/GolfScoreboard/components/LeaderBetSelector.tsx +9 -4
  138. package/src/GolfScoreboard/index.tsx +1 -0
  139. package/src/MarketComponents/components/AthleteMarket/index.tsx +5 -2
  140. package/src/MarketComponents/components/AthleteTournamentMarket/index.tsx +5 -2
  141. package/src/MarketComponents/components/CreateMarketForm.tsx +17 -30
  142. package/src/MarketComponents/components/EventMarket/index.tsx +6 -2
  143. package/src/MarketComponents/components/MatchMarket/index.tsx +5 -3
  144. package/src/MarketComponents/components/Parlay/ParlayCard.tsx +127 -0
  145. package/src/MarketComponents/components/Parlay/api/index.ts +11 -0
  146. package/src/MarketComponents/components/TeamEventMarket/index.tsx +7 -2
  147. package/src/MarketComponents/components/TeamTournamentMarket/index.tsx +5 -2
  148. package/src/MarketComponents/components/TournamentMarket/index.tsx +5 -1
  149. package/src/MarketComponents/index.tsx +2 -0
  150. package/src/types.d.ts +52 -0
@@ -0,0 +1,127 @@
1
+ import React from 'react';
2
+ import { Button, Text, View } from "../../../Components/Themed"
3
+ import type { AthleteProps, LeagueProps, OrderProps, ParlayPositionProps, ParlayProps, PublicPlayerProps, TeamProps } from '../../../types';
4
+ import { FlatList, Image, type ViewStyle } from 'react-native';
5
+ import { MarketComponentHelpers } from '../../api';
6
+ import { useColors } from '../../../constants/useColors';
7
+ import { Icons } from '../../../Components';
8
+ import { AthleteImage, TeamImage } from '../../../Components/Jerseys';
9
+ import OrderGradeBar from '../OrderGradeBar';
10
+ import moment from 'moment-mini';
11
+ import { ParlayHelpers } from './api';
12
+
13
+ type ParlayCardProps = {
14
+ parlay:ParlayProps,
15
+ float?:boolean,
16
+ card_style?:ViewStyle,
17
+ header_style?:ViewStyle,
18
+ footer_style?:ViewStyle,
19
+ players:PublicPlayerProps[],
20
+ leagues:LeagueProps[],
21
+ teams:TeamProps[],
22
+ athletes:AthleteProps[],
23
+ parlay_positions:ParlayPositionProps[],
24
+ orders:OrderProps[]
25
+ }
26
+
27
+ const ParlayCard = ({ float, card_style, header_style, footer_style, teams, athletes, leagues, players, parlay, orders }:ParlayCardProps) => {
28
+ const Colors = useColors();
29
+ const parlay_owner = players.find(p => p.player_id == parlay.player_id);
30
+
31
+ const available = ParlayHelpers.calcAvailable(parlay);
32
+
33
+
34
+ const renderLegs = (data:{ item:OrderProps, index:number }) => {
35
+ const athlete = athletes.find(a => a.athlete_id == data.item.side_id);
36
+ const team = teams.find(t => t.team_id == data.item.side_id);
37
+ let league = leagues.find(l => l.league_id == team?.league_id);
38
+ if(data.item.side_type == 'athlete'){ league = leagues.find(l => l.league_id == athlete?.league_id) }
39
+ return (
40
+ <View type='row' style={{ padding:10, borderBottomWidth:1, borderColor:Colors.borders.light }}>
41
+ {data.item.side_type == 'team' && team ?
42
+ <TeamImage
43
+ team={team}
44
+ league={league}
45
+ size={30}
46
+ />
47
+ :data.item.side_type == 'athlete' && athlete ?
48
+ <AthleteImage
49
+ athlete={athlete}
50
+ league={league}
51
+ size={32}
52
+ />
53
+ :<></>}
54
+ <View transparent style={{ flex:1 }}>
55
+ <Text theme='h2'>{data.item.title}</Text>
56
+ <Text theme='description' style={{ marginTop:3 }}>{(data.item.probability*100).toFixed()}% ({MarketComponentHelpers.getOddsLabel(data.item.odds)})</Text>
57
+ </View>
58
+ <OrderGradeBar grade={data.item.grade} view_type='book'/>
59
+ </View>
60
+ )
61
+ }
62
+
63
+ return (
64
+ <View float={float} style={{ ...card_style }}>
65
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10, ...header_style }}>
66
+ <Icons.ParlayIcon size={28} color={Colors.text.h1}/>
67
+ <View transparent style={{ flex:1, marginLeft:10 }}>
68
+ <Text theme='h2'>{parlay.name}</Text>
69
+ <Text theme='light' style={{ marginTop:3 }}>Expires on {moment(parlay.expire_datetime).format('ddd hh:mm a')}</Text>
70
+ </View>
71
+ <View transparent style={{ alignItems:'flex-end' }}>
72
+ <Text theme='h2'>{parlay.open_amt.toFixed(2)} to win {parlay.potential_winnings.toFixed(2)}</Text>
73
+ <Text theme='light' style={{ marginTop:3 }}>{(parlay.probability*100).toFixed()}% ({MarketComponentHelpers.getOddsLabel(parlay.odds)})</Text>
74
+ </View>
75
+ </View>
76
+ <View type='body'>
77
+ <FlatList
78
+ data={orders}
79
+ renderItem={renderLegs}
80
+ keyExtractor={(item) => item.order_id.toString()}
81
+ />
82
+ </View>
83
+ <View type='footer' style={{ flexDirection:'row', alignItems:'center', padding:10, ...footer_style }}>
84
+ {parlay.show_me && parlay_owner ?
85
+ <View transparent style={{ flexDirection:'row', alignItems:'center' }}>
86
+ <View float style={{ borderRadius:100, padding:2 }}>
87
+ <Image
88
+ source={{ uri: parlay_owner.profile_pic && parlay_owner.profile_pic != '' ? parlay_owner.profile_pic : 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
89
+ style={{ height:35, width:35, borderRadius:100 }}
90
+ resizeMode='cover'
91
+ />
92
+ </View>
93
+ <View transparent style={{ marginLeft:10 }}>
94
+ <Text theme='light'>Created By</Text>
95
+ <Text theme='h2' style={{ marginTop:2 }}>@{parlay_owner.username}</Text>
96
+ </View>
97
+ </View>
98
+ :<></>}
99
+ <View transparent style={{ flex:1 }} />
100
+ <View transparent style={{ alignItems:'flex-end', marginRight:10 }}>
101
+ <Text theme='h2' color={Colors.text.success}>{available.toFixed(2)}</Text>
102
+ <Text style={{ marginTop:3 }} theme='light'>Available</Text>
103
+ </View>
104
+ {parlay.offer_side == 'taker' ?
105
+ <Button
106
+ type='success'
107
+ style={{ flexDirection:'row', alignItems:'center' }}
108
+ >
109
+ <Icons.BankIcon color={Colors.text.h1} size={14} />
110
+ <Text theme='h2' style={{ marginLeft:5 }} color={Colors.text.white}>House It</Text>
111
+ </Button>
112
+ :
113
+ <Button
114
+ type='success'
115
+ style={{ flexDirection:'row', alignItems:'center' }}
116
+ >
117
+ <Icons.USDIcon color={Colors.text.h1} size={14} />
118
+ <Text theme='h2' style={{ marginLeft:5 }} color={Colors.text.white}>Take It</Text>
119
+ </Button>
120
+ }
121
+
122
+ </View>
123
+ </View>
124
+ )
125
+ }
126
+
127
+ export default ParlayCard
@@ -0,0 +1,11 @@
1
+ import type { ParlayProps } from "../../../../types";
2
+
3
+ export const ParlayHelpers = {
4
+ calcAvailable: (parlay:ParlayProps):number => {
5
+ if(parlay.offer_side == 'taker'){
6
+ return parlay.potential_winnings - parlay.open_amt
7
+ } else {
8
+ return parlay.open_amt
9
+ }
10
+ }
11
+ }
@@ -27,6 +27,7 @@ type TeamEventMarketProps = {
27
27
  league?:LeagueProps,
28
28
  competitions?:CompetitionProps[],
29
29
  show_id?:string,
30
+ disabled_markets?:string[],
30
31
  hide_liquidity?:boolean,
31
32
  float?:boolean,
32
33
  hot_markets_direction?:'vertical'|'horizontal'
@@ -56,7 +57,7 @@ type TeamEventMarketProps = {
56
57
  onActivate?:(event_id:string, event_type:string) => void
57
58
  activate_loading?:boolean
58
59
  }
59
- const TeamEventMarket = ({ event, hide_non_primary, flash_markets, league, float, style, init_expanded, hot_markets_direction, show_id, hide_liquidity, show_podcasts, activate_loading, competitions, squares_competitions, show_grades, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSetMarket, onTeamSelect, onFlashSelect, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onViewMarketStats, onView, onViewAdditionalMarkets, onTradeLongPress, onTVSelect, onActivate, onEvent, onShare, onPodcastSelect }:TeamEventMarketProps) => {
60
+ const TeamEventMarket = ({ event, hide_non_primary, disabled_markets, flash_markets, league, float, style, init_expanded, hot_markets_direction, show_id, hide_liquidity, show_podcasts, activate_loading, competitions, squares_competitions, show_grades, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSetMarket, onTeamSelect, onFlashSelect, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onViewMarketStats, onView, onViewAdditionalMarkets, onTradeLongPress, onTVSelect, onActivate, onEvent, onShare, onPodcastSelect }:TeamEventMarketProps) => {
60
61
  const C = useColors();
61
62
  const [ market_width, setMarketWidth ] = useState(180);
62
63
  const [ expanded_data, setExpandedData ] = useState<{
@@ -214,6 +215,8 @@ const TeamEventMarket = ({ event, hide_non_primary, flash_markets, league, float
214
215
  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)
215
216
  }
216
217
  if(!trade){ return <></> }
218
+ let disabled = false
219
+ if(disabled_markets && disabled_markets.includes(data.market.market_id)){ disabled = true }
217
220
  return (
218
221
  <View transparent key={`${event.event_id}_${data.item.side}`} style={{ width:primary_width }}>
219
222
  <View transparent style={{ height:50, margin:2 }}>
@@ -222,7 +225,7 @@ const TeamEventMarket = ({ event, hide_non_primary, flash_markets, league, float
222
225
  market={data.market}
223
226
  trade={trade}
224
227
  order={ba_order}
225
- locked={data.is_locked}
228
+ locked={disabled || data.is_locked}
226
229
  show_grades={show_grades}
227
230
  onLongPress={onTradeLongPress}
228
231
  onPress={(order) => {
@@ -282,6 +285,7 @@ const TeamEventMarket = ({ event, hide_non_primary, flash_markets, league, float
282
285
  event_type='team'
283
286
  athlete={athlete}
284
287
  float
288
+ disabled_markets={disabled_markets}
285
289
  style={{ flexGrow:1, margin:5 }}
286
290
  direction={hot_markets_direction=='vertical' ? 'horizontal' : 'vertical'}
287
291
  show_grades={show_grades}
@@ -306,6 +310,7 @@ const TeamEventMarket = ({ event, hide_non_primary, flash_markets, league, float
306
310
  event={event}
307
311
  market={market}
308
312
  float
313
+ disabled_markets={disabled_markets}
309
314
  style={{ flexGrow:1, margin:5 }}
310
315
  direction={hot_markets_direction=='vertical' ? 'horizontal' : 'vertical'}
311
316
  hide_liquidity={hide_liquidity}
@@ -16,6 +16,7 @@ type TeamTournamentMarketProps = {
16
16
  hide_stat_banner?:boolean,
17
17
  width?:number,
18
18
  float?:boolean,
19
+ disabled_markets?:string[],
19
20
  market:MarketProps,
20
21
  direction?:'horizontal'|'vertical',
21
22
  show_event?:boolean,
@@ -31,7 +32,7 @@ type TeamTournamentMarketProps = {
31
32
  onTradeLongPress:(trade:TradeProps) => void
32
33
  }
33
34
 
34
- const TeamTournamentMarket = ({ tournament, float, direction, show_event, hide_liquidity, hide_stat_banner, style, team, market, event_order_stats, default_price_view, latest_trades, show_grades, best_available_orders, onOrder, onView, onTradeLongPress }:TeamTournamentMarketProps) => {
35
+ const TeamTournamentMarket = ({ tournament, disabled_markets, float, direction, show_event, hide_liquidity, hide_stat_banner, style, team, market, event_order_stats, default_price_view, latest_trades, show_grades, best_available_orders, onOrder, onView, onTradeLongPress }:TeamTournamentMarketProps) => {
35
36
  const C = useColors();
36
37
  const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
37
38
  const is_locked = useMemo(() => MarketComponentHelpers.isTournamentMarketLocked(tournament, market.market_id),[JSON.stringify(tournament.supported_markets)])
@@ -44,13 +45,15 @@ const TeamTournamentMarket = ({ tournament, float, direction, show_event, hide_l
44
45
  if(!trade){
45
46
  trade = MarketButtonHelpers.getTradeFromMarket(market, tournament.tournament_id, 'team', data.item.side, data.item.id_source, side_details.side_id, side_details.reversed_side_id);
46
47
  }
48
+ let disabled = false
49
+ if(disabled_markets && disabled_markets.includes(data.market.market_id)){ disabled = true }
47
50
  return (
48
51
  <View key={`${tournament.tournament_id}_${team.team_id}_${data.item.side}`} style={{ margin:2, height:50, width:75 }}>
49
52
  <MarketButton
50
53
  side_option={data.item}
51
54
  market={data.market}
52
55
  trade={trade}
53
- locked={is_locked}
56
+ locked={is_locked || disabled}
54
57
  show_grades={show_grades}
55
58
  order={ba_order}
56
59
  onLongPress={onTradeLongPress}
@@ -23,6 +23,7 @@ type TournamentMarketProps = {
23
23
  hide_match_liquidity?:boolean,
24
24
  show_grades?:boolean,
25
25
  float?:boolean,
26
+ disabled_markets?:string[],
26
27
  hide_participant_liquidity?:boolean,
27
28
  activate_loading?:boolean,
28
29
  wrap_markets?:boolean,
@@ -44,7 +45,7 @@ type TournamentMarketProps = {
44
45
  onOrder:(order:OrderProps) => void
45
46
  }
46
47
 
47
- const TournamentMarket = ({ tournament, float, wrap_markets, width, style, market_selector_location, flash_markets, hide_match_liquidity, show_grades, hide_participant_liquidity, league, markets, latest_trades, hide_liquidity, best_available_orders, event_order_stats, match_available_orders, match_latest_trades, match_order_stats, activate_loading, onView, onTradeLongPress, onViewAdditionalMarkets, onViewMarketStats, onFlashSelect, onOrder, onActivate, onShare }:TournamentMarketProps) => {
48
+ const TournamentMarket = ({ tournament, float, disabled_markets, wrap_markets, width, style, market_selector_location, flash_markets, hide_match_liquidity, show_grades, hide_participant_liquidity, league, markets, latest_trades, hide_liquidity, best_available_orders, event_order_stats, match_available_orders, match_latest_trades, match_order_stats, activate_loading, onView, onTradeLongPress, onViewAdditionalMarkets, onViewMarketStats, onFlashSelect, onOrder, onActivate, onShare }:TournamentMarketProps) => {
48
49
  const C = useColors();
49
50
  const [ search_value, setSearchValue ] = useState<string | undefined>(undefined);
50
51
  const [ tournament_data, setTournamentData ] = useState<{
@@ -156,6 +157,7 @@ const TournamentMarket = ({ tournament, float, wrap_markets, width, style, marke
156
157
  match={data.item}
157
158
  league={league}
158
159
  float
160
+ disabled_markets={disabled_markets}
159
161
  style={{ flexGrow:1 }}
160
162
  away_athlete={away_athlete}
161
163
  home_athlete={home_athlete}
@@ -193,6 +195,7 @@ const TournamentMarket = ({ tournament, float, wrap_markets, width, style, marke
193
195
  width={wrap_markets ? market_width : undefined}
194
196
  show_grades={show_grades}
195
197
  float
198
+ disabled_markets={disabled_markets}
196
199
  hide_liquidity={hide_participant_liquidity ? true : false}
197
200
  tournament={tournament}
198
201
  event_order_stats={team_order_stats}
@@ -220,6 +223,7 @@ const TournamentMarket = ({ tournament, float, wrap_markets, width, style, marke
220
223
  onView={onView}
221
224
  float
222
225
  league={league}
226
+ disabled_markets={disabled_markets}
223
227
  style={{ flexGrow:1 }}
224
228
  show_grades={show_grades}
225
229
  hide_liquidity={hide_participant_liquidity ? true : false}
@@ -15,6 +15,7 @@ import ExternalPriceComparison from './components/ExternalPriceComparison';
15
15
  import OrderGradeBar from './components/OrderGradeBar';
16
16
  import MarketManager from './components/MarketManager';
17
17
  import CreateMarketForm from './components/CreateMarketForm';
18
+ import ParlayCard from './components/Parlay/ParlayCard';
18
19
 
19
20
  export default {
20
21
  TeamEventMarket,
@@ -24,6 +25,7 @@ export default {
24
25
  EventMarket,
25
26
  OrderBookCard,
26
27
  CreateMarketForm,
28
+ ParlayCard,
27
29
  MarketManager,
28
30
  OrderBookChart,
29
31
  AthleteTournamentMarket,
package/src/types.d.ts CHANGED
@@ -2265,6 +2265,8 @@ export interface PositionProps {
2265
2265
  parlay_id?:string; //If the positions is created as the other side of a parlay, then this is the associated parlay id that needs to be reviewed for a win / loss
2266
2266
  status: 'inprogress' | 'closed'; //Current status of the order,
2267
2267
  legacy_id?:string,
2268
+ parlay_id?:string,
2269
+ parlay_position_id?:string,
2268
2270
  resolution_datetime?:any,
2269
2271
  purchased_grade?:number,
2270
2272
  commission:number,
@@ -2325,6 +2327,56 @@ export interface OrderStatsProps {
2325
2327
  last_update_datetime?:string
2326
2328
  }
2327
2329
 
2330
+
2331
+ export interface ParlayProps {
2332
+ parlay_id:string,
2333
+ player_id:string,
2334
+ name: string,
2335
+ show_me?:boolean,
2336
+ legs:number,
2337
+ odds:number,
2338
+ offer_side:'maker'|'taker',
2339
+ winning_side?:'maker'|'taker',
2340
+ probability:number,
2341
+ status: 'approved'|'cancelled'|'closed',
2342
+ expire_datetime: any,
2343
+ cancel_type?: 'expired'|'manual',
2344
+ resolution_status: 'inprogress'|'closed',
2345
+ region:string,
2346
+ market_type:'FOR_MONEY'|'FREE',
2347
+ location:{ latitude: number, longitude: number },
2348
+ no_bet?:boolean,
2349
+ no_bet_reason?:string,
2350
+ offer_amt:number,
2351
+ open_amt:number,
2352
+ potential_winnings:number,
2353
+ called_amt:number,
2354
+ commission_pct:number,
2355
+ create_datetime:any,
2356
+ last_update_datetime:any
2357
+ }
2358
+
2359
+
2360
+ export interface ParlayPositionProps {
2361
+ parlay_position_id:string,
2362
+ parlay_id:string,
2363
+ player_id:string,
2364
+ side: 'maker'|'taker',
2365
+ status: 'inprogress'|'closed',
2366
+ stake: number,
2367
+ odds:number,
2368
+ result_ind?:'win'|'lose'|'draw',
2369
+ probability:number,
2370
+ commission_pct:number,
2371
+ commission:number,
2372
+ net_winnings:number,
2373
+ potential_winnings:number,
2374
+ winnings:number,
2375
+ create_datetime:any,
2376
+ last_update_datetime:any
2377
+ }
2378
+
2379
+
2328
2380
  export interface OrderProps {
2329
2381
  order_id:string; //Primary key of the order
2330
2382
  player_id:string; //Id of the player creating the order