be-components 1.6.7 → 1.7.0

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 (37) hide show
  1. package/lib/commonjs/MarketComponents/api/index.js +34 -0
  2. package/lib/commonjs/MarketComponents/api/index.js.map +1 -1
  3. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js +15 -3
  4. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  5. package/lib/commonjs/MarketComponents/components/AthleteTournamentMarket/index.js +197 -0
  6. package/lib/commonjs/MarketComponents/components/AthleteTournamentMarket/index.js.map +1 -0
  7. package/lib/commonjs/MarketComponents/components/EventMarket/index.js +3 -2
  8. package/lib/commonjs/MarketComponents/components/EventMarket/index.js.map +1 -1
  9. package/lib/commonjs/MarketComponents/index.js +7 -1
  10. package/lib/commonjs/MarketComponents/index.js.map +1 -1
  11. package/lib/module/MarketComponents/api/index.js +34 -0
  12. package/lib/module/MarketComponents/api/index.js.map +1 -1
  13. package/lib/module/MarketComponents/components/AthleteMarket/index.js +15 -3
  14. package/lib/module/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  15. package/lib/module/MarketComponents/components/AthleteTournamentMarket/index.js +190 -0
  16. package/lib/module/MarketComponents/components/AthleteTournamentMarket/index.js.map +1 -0
  17. package/lib/module/MarketComponents/components/EventMarket/index.js +3 -2
  18. package/lib/module/MarketComponents/components/EventMarket/index.js.map +1 -1
  19. package/lib/module/MarketComponents/index.js +7 -1
  20. package/lib/module/MarketComponents/index.js.map +1 -1
  21. package/lib/typescript/src/MarketComponents/api/index.d.ts +4 -0
  22. package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -1
  23. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts +3 -1
  24. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  25. package/lib/typescript/src/MarketComponents/components/AthleteTournamentMarket/index.d.ts +29 -0
  26. package/lib/typescript/src/MarketComponents/components/AthleteTournamentMarket/index.d.ts.map +1 -0
  27. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts +2 -1
  28. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts.map +1 -1
  29. package/lib/typescript/src/MarketComponents/index.d.ts +67 -0
  30. package/lib/typescript/src/MarketComponents/index.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/MarketComponents/api/index.ts +18 -0
  33. package/src/MarketComponents/components/AthleteMarket/index.tsx +10 -2
  34. package/src/MarketComponents/components/AthleteTournamentMarket/index.tsx +123 -0
  35. package/src/MarketComponents/components/EventMarket/index.tsx +4 -1
  36. package/src/MarketComponents/index.tsx +7 -1
  37. package/src/types.d.ts +1 -0
@@ -16,6 +16,8 @@ type AthleteMarketProps = {
16
16
  hide_stat_banner?:boolean,
17
17
  width?:number,
18
18
  market:MarketProps,
19
+ show_event?:boolean,
20
+ hide_liquidity?:boolean,
19
21
  latest_trades:TradeProps[],
20
22
  best_available_orders:BestAvailableOrderProps[],
21
23
  event_order_stats:EventOrderStatProps[],
@@ -26,7 +28,7 @@ type AthleteMarketProps = {
26
28
  onTradeLongPress:(trade:TradeProps) => void
27
29
  }
28
30
 
29
- const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_order_stats, default_price_view, latest_trades, show_grades, best_available_orders, onOrder, onView, onTradeLongPress }:AthleteMarketProps) => {
31
+ const AthleteMarket = ({ event, show_event, hide_liquidity, hide_stat_banner, width, athlete, market, event_order_stats, default_price_view, latest_trades, show_grades, best_available_orders, onOrder, onView, onTradeLongPress }:AthleteMarketProps) => {
30
32
  const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
31
33
 
32
34
  const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
@@ -67,7 +69,11 @@ const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_
67
69
  right_color={'#ebd197'}
68
70
  />
69
71
  :<></>}
70
-
72
+ {show_event ?
73
+ <View style={{ padding:5, backgroundColor:Colors.shades.shade100 }}>
74
+ <Text size={12} color={Colors.brand.midnight} textAlign='center' weight='semibold'>{event.event_title}</Text>
75
+ </View>
76
+ :<></>}
71
77
  <View style={{ ...view_styles.section_body, flex:1, padding:0, justifyContent:'center', alignItems:'center' }}>
72
78
  <AthleteImage
73
79
  athlete={athlete}
@@ -89,6 +95,7 @@ const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_
89
95
  })}
90
96
 
91
97
  </View>
98
+ {!hide_liquidity ?
92
99
  <View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
93
100
  <TouchableOpacity style={{ flex:1, flexDirection:'row' }} onPress={() => {
94
101
  onView({
@@ -108,6 +115,7 @@ const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_
108
115
  </View>
109
116
  </TouchableOpacity>
110
117
  </View>
118
+ :<></>}
111
119
  </View>
112
120
  )
113
121
  }
@@ -0,0 +1,123 @@
1
+ import React from 'react';
2
+ import { View, TouchableOpacity } from 'react-native';
3
+ import type { AthleteProps, BestAvailableOrderProps, EventOrderStatProps, MarketProps, MarketSideOptionProps, OrderProps, TournamentProps, TradeProps } from "../../../types"
4
+ import { view_styles } from '../../../constants/styles';
5
+ import MarketButton from '../../components/MarketButton';
6
+ import { Icons, LinearDiagnal, Text } from '../../../Components';
7
+ import Colors from '../../../constants/colors';
8
+ import { MarketButtonHelpers } from '../MarketButton/api';
9
+ import { MarketComponentHelpers } from '../../api';
10
+ import { AthleteImage } from '../../../Components/Jerseys';
11
+
12
+ type AthleteTournamentMarketProps = {
13
+ tournament:TournamentProps,
14
+ event_type:'team'|'tournament'|'match',
15
+ athlete:AthleteProps,
16
+ hide_stat_banner?:boolean,
17
+ width?:number,
18
+ market:MarketProps,
19
+ show_event?:boolean,
20
+ hide_liquidity?:boolean,
21
+ latest_trades:TradeProps[],
22
+ best_available_orders:BestAvailableOrderProps[],
23
+ event_order_stats:EventOrderStatProps[],
24
+ default_price_view:'last_trade'|'best_available',
25
+ onOrder:(order:OrderProps) => void,
26
+ show_grades?:boolean,
27
+ onView:(data:{event_id:string, event_type:string, market_id:string, side_type:'athlete', side_id:string}) => void,
28
+ onTradeLongPress:(trade:TradeProps) => void
29
+ }
30
+
31
+ const AthleteTournamentMarket = ({ tournament, show_event, hide_liquidity, hide_stat_banner, width, athlete, market, event_order_stats, default_price_view, latest_trades, show_grades, best_available_orders, onOrder, onView, onTradeLongPress }:AthleteTournamentMarketProps) => {
32
+ const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
33
+
34
+ const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
35
+ const ba_order = best_available_orders.find(o => o.market_id == market.market_id && o.side_type == 'athlete' && o.side_id == athlete.athlete_id && o.side == data.item.side);
36
+ const side_details = MarketComponentHelpers.getTournamentSideIds(market, data.item, athlete, undefined);
37
+ if(!side_details){ return <></> }
38
+ 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);
39
+ if(!trade){
40
+ trade = MarketButtonHelpers.getTradeFromMarket(market, tournament.tournament_id, 'team', data.item.side, data.item.id_source, side_details.side_id, side_details.reversed_side_id);
41
+ }
42
+ return (
43
+ <View style={{ margin:2, height:50, width:75 }}>
44
+ <MarketButton
45
+ side_option={data.item}
46
+ market={data.market}
47
+ trade={trade}
48
+ show_grades={show_grades}
49
+ order={ba_order}
50
+ onLongPress={onTradeLongPress}
51
+ onPress={(order) => {
52
+ const order_title = MarketComponentHelpers.getOrderTitleForTournament(order, market, tournament, athlete);
53
+ if(!order_title){ return alert('Unable to process order') }
54
+ onOrder({ ...order, title: order_title })
55
+ }}
56
+ />
57
+ </View>
58
+ )
59
+ }
60
+
61
+ return (
62
+ <View style={{ ...view_styles.section, flex:1, borderWidth:1, borderColor:Colors.shades.shade600, width }}>
63
+ {!hide_stat_banner ?
64
+ <LinearDiagnal
65
+ label={market.stat_label ?? market.type}
66
+ label_size={14}
67
+ style={{ borderTopLeftRadius:8, padding:5 }}
68
+ left_color={Colors.incentive.gold}
69
+ right_color={'#ebd197'}
70
+ />
71
+ :<></>}
72
+ {show_event ?
73
+ <View style={{ padding:5, backgroundColor:Colors.shades.shade100 }}>
74
+ <Text size={12} color={Colors.brand.midnight} textAlign='center' weight='semibold'>{tournament.tournament_name}</Text>
75
+ </View>
76
+ :<></>}
77
+ <View style={{ ...view_styles.section_body, flex:1, padding:0, justifyContent:'center', alignItems:'center' }}>
78
+ <AthleteImage
79
+ athlete={athlete}
80
+ size={50}
81
+ number_size={12}
82
+ />
83
+ <View style={{ padding:10, paddingBottom:0 }}>
84
+ <Text weight='bold' size={14} color={Colors.brand.midnight} textAlign='center'>{athlete.first_name} {athlete.last_name}</Text>
85
+ <Text style={{ marginTop:3 }} color={Colors.brand.midnight} weight='regular' textAlign='center' size={12}>{athlete.team?`${athlete.team.abbr}`:''} ({athlete.position})</Text>
86
+ </View>
87
+ </View>
88
+ <View nativeID='market_sides' style={{ flexDirection:'row', justifyContent:'center', alignItems:'center', padding:10 }}>
89
+ {market.side_options.sort((a,b) => {
90
+ let a_t = a.side == market.trade_side ? 1 : 0
91
+ let b_t = b.side == market.trade_side ? 1 : 0
92
+ return a_t - b_t
93
+ }).map((so, index) => {
94
+ return renderSides({ item:so, index, market })
95
+ })}
96
+
97
+ </View>
98
+ {!hide_liquidity ?
99
+ <View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
100
+ <TouchableOpacity style={{ flex:1, flexDirection:'row' }} onPress={() => {
101
+ onView({
102
+ event_id: tournament.tournament_id,
103
+ event_type: 'tournament',
104
+ market_id: market.market_id,
105
+ side_type: 'athlete',
106
+ side_id: athlete.athlete_id
107
+ });
108
+ }}>
109
+ <View style={{ backgroundColor:Colors.shades.white, height:30, width:30, borderRadius:100, justifyContent:'center', alignItems:'center', ...view_styles.float }}>
110
+ <Icons.LiquidityIcon color={Colors.brand.midnight} size={30}/>
111
+ </View>
112
+ <View style={{ marginLeft:10 }}>
113
+ <Text theme='body_2'>Liquidity</Text>
114
+ <Text size={12} color={Colors.brand.electric} weight='semibold'>${liquidity.toFixed()} {open_order_count} Orders</Text>
115
+ </View>
116
+ </TouchableOpacity>
117
+ </View>
118
+ :<></>}
119
+ </View>
120
+ )
121
+ }
122
+
123
+ export default AthleteTournamentMarket
@@ -15,6 +15,7 @@ type EventMarketProps = {
15
15
  market:MarketProps,
16
16
  hide_market_banner?:boolean,
17
17
  latest_trades:TradeProps[],
18
+ hide_liquidity?:boolean,
18
19
  best_available_orders:BestAvailableOrderProps[],
19
20
  event_order_stats:EventOrderStatProps[],
20
21
  show_grades?:boolean,
@@ -24,7 +25,7 @@ type EventMarketProps = {
24
25
  onTradeLongPress:(trade:TradeProps) => void
25
26
  }
26
27
 
27
- const EventMarket = ({ width, event, market, latest_trades, best_available_orders, hide_market_banner, event_order_stats, show_grades, default_price_view, onOrder, onView, onTradeLongPress }:EventMarketProps) => {
28
+ const EventMarket = ({ width, event, hide_liquidity, market, latest_trades, best_available_orders, hide_market_banner, event_order_stats, show_grades, default_price_view, onOrder, onView, onTradeLongPress }:EventMarketProps) => {
28
29
  const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
29
30
 
30
31
  const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
@@ -97,6 +98,7 @@ const EventMarket = ({ width, event, market, latest_trades, best_available_order
97
98
  })}
98
99
 
99
100
  </View>
101
+ {!hide_liquidity ?
100
102
  <View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
101
103
  <TouchableOpacity style={{ flex:1, flexDirection:'row' }} onPress={() => {
102
104
  onView({
@@ -114,6 +116,7 @@ const EventMarket = ({ width, event, market, latest_trades, best_available_order
114
116
  </View>
115
117
  </TouchableOpacity>
116
118
  </View>
119
+ :<></>}
117
120
  </View>
118
121
  )
119
122
  }
@@ -1,5 +1,11 @@
1
1
  import TeamEventMarket from './components/TeamEventMarket';
2
+ import AthleteMarket from './components/AthleteMarket';
3
+ import EventMarket from './components/EventMarket';
4
+ import AthleteTournamentMarket from './components/AthleteTournamentMarket';
2
5
 
3
6
  export default {
4
- TeamEventMarket
7
+ TeamEventMarket,
8
+ AthleteMarket,
9
+ EventMarket,
10
+ AthleteTournamentMarket
5
11
  }
package/src/types.d.ts CHANGED
@@ -985,6 +985,7 @@ export interface MarketProps {
985
985
  stat_label?:string,
986
986
  supported_positions?:string[]
987
987
  primary_market:boolean,
988
+ suggested?:boolean,
988
989
  var_1_required?:boolean;
989
990
  show_side_option?:boolean;
990
991
  resolver?:string;