be-components 1.6.1 → 1.6.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 (52) hide show
  1. package/lib/commonjs/Components/Icons.js +47 -0
  2. package/lib/commonjs/Components/Icons.js.map +1 -1
  3. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js +7 -1
  4. package/lib/commonjs/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  5. package/lib/commonjs/MarketComponents/components/EventMarket/index.js +7 -1
  6. package/lib/commonjs/MarketComponents/components/EventMarket/index.js.map +1 -1
  7. package/lib/commonjs/MarketComponents/components/MarketButton/index.js +23 -11
  8. package/lib/commonjs/MarketComponents/components/MarketButton/index.js.map +1 -1
  9. package/lib/commonjs/MarketComponents/components/OrderGradeBar.js +154 -0
  10. package/lib/commonjs/MarketComponents/components/OrderGradeBar.js.map +1 -0
  11. package/lib/commonjs/MarketComponents/components/TeamEventMarket/api/index.js +10 -0
  12. package/lib/commonjs/MarketComponents/components/TeamEventMarket/api/index.js.map +1 -1
  13. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js +64 -10
  14. package/lib/commonjs/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  15. package/lib/module/Components/Icons.js +47 -0
  16. package/lib/module/Components/Icons.js.map +1 -1
  17. package/lib/module/MarketComponents/components/AthleteMarket/index.js +7 -1
  18. package/lib/module/MarketComponents/components/AthleteMarket/index.js.map +1 -1
  19. package/lib/module/MarketComponents/components/EventMarket/index.js +7 -1
  20. package/lib/module/MarketComponents/components/EventMarket/index.js.map +1 -1
  21. package/lib/module/MarketComponents/components/MarketButton/index.js +23 -11
  22. package/lib/module/MarketComponents/components/MarketButton/index.js.map +1 -1
  23. package/lib/module/MarketComponents/components/OrderGradeBar.js +148 -0
  24. package/lib/module/MarketComponents/components/OrderGradeBar.js.map +1 -0
  25. package/lib/module/MarketComponents/components/TeamEventMarket/api/index.js +10 -0
  26. package/lib/module/MarketComponents/components/TeamEventMarket/api/index.js.map +1 -1
  27. package/lib/module/MarketComponents/components/TeamEventMarket/index.js +64 -10
  28. package/lib/module/MarketComponents/components/TeamEventMarket/index.js.map +1 -1
  29. package/lib/typescript/src/Components/Icons.d.ts +1 -0
  30. package/lib/typescript/src/Components/Icons.d.ts.map +1 -1
  31. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts +3 -1
  32. package/lib/typescript/src/MarketComponents/components/AthleteMarket/index.d.ts.map +1 -1
  33. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts +3 -1
  34. package/lib/typescript/src/MarketComponents/components/EventMarket/index.d.ts.map +1 -1
  35. package/lib/typescript/src/MarketComponents/components/MarketButton/index.d.ts +5 -2
  36. package/lib/typescript/src/MarketComponents/components/MarketButton/index.d.ts.map +1 -1
  37. package/lib/typescript/src/MarketComponents/components/OrderGradeBar.d.ts +10 -0
  38. package/lib/typescript/src/MarketComponents/components/OrderGradeBar.d.ts.map +1 -0
  39. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/api/index.d.ts +1 -0
  40. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/api/index.d.ts.map +1 -1
  41. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts +7 -2
  42. package/lib/typescript/src/MarketComponents/components/TeamEventMarket/index.d.ts.map +1 -1
  43. package/lib/typescript/src/MarketComponents/index.d.ts +6 -1
  44. package/lib/typescript/src/MarketComponents/index.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/Components/Icons.tsx +23 -0
  47. package/src/MarketComponents/components/AthleteMarket/index.tsx +8 -2
  48. package/src/MarketComponents/components/EventMarket/index.tsx +8 -2
  49. package/src/MarketComponents/components/MarketButton/index.tsx +23 -9
  50. package/src/MarketComponents/components/OrderGradeBar.tsx +110 -0
  51. package/src/MarketComponents/components/TeamEventMarket/api/index.ts +6 -0
  52. package/src/MarketComponents/components/TeamEventMarket/index.tsx +46 -8
@@ -1,12 +1,15 @@
1
1
  import React from 'react';
2
- import type { MarketProps, MarketSideOptionProps, OrderProps, TradeProps } from '../../../types';
2
+ import type { BestAvailableOrderProps, MarketProps, MarketSideOptionProps, OrderProps, TradeProps } from '../../../types';
3
3
  type MarketButtonProps = {
4
4
  market: MarketProps;
5
5
  side_option: MarketSideOptionProps;
6
6
  side_label?: string;
7
+ order?: BestAvailableOrderProps;
7
8
  trade: TradeProps;
9
+ show_grades?: boolean;
8
10
  onPress: (order: OrderProps) => void;
11
+ onLongPress: (trade: TradeProps) => void;
9
12
  };
10
- declare const MarketCard: ({ side_option, market, trade, side_label, onPress }: MarketButtonProps) => React.JSX.Element;
13
+ declare const MarketCard: ({ side_option, show_grades, market, trade, order, onPress, onLongPress }: MarketButtonProps) => React.JSX.Element;
11
14
  export default MarketCard;
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/MarketComponents/components/MarketButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjG,KAAK,iBAAiB,GAAG;IACrB,MAAM,EAAC,WAAW,CAAC;IACnB,WAAW,EAAC,qBAAqB,CAAC;IAClC,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,KAAK,EAAC,UAAU,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAA;CACtC,CAAA;AACD,QAAA,MAAM,UAAU,wDAAwD,iBAAiB,sBAoBxF,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/MarketComponents/components/MarketButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK1H,KAAK,iBAAiB,GAAG;IACrB,MAAM,EAAC,WAAW,CAAC;IACnB,WAAW,EAAC,qBAAqB,CAAC;IAClC,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,KAAK,CAAC,EAAC,uBAAuB,CAAC;IAC/B,KAAK,EAAC,UAAU,CAAC;IACjB,WAAW,CAAC,EAAC,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAC;IACpC,WAAW,EAAC,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAA;CACzC,CAAA;AACD,QAAA,MAAM,UAAU,6EAA6E,iBAAiB,sBA8B7G,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ type OrderGradeBarProps = {
3
+ mask?: boolean;
4
+ grade?: number;
5
+ view_type: 'card' | 'book' | 'market';
6
+ onSelectGrade?: () => void;
7
+ };
8
+ declare const OrderGradeBar: ({ grade, view_type, mask, onSelectGrade }: OrderGradeBarProps) => React.JSX.Element;
9
+ export default OrderGradeBar;
10
+ //# sourceMappingURL=OrderGradeBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderGradeBar.d.ts","sourceRoot":"","sources":["../../../../../src/MarketComponents/components/OrderGradeBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAW,MAAM,OAAO,CAAC;AAuBhC,KAAK,kBAAkB,GAAG;IACtB,IAAI,CAAC,EAAC,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAC,MAAM,GAAC,QAAQ,CAAC;IAClC,aAAa,CAAC,EAAC,MAAM,IAAI,CAAA;CAC5B,CAAA;AAGD,QAAA,MAAM,aAAa,8CAA8C,kBAAkB,sBA2ElF,CAAA;AAGD,eAAe,aAAa,CAAA"}
@@ -6,5 +6,6 @@ declare const TeamEventMarketHelpers: {
6
6
  getTimeDetail: (event: EventProps) => string | undefined;
7
7
  sortNonPrimaryMarkets: (markets: MarketProps[], event_order_stats: EventOrderStatProps[]) => EventOrderStatProps[];
8
8
  sortAthleteMarkets: (market: MarketProps, event_order_stats: EventOrderStatProps[], latest_trades: TradeProps[], athletes: AthleteProps[]) => AthleteProps[];
9
+ getEventStatus: (event: EventProps) => 'active' | 'closed' | 'inactive';
9
10
  };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/MarketComponents/components/TeamEventMarket/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE/G,OAAQ,EAAE,sBAAsB,EAAE,CAAA;AAClC,QAAA,MAAM,sBAAsB;+BACE,UAAU,WAAU,WAAW,EAAE,KAAE,WAAW,EAAE;kCAK9C,UAAU,WAAU,WAAW,EAAE,KAAE,WAAW,EAAE;2BAKtD,UAAU;qCAIA,WAAW,EAAE,qBAAoB,mBAAmB,EAAE;iCAI1D,WAAW,qBAAoB,mBAAmB,EAAE,iBAAgB,UAAU,EAAE,YAAW,YAAY,EAAE,KAAE,YAAY,EAAE;CAWxJ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/MarketComponents/components/TeamEventMarket/api/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE/G,OAAQ,EAAE,sBAAsB,EAAE,CAAA;AAClC,QAAA,MAAM,sBAAsB;+BACE,UAAU,WAAU,WAAW,EAAE,KAAE,WAAW,EAAE;kCAK9C,UAAU,WAAU,WAAW,EAAE,KAAE,WAAW,EAAE;2BAKtD,UAAU;qCAIA,WAAW,EAAE,qBAAoB,mBAAmB,EAAE;iCAI1D,WAAW,qBAAoB,mBAAmB,EAAE,iBAAgB,UAAU,EAAE,YAAW,YAAY,EAAE,KAAE,YAAY,EAAE;4BAW9H,UAAU,KAAE,QAAQ,GAAC,QAAQ,GAAC,UAAU;CAMlE,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
- import type { BestAvailableOrderProps, CompetitionProps, EventOrderStatProps, EventProps, MarketProps, OrderProps, TradeProps } from '../../../types';
2
+ import type { BestAvailableOrderProps, CompetitionProps, EventOrderStatProps, EventProps, MarketProps, OrderProps, SquaresCompetitionProps, TradeProps } from '../../../types';
3
3
  type TeamEventMarketProps = {
4
4
  event: EventProps;
5
5
  markets: MarketProps[];
6
6
  competition?: CompetitionProps;
7
+ squares_competition?: SquaresCompetitionProps;
7
8
  latest_trades: TradeProps[];
8
9
  best_available_orders: BestAvailableOrderProps[];
9
10
  event_order_stats: EventOrderStatProps[];
@@ -17,9 +18,13 @@ type TeamEventMarketProps = {
17
18
  }) => void;
18
19
  onOrder: (order: OrderProps) => void;
19
20
  onExpand?: (expanded: boolean) => void;
21
+ show_grades?: boolean;
20
22
  onCompetitionSelect: (competition_id: string) => void;
23
+ onSquaresSelect: (sq_comp_id: string) => void;
21
24
  onViewAdditionalMarkets: (event_id: string, event_type: string) => void;
25
+ onTradeLongPress: (trade: TradeProps) => void;
26
+ onActivate?: (event_id: string, event_type: string) => void;
22
27
  };
23
- declare const TeamEventMarket: ({ event, competition, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets }: TeamEventMarketProps) => React.JSX.Element;
28
+ declare const TeamEventMarket: ({ event, competition, squares_competition, show_grades, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets, onTradeLongPress, onActivate }: TeamEventMarketProps) => React.JSX.Element;
24
29
  export default TeamEventMarket;
25
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/MarketComponents/components/TeamEventMarket/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAgB,uBAAuB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAyB,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa3L,KAAK,oBAAoB,GAAG;IACxB,KAAK,EAAC,UAAU,CAAC;IACjB,OAAO,EAAC,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAC,gBAAgB,CAAC;IAC9B,aAAa,EAAC,UAAU,EAAE,CAAC;IAC3B,qBAAqB,EAAC,uBAAuB,EAAE,CAAC;IAChD,iBAAiB,EAAC,mBAAmB,EAAE,CAAC;IACxC,kBAAkB,EAAE,YAAY,GAAC,gBAAgB,CAAC;IAClD,MAAM,EAAC,CAAC,IAAI,EAAC;QAAE,QAAQ,EAAC,MAAM,CAAC;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,SAAS,EAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnH,OAAO,EAAC,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAC,CAAC,QAAQ,EAAC,OAAO,KAAK,IAAI,CAAC;IACrC,mBAAmB,EAAC,CAAC,cAAc,EAAC,MAAM,KAAK,IAAI,CAAC;IACpD,uBAAuB,EAAE,CAAC,QAAQ,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,KAAK,IAAI,CAAA;CACxE,CAAA;AACD,QAAA,MAAM,eAAe,0LAA0L,oBAAoB,sBAuQlO,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/MarketComponents/components/TeamEventMarket/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAgB,uBAAuB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAyB,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAapN,KAAK,oBAAoB,GAAG;IACxB,KAAK,EAAC,UAAU,CAAC;IACjB,OAAO,EAAC,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAC,gBAAgB,CAAC;IAC9B,mBAAmB,CAAC,EAAC,uBAAuB,CAAC;IAC7C,aAAa,EAAC,UAAU,EAAE,CAAC;IAC3B,qBAAqB,EAAC,uBAAuB,EAAE,CAAC;IAChD,iBAAiB,EAAC,mBAAmB,EAAE,CAAC;IACxC,kBAAkB,EAAE,YAAY,GAAC,gBAAgB,CAAC;IAClD,MAAM,EAAC,CAAC,IAAI,EAAC;QAAE,QAAQ,EAAC,MAAM,CAAC;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,SAAS,EAAC,MAAM,CAAC;QAAC,SAAS,CAAC,EAAC,MAAM,CAAC;QAAC,OAAO,CAAC,EAAC,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnH,OAAO,EAAC,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAC,CAAC,QAAQ,EAAC,OAAO,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAC,OAAO,CAAC;IACrB,mBAAmB,EAAC,CAAC,cAAc,EAAC,MAAM,KAAK,IAAI,CAAC;IACpD,eAAe,EAAE,CAAC,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IAC7C,uBAAuB,EAAE,CAAC,QAAQ,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IACtE,gBAAgB,EAAC,CAAC,KAAK,EAAC,UAAU,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAC,CAAC,QAAQ,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,KAAK,IAAI,CAAA;CAC3D,CAAA;AACD,QAAA,MAAM,eAAe,2QAA2Q,oBAAoB,sBAwSnT,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  declare const _default: {
3
- TeamEventMarket: ({ event, competition, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets }: {
3
+ TeamEventMarket: ({ event, competition, squares_competition, show_grades, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets, onTradeLongPress, onActivate }: {
4
4
  event: import("../types").EventProps;
5
5
  markets: import("../types").MarketProps[];
6
6
  competition?: import("../types").CompetitionProps | undefined;
7
+ squares_competition?: import("../types").SquaresCompetitionProps | undefined;
7
8
  latest_trades: import("../types").TradeProps[];
8
9
  best_available_orders: import("../types").BestAvailableOrderProps[];
9
10
  event_order_stats: import("../types").EventOrderStatProps[];
@@ -17,8 +18,12 @@ declare const _default: {
17
18
  }) => void;
18
19
  onOrder: (order: import("../types").OrderProps) => void;
19
20
  onExpand?: ((expanded: boolean) => void) | undefined;
21
+ show_grades?: boolean | undefined;
20
22
  onCompetitionSelect: (competition_id: string) => void;
23
+ onSquaresSelect: (sq_comp_id: string) => void;
21
24
  onViewAdditionalMarkets: (event_id: string, event_type: string) => void;
25
+ onTradeLongPress: (trade: import("../types").TradeProps) => void;
26
+ onActivate?: ((event_id: string, event_type: string) => void) | undefined;
22
27
  }) => import("react").JSX.Element;
23
28
  };
24
29
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/MarketComponents/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAEC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/MarketComponents/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "be-components",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "Components for BettorEdge Apps",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1176,12 +1176,35 @@ const PickEmIcon = ({ color, size }:IconProps) => {
1176
1176
  )
1177
1177
  }
1178
1178
 
1179
+ const MarketClosedIcon = ({color, size}:IconProps) => {
1180
+ const ratio = 0.875
1181
+ let width = size ?? 20
1182
+ let height = width * ratio
1183
+
1184
+ return (
1185
+ <svg width={`${width}px`} height={`${height}px`} viewBox="0 0 24 21" version="1.1" xmlns="http://www.w3.org/2000/svg">
1186
+ <title>closed-svgrepo-com</title>
1187
+ <g id="ss" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
1188
+ <g id="closed-svgrepo-com" fill={color??Colors.brand.midnight} fill-rule="nonzero">
1189
+ <path d="M22.3671706,9.53779698 L20.8694773,9.53779698 L13.0909374,1.75925702 C13.1721641,1.59612959 13.2181425,1.41242333 13.2181425,1.21814255 C13.2181425,0.546453564 12.671689,0 12,0 C11.328311,0 10.7818575,0.546453564 10.7818575,1.21814255 C10.7818575,1.41242333 10.8278359,1.59612959 10.9090626,1.75925702 L3.13052268,9.53779698 L1.63282937,9.53779698 C0.732492441,9.53779698 0,10.2702894 0,11.1706263 L0,18.6349892 C0,19.5353261 0.732492441,20.2678186 1.63282937,20.2678186 L22.3671706,20.2678186 C23.2675076,20.2678186 24,19.5353261 24,18.6349892 L24,11.1706263 C24,10.2702894 23.2675076,9.53779698 22.3671706,9.53779698 Z M12,0.777537797 C12.2429546,0.777537797 12.4406048,0.975187905 12.4406048,1.21814255 C12.4406048,1.46109719 12.2429546,1.6587473 12,1.6587473 C11.7570454,1.6587473 11.5593952,1.46109719 11.5593952,1.21814255 C11.5593952,0.975187905 11.7570454,0.777537797 12,0.777537797 Z M11.4588855,2.30907991 C11.622013,2.3903067 11.8057192,2.4362851 12,2.4362851 C12.1942808,2.4362851 12.377987,2.3903067 12.5411145,2.30907991 L19.7698315,9.53779698 L4.23016847,9.53779698 L11.4588855,2.30907991 Z M23.2224622,18.6349892 C23.2224622,19.1066436 22.8387732,19.4902808 22.3671706,19.4902808 L1.63282937,19.4902808 C1.16122678,19.4902808 0.777537797,19.1066436 0.777537797,18.6349892 L0.777537797,11.1706263 C0.777537797,10.6989719 1.16122678,10.3153348 1.63282937,10.3153348 L22.3671706,10.3153348 C22.8387732,10.3153348 23.2224622,10.6989719 23.2224622,11.1706263 L23.2224622,18.6349892 Z" id="Shape"></path>
1190
+ <path d="M3.29157667,13.2181425 C3.65396112,13.2181425 3.97829806,13.4476199 4.09860907,13.7892181 C4.16993521,13.9916371 4.39205184,14.0979525 4.59441901,14.02673 C4.79694168,13.9553521 4.90325702,13.7333909 4.83193089,13.5308683 C4.60224622,12.8787214 3.98322246,12.4406048 3.29157667,12.4406048 C2.39123974,12.4406048 1.6587473,13.1730972 1.6587473,14.0734341 L1.6587473,15.7321814 C1.6587473,16.6325184 2.39123974,17.3650108 3.29157667,17.3650108 C3.98239309,17.3650108 4.6012095,16.9276199 4.83136069,16.2765616 C4.90289417,16.0741425 4.79683801,15.8520259 4.59441901,15.7804406 C4.392,15.708959 4.16988337,15.8149633 4.09829806,16.0173823 C3.97772786,16.3583585 3.65354644,16.587473 3.29157667,16.587473 C2.81997408,16.587473 2.4362851,16.203784 2.4362851,15.7321814 L2.4362851,14.0734341 C2.4362851,13.6018315 2.81997408,13.2181425 3.29157667,13.2181425 Z" id="Path"></path>
1191
+ <path d="M7.85313175,16.587473 L6.16846652,16.587473 L6.16846652,12.8293737 C6.16846652,12.6146177 5.99440173,12.4406048 5.77969762,12.4406048 C5.56499352,12.4406048 5.39092873,12.6146177 5.39092873,12.8293737 L5.39092873,16.9762419 C5.39092873,17.1909978 5.56499352,17.3650108 5.77969762,17.3650108 L7.85313175,17.3650108 C8.06783585,17.3650108 8.24190065,17.1909978 8.24190065,16.9762419 C8.24190065,16.761486 8.06783585,16.587473 7.85313175,16.587473 Z" id="Path"></path>
1192
+ <path d="M9.92656587,12.4406048 C9.02622894,12.4406048 8.2937365,13.1730972 8.2937365,14.0734341 L8.2937365,15.7321814 C8.2937365,16.6325184 9.02622894,17.3650108 9.92656587,17.3650108 C10.8269028,17.3650108 11.5593952,16.6325184 11.5593952,15.7321814 L11.5593952,14.0734341 C11.5593952,13.1730972 10.8269028,12.4406048 9.92656587,12.4406048 Z M10.7818575,15.7321814 C10.7818575,16.203784 10.3981685,16.587473 9.92656587,16.587473 C9.45496328,16.587473 9.0712743,16.203784 9.0712743,15.7321814 L9.0712743,14.0734341 C9.0712743,13.6018315 9.45496328,13.2181425 9.92656587,13.2181425 C10.3981685,13.2181425 10.7818575,13.6018315 10.7818575,14.0734341 L10.7818575,15.7321814 Z" id="Shape"></path>
1193
+ <path d="M13.6587473,14.5140389 C13.1951274,14.5140389 12.8034557,14.2172786 12.8034557,13.8660907 C12.8034557,13.5149028 13.1951274,13.2181425 13.6587473,13.2181425 C14.0650886,13.2181425 14.4269028,13.4475162 14.500406,13.7516371 C14.5508423,13.9602765 14.7607775,14.0885702 14.9696242,14.0381857 C15.1783153,13.9877495 15.3066091,13.7777106 15.2561728,13.5689676 C15.0982289,12.915162 14.4263844,12.4406048 13.6587473,12.4406048 C12.7584104,12.4406048 12.0259179,13.0801037 12.0259179,13.8660907 C12.0259179,14.6520778 12.7584104,15.2915767 13.6587473,15.2915767 C14.1223672,15.2915767 14.5140389,15.5883369 14.5140389,15.9395248 C14.5140389,16.2907127 14.1223672,16.587473 13.6587473,16.587473 C13.252406,16.587473 12.8905918,16.3580994 12.8170886,16.0539784 C12.7666523,15.8452354 12.5565616,15.716527 12.3478704,15.7674298 C12.1391793,15.8178661 12.0108855,16.027905 12.0613218,16.2366479 C12.2192657,16.8904536 12.8911102,17.3650108 13.6587473,17.3650108 C14.5590842,17.3650108 15.2915767,16.7255119 15.2915767,15.9395248 C15.2915767,15.1535378 14.5590842,14.5140389 13.6587473,14.5140389 Z" id="Path"></path>
1194
+ <path d="M18.2203024,13.2181425 C18.4350065,13.2181425 18.6090713,13.0441296 18.6090713,12.8293737 C18.6090713,12.6146177 18.4350065,12.4406048 18.2203024,12.4406048 L16.1468683,12.4406048 C15.9321641,12.4406048 15.7580994,12.6146177 15.7580994,12.8293737 L15.7580994,16.9762419 C15.7580994,17.1909978 15.9321641,17.3650108 16.1468683,17.3650108 L18.2203024,17.3650108 C18.4350065,17.3650108 18.6090713,17.1909978 18.6090713,16.9762419 C18.6090713,16.761486 18.4350065,16.587473 18.2203024,16.587473 L16.5356371,16.587473 L16.5356371,15.2915767 L17.8056156,15.2915767 C18.0203197,15.2915767 18.1943844,15.1175637 18.1943844,14.9028078 C18.1943844,14.6880518 18.0203197,14.5140389 17.8056156,14.5140389 L16.5356371,14.5140389 L16.5356371,13.2181425 L18.2203024,13.2181425 Z" id="Path"></path>
1195
+ <path d="M19.8790497,12.4406048 L19.4643629,12.4406048 C19.2496587,12.4406048 19.075594,12.6146177 19.075594,12.8293737 L19.075594,16.9762419 C19.075594,17.1909978 19.2496587,17.3650108 19.4643629,17.3650108 L19.8790497,17.3650108 C21.2366825,17.3650108 22.3412527,16.2604406 22.3412527,14.9028078 C22.3412527,13.5451749 21.2366825,12.4406048 19.8790497,12.4406048 Z M19.8790497,16.587473 L19.8531317,16.587473 L19.8531317,13.2181425 L19.8790497,13.2181425 C20.8079482,13.2181425 21.5637149,13.9738575 21.5637149,14.9028078 C21.5637149,15.8317581 20.8079482,16.587473 19.8790497,16.587473 Z" id="Shape"></path>
1196
+ </g>
1197
+ </g>
1198
+ </svg>
1199
+ )
1200
+ }
1179
1201
 
1180
1202
 
1181
1203
  export default {
1182
1204
  SearchIcon,
1183
1205
  LiquidityIcon,
1184
1206
  EyeOnIcon,
1207
+ MarketClosedIcon,
1185
1208
  AlertIcon,
1186
1209
  PieIcon,
1187
1210
  BankIcon,
@@ -21,13 +21,16 @@ type AthleteMarketProps = {
21
21
  event_order_stats:EventOrderStatProps[],
22
22
  default_price_view:'last_trade'|'best_available',
23
23
  onOrder:(order:OrderProps) => void,
24
- onView:(data:{event_id:string, event_type:string, market_id:string, side_type:'athlete', side_id:string}) => void
24
+ show_grades?:boolean,
25
+ onView:(data:{event_id:string, event_type:string, market_id:string, side_type:'athlete', side_id:string}) => void,
26
+ onTradeLongPress:(trade:TradeProps) => void
25
27
  }
26
28
 
27
- const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_order_stats, default_price_view, latest_trades, best_available_orders, onOrder, onView }:AthleteMarketProps) => {
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) => {
28
30
  const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
29
31
 
30
32
  const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
33
+ 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);
31
34
  const side_details = MarketComponentHelpers.getTeamEventSideIds(event, market, data.item, athlete, undefined);
32
35
  if(!side_details){ return <></> }
33
36
  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);
@@ -40,6 +43,9 @@ const AthleteMarket = ({ event, hide_stat_banner, width, athlete, market, event_
40
43
  side_option={data.item}
41
44
  market={data.market}
42
45
  trade={trade}
46
+ show_grades={show_grades}
47
+ order={ba_order}
48
+ onLongPress={onTradeLongPress}
43
49
  onPress={(order) => {
44
50
  const order_title = MarketComponentHelpers.getOrderTitleForTeamEvent(order, market, event, athlete);
45
51
  if(!order_title){ return alert('Unable to process order') }
@@ -17,15 +17,18 @@ type EventMarketProps = {
17
17
  latest_trades:TradeProps[],
18
18
  best_available_orders:BestAvailableOrderProps[],
19
19
  event_order_stats:EventOrderStatProps[],
20
+ show_grades?:boolean,
20
21
  default_price_view:'last_trade'|'best_available',
21
22
  onOrder:(order:OrderProps) => void,
22
- onView:(data: { event_id:string, event_type:string, market_id:string }) => void
23
+ onView:(data: { event_id:string, event_type:string, market_id:string }) => void,
24
+ onTradeLongPress:(trade:TradeProps) => void
23
25
  }
24
26
 
25
- const EventMarket = ({ width, event, market, latest_trades, best_available_orders, hide_market_banner, event_order_stats, default_price_view, onOrder, onView }:EventMarketProps) => {
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) => {
26
28
  const { liquidity, open_order_count } = MarketComponentHelpers.getLiqudity(event_order_stats);
27
29
 
28
30
  const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
31
+ const ba_order = best_available_orders.find(o => o.market_id == market.market_id && o.side == data.item.side);
29
32
  const side_details = MarketComponentHelpers.getTeamEventSideIds(event, market, data.item, undefined, undefined);
30
33
  if(!side_details){ return }
31
34
  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);
@@ -40,6 +43,9 @@ const EventMarket = ({ width, event, market, latest_trades, best_available_order
40
43
  side_option={data.item}
41
44
  market={data.market}
42
45
  side_label={side_label}
46
+ show_grades={show_grades}
47
+ order={ba_order}
48
+ onLongPress={onTradeLongPress}
43
49
  trade={trade}
44
50
  onPress={(order) => {
45
51
  const order_title = MarketComponentHelpers.getOrderTitleForTeamEvent(order, market, event);
@@ -1,35 +1,49 @@
1
1
  import React from 'react';
2
2
  import { TouchableOpacity, View } from "react-native"
3
3
  import Text from '../../../Components/Text';
4
- import type { MarketProps, MarketSideOptionProps, OrderProps, TradeProps } from '../../../types';
4
+ import type { BestAvailableOrderProps, MarketProps, MarketSideOptionProps, OrderProps, TradeProps } from '../../../types';
5
5
  import Colors from '../../../constants/colors';
6
6
  import { MarketButtonHelpers } from './api';
7
+ import OrderGradeBar from '../OrderGradeBar';
7
8
 
8
9
  type MarketButtonProps = {
9
10
  market:MarketProps,
10
11
  side_option:MarketSideOptionProps,
11
12
  side_label?:string,
13
+ order?:BestAvailableOrderProps,
12
14
  trade:TradeProps,
13
- onPress: (order:OrderProps) => void
15
+ show_grades?:boolean,
16
+ onPress: (order:OrderProps) => void,
17
+ onLongPress:(trade:TradeProps) => void
14
18
  }
15
- const MarketCard = ({ side_option, market, trade, side_label, onPress }:MarketButtonProps) => {
19
+ const MarketCard = ({ side_option, show_grades, market, trade, order, onPress, onLongPress }:MarketButtonProps) => {
16
20
  const { var_1, odds, color } = MarketButtonHelpers.getButtonLabel(market, side_option, trade);
17
21
  const handlePress = () => {
18
22
  return onPress(MarketButtonHelpers.getOrderFromTrade(trade))
19
23
  }
20
24
 
21
25
  return (
22
- <TouchableOpacity style={{ flex:1, padding:5, backgroundColor:color, borderRadius:4, justifyContent:'center' }}
23
- onPress={() => handlePress()}>
24
- <View>
25
- {side_label ?
26
- <Text size={12} color={Colors.brand.midnight} weight='semibold' textAlign='center'>{side_label}</Text>
26
+ <TouchableOpacity
27
+ style={{ flex:1, backgroundColor:color, borderRadius:4}}
28
+ onPress={() => handlePress()}
29
+ onLongPress={() => onLongPress(trade)}
30
+ >
31
+ <View style={{ flex:1, padding:5, justifyContent:'center' }}>
32
+ {!market.var_1_required && market.show_side_option ?
33
+ <Text size={12} color={Colors.brand.midnight} weight='regular' textAlign='center'>{side_option.label.toUpperCase()}</Text>
27
34
  :<></>}
28
35
  {market.var_1_required ?
29
- <Text size={12} color={Colors.brand.midnight} weight='semibold' textAlign='center'>{var_1}</Text>
36
+ <Text size={12} color={Colors.brand.midnight} weight='regular' textAlign='center'>{var_1}</Text>
30
37
  :<></>}
31
38
  <Text style={{ marginTop:2 }} size={12} color={Colors.brand.midnight} weight='semibold' textAlign='center'>{odds}</Text>
32
39
  </View>
40
+ {order ?
41
+ <OrderGradeBar
42
+ grade={order.grade}
43
+ view_type='market'
44
+ mask={!show_grades}
45
+ />
46
+ :<></>}
33
47
  </TouchableOpacity>
34
48
  )
35
49
  }
@@ -0,0 +1,110 @@
1
+ import React, { } from 'react';
2
+ import { FlatList, View, TouchableOpacity } from 'react-native';
3
+ import { Icons } from '../../Components';
4
+ import Colors from '../../constants/colors';
5
+
6
+ //Typecast a grade box object
7
+ type GradeBoxType = {
8
+ min:number,
9
+ max:number,
10
+ success_color:string,
11
+ fail_color:string,
12
+ locked_color:string
13
+ }
14
+
15
+ //Stage the boxes and set the min / max and colors
16
+ const grade_boxes:GradeBoxType[] = [
17
+ { min: 0, max: 79, success_color: 'rgba(125,205,133,0.2)', fail_color: 'rgba(213,87, 59, 0.2)', locked_color: Colors.shades.shade100 },
18
+ { min: 80, max: 94, success_color: 'rgba(125,205,133,0.4)', fail_color: 'rgba(213,87, 59, 0.4)', locked_color: Colors.shades.shade100 },
19
+ { min:95, max: 97.5, success_color: 'rgba(125,205,133,0.6)', fail_color: 'rgba(213,87, 59, 0.6)', locked_color: Colors.shades.shade100 },
20
+ { min:97.6, max: 99.99, success_color: 'rgba(125,205,133,0.8)', fail_color: 'rgba(213,87, 59, 0)', locked_color: Colors.shades.shade100 },
21
+ { min: 100, max: 200, success_color: 'rgba(125,205,133,1)', fail_color: 'rgba(213,87, 59, 0)', locked_color: Colors.shades.shade100 }
22
+ ]
23
+
24
+ type OrderGradeBarProps = {
25
+ mask?:boolean,
26
+ grade?: number,
27
+ view_type: 'card'|'book'|'market',
28
+ onSelectGrade?:() => void
29
+ }
30
+
31
+ //OrderGradeBar React Component
32
+ const OrderGradeBar = ({ grade, view_type, mask, onSelectGrade }:OrderGradeBarProps ) => {
33
+
34
+ //Get the player's role
35
+ let premium = true
36
+ if(mask){ premium = false }
37
+
38
+
39
+ /**
40
+ * Renders the grade boxes
41
+ * @param data
42
+ * @returns
43
+ */
44
+ const renderGradeBoxes = (data :{ item:GradeBoxType, index:number }) => {
45
+ if(!grade && grade !== 0){ return <></> }
46
+ //Check if the grade is greater than the minumum of the box
47
+ const filled = grade >= data.item.min ? true : false
48
+ const success = grade > 97.5 ? true : false
49
+ const locked = !premium ? true : false
50
+ //Render the box
51
+ return (
52
+ <View style={{ margin:2, height:15, width:15, borderRadius:4, backgroundColor:locked? data.item.locked_color : filled ? success ? data.item.success_color : data.item.fail_color : Colors.shades.shade100 }}>
53
+ {locked ?
54
+ <View style={{ position:'absolute', top:0, right:0, left:0, bottom:0, justifyContent:'center', alignItems:'center' }}>
55
+ <Icons.LockClosedIcon size={10} color={Colors.incentive.gold} />
56
+ </View>
57
+ :<></>}
58
+ </View>
59
+ )
60
+ }
61
+
62
+ /**
63
+ * Renders the grade boxes
64
+ * @param data
65
+ * @returns
66
+ */
67
+ const renderGradeDashes = (data :{ item:GradeBoxType, index:number }) => {
68
+ if(!grade && grade !== 0){ return <></> }
69
+ //Check if the grade is greater than the minumum of the box
70
+ const filled = grade >= data.item.min ? true : false
71
+ const success = grade > 97.5 ? true : false
72
+ const locked = !premium ? true : false
73
+
74
+ //Render the box
75
+ return (
76
+ <View style={{ margin:1, height:4, width:15, borderRadius:4, backgroundColor:locked? data.item.locked_color : filled ? success ? data.item.success_color : data.item.fail_color : Colors.shades.shade100 }} />
77
+ )
78
+ }
79
+
80
+ if(!grade && grade !== 0){
81
+ return (
82
+ <></>
83
+ )
84
+ }
85
+
86
+ if(view_type == 'market'){
87
+ const success = grade > 97.5 ? true : false
88
+ if(!premium){
89
+ return (<></>)
90
+ }
91
+ return (
92
+ <View style={{ height:3, backgroundColor:success?Colors.utility.success:Colors.utility.error, marginRight:3, marginLeft:3 }} />
93
+ )
94
+ }
95
+
96
+ return (
97
+ <View>
98
+ <TouchableOpacity disabled={onSelectGrade ? false : true} onPress={() => onSelectGrade ? onSelectGrade() : console.log('')}>
99
+ {view_type === 'card' ?
100
+ <FlatList horizontal data={grade_boxes} renderItem={renderGradeBoxes} keyExtractor={(item) => item.min.toString()} />
101
+ :view_type === 'book' ?
102
+ <FlatList data={[ ...grade_boxes ].reverse()} renderItem={renderGradeDashes} keyExtractor={(item) => item.min.toString()} />
103
+ :<></>}
104
+ </TouchableOpacity>
105
+ </View>
106
+ )
107
+ }
108
+
109
+
110
+ export default OrderGradeBar
@@ -31,5 +31,11 @@ const TeamEventMarketHelpers = {
31
31
  let new_order_count = market_stats.filter(s => s.side_id == b.athlete_id).reduce((a,b) => a + parseInt(b.open_order_count as string), 0)
32
32
  return new_order_count - old_order_count
33
33
  })
34
+ },
35
+ getEventStatus: (event:EventProps):'active'|'closed'|'inactive' => {
36
+ let status:'active'|'closed'|'inactive' = 'active'
37
+ if(['postponed','cancelled','canceled','complete','completed','closed','suspended'].includes(event.status)){ status = 'closed' }
38
+ if(!event.is_active){ status = 'inactive' }
39
+ return status
34
40
  }
35
41
  }
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { View, Image, FlatList, TouchableOpacity, ActivityIndicator } from 'react-native';
3
- import type { AthleteProps, BestAvailableOrderProps, CompetitionProps, EventOrderStatProps, EventProps, MarketProps, MarketSideOptionProps, OrderProps, TradeProps } from '../../../types';
3
+ import type { AthleteProps, BestAvailableOrderProps, CompetitionProps, EventOrderStatProps, EventProps, MarketProps, MarketSideOptionProps, OrderProps, SquaresCompetitionProps, TradeProps } from '../../../types';
4
4
  import { view_styles } from '../../../constants/styles';
5
5
  import { Button, Icons, LinearDiagnal, Text } from '../../../Components';
6
6
  import {TeamEventMarketHelpers} from './api';
@@ -17,6 +17,7 @@ type TeamEventMarketProps = {
17
17
  event:EventProps,
18
18
  markets:MarketProps[],
19
19
  competition?:CompetitionProps,
20
+ squares_competition?:SquaresCompetitionProps,
20
21
  latest_trades:TradeProps[],
21
22
  best_available_orders:BestAvailableOrderProps[],
22
23
  event_order_stats:EventOrderStatProps[],
@@ -24,10 +25,14 @@ type TeamEventMarketProps = {
24
25
  onView:(data:{ event_id:string, event_type:string, market_id:string, side_type?:string, side_id?:string }) => void,
25
26
  onOrder:(order:OrderProps) => void,
26
27
  onExpand?:(expanded:boolean) => void,
28
+ show_grades?:boolean,
27
29
  onCompetitionSelect:(competition_id:string) => void,
28
- onViewAdditionalMarkets: (event_id:string, event_type:string) => void
30
+ onSquaresSelect: (sq_comp_id:string) => void,
31
+ onViewAdditionalMarkets: (event_id:string, event_type:string) => void,
32
+ onTradeLongPress:(trade:TradeProps) => void,
33
+ onActivate?:(event_id:string, event_type:string) => void
29
34
  }
30
- const TeamEventMarket = ({ event, competition, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets }:TeamEventMarketProps) => {
35
+ const TeamEventMarket = ({ event, competition, squares_competition, show_grades, markets, latest_trades, best_available_orders, event_order_stats, default_price_view, onSquaresSelect, onCompetitionSelect, onExpand, onOrder, onView, onViewAdditionalMarkets, onTradeLongPress, onActivate }:TeamEventMarketProps) => {
31
36
  const [ expanded_data, setExpandedData ] = useState<{
32
37
  expanded:boolean,
33
38
  loaded:boolean,
@@ -40,6 +45,7 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
40
45
  athletes:[]
41
46
  })
42
47
  const { expanded, athletes, loaded, loading } = expanded_data;
48
+ const event_status = TeamEventMarketHelpers.getEventStatus(event);
43
49
 
44
50
  useEffect(() => {
45
51
  MarketComponentApi.setEnvironment();
@@ -66,6 +72,7 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
66
72
 
67
73
 
68
74
  const renderSides = (data:{ item:MarketSideOptionProps, index:number, market:MarketProps }) => {
75
+ const ba_order = best_available_orders.find(o => o.market_id == data.market.market_id && o.side == data.item.side)
69
76
  const side_details = MarketComponentHelpers.getTeamEventSideIds(event, data.market, data.item);
70
77
  if(!side_details){ return <></> } //Bomb out if we cant get the side details
71
78
  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);
@@ -79,6 +86,9 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
79
86
  side_option={data.item}
80
87
  market={data.market}
81
88
  trade={trade}
89
+ order={ba_order}
90
+ show_grades={show_grades}
91
+ onLongPress={onTradeLongPress}
82
92
  onPress={(order) => {
83
93
  const order_title = MarketComponentHelpers.getOrderTitleForTeamEvent(order, data.market, event);
84
94
  if(!order_title){ return alert('Unable to process order') }
@@ -112,9 +122,11 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
112
122
  event={event}
113
123
  event_type='team'
114
124
  athlete={athlete}
125
+ show_grades={show_grades}
115
126
  market={market}
116
127
  event_order_stats={[data.item]}
117
128
  latest_trades={athlete_trades}
129
+ onTradeLongPress={onTradeLongPress}
118
130
  default_price_view={default_price_view}
119
131
  best_available_orders={athlete_orders}
120
132
  onOrder={onOrder}
@@ -130,7 +142,9 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
130
142
  <EventMarket
131
143
  event={event}
132
144
  market={market}
145
+ onTradeLongPress={onTradeLongPress}
133
146
  event_order_stats={[data.item]}
147
+ show_grades={show_grades}
134
148
  latest_trades={event_trades}
135
149
  best_available_orders={event_orders}
136
150
  default_price_view={default_price_view}
@@ -170,6 +184,14 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
170
184
  return (
171
185
  <View style={{ ...view_styles.section, borderWidth:1, borderColor:Colors.shades.shade600 }}>
172
186
  <View nativeID='event_header_data' style={{ flexDirection:'row', padding:10, borderBottomWidth:1, borderBottomColor:Colors.shades.shade600 }}>
187
+ {onActivate ?
188
+ <Button
189
+ title={event_status == 'active' ? 'Refresh' : 'Activate'}
190
+ title_color={Colors.shades.white}
191
+ backgroundColor={Colors.utility.success}
192
+ onPress={() => onActivate(event.event_id, 'team')}
193
+ />
194
+ :<></>}
173
195
  <View style={{ flex:1 }}>
174
196
  {event.event_sub_title ?
175
197
  <Text size={12} color={Colors.brand.midnight} weight='semibold'>{event.event_sub_title}</Text>
@@ -219,6 +241,7 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
219
241
  </View>
220
242
  </View>
221
243
  </View>
244
+ {event_status == 'active' ?
222
245
  <View nativeID='primary_market_details' style={{ padding:5 }}>
223
246
  <View style={{ marginTop:5, marginBottom:5 }}>
224
247
  <FlatList
@@ -237,32 +260,47 @@ const TeamEventMarket = ({ event, competition, markets, latest_trades, best_avai
237
260
  keyExtractor={(item) => item.market_id.toString()}
238
261
  />
239
262
  </View>
263
+ :
264
+ <TouchableOpacity disabled={!onActivate ? true: false} style={{ flex:0.5, padding:10, justifyContent:'center', alignItems:'center' }} onPress={() => onActivate ? onActivate(event.event_id, 'team') : console.log('')}>
265
+ <Icons.MarketClosedIcon size={60} color={Colors.brand.midnight} />
266
+ </TouchableOpacity>
267
+ }
240
268
  </View>
241
- <View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
242
- <TouchableOpacity style={{ flex:1, flexDirection:'row' }} onPress={() => {
269
+ {event_status == 'active' ?
270
+ <View style={{ backgroundColor:Colors.shades.shade100, padding:10, flexDirection:'row', alignItems:'center', flexWrap:'wrap', borderBottomLeftRadius:8, borderBottomRightRadius:8 }}>
271
+ <TouchableOpacity style={{ flex:1, flexDirection:'row', minWidth:115 }} onPress={() => {
243
272
  if(!primary_markets[0]){ return }
244
273
  onView({ event_id: event.event_id, event_type:'team', market_id: primary_markets[0].market_id });
245
274
  }}>
246
275
  <View style={{ backgroundColor:Colors.shades.white, height:30, width:30, borderRadius:100, justifyContent:'center', alignItems:'center', ...view_styles.float }}>
247
276
  <Icons.LiquidityIcon color={Colors.brand.midnight} size={30}/>
248
277
  </View>
249
- <View style={{ marginLeft:10 }}>
278
+ <View style={{ marginLeft:5 }}>
250
279
  <Text theme='body_2'>Liquidity</Text>
251
280
  <Text size={12} color={Colors.brand.electric} weight='semibold'>${liquidity.toFixed()} {open_order_count} Orders</Text>
252
281
  </View>
253
282
  </TouchableOpacity>
283
+ {squares_competition ?
284
+ <TouchableOpacity
285
+ style={{ marginRight:10, flexDirection:'row', alignItems:'center', padding:10, borderRadius:22, backgroundColor:Colors.highlights.highlight100, ...view_styles.float }}
286
+ onPress={() => onSquaresSelect(squares_competition.sq_comp_id)}>
287
+ <Icons.SquaresIcon size={18} color={Colors.shades.white} />
288
+ <Text style={{ marginLeft:5 }} size={14} color={Colors.shades.white} weight='semibold'>Squares</Text>
289
+ </TouchableOpacity>
290
+ :<></>}
254
291
  {competition ?
255
292
  <TouchableOpacity
256
- style={{ marginRight:15, flexDirection:'row', alignItems:'center', padding:10, borderRadius:22, backgroundColor:Colors.highlights.highlight500, ...view_styles.float }}
293
+ style={{ marginRight:10, flexDirection:'row', alignItems:'center', padding:10, borderRadius:22, backgroundColor:Colors.highlights.highlight500, ...view_styles.float }}
257
294
  onPress={() => onCompetitionSelect(competition.competition_id)}>
258
295
  <Icons.PickEmIcon size={18} color={Colors.shades.white} />
259
- <Text style={{ marginLeft:5 }} size={14} color={Colors.shades.white} weight='semibold'>Pick 6 Available</Text>
296
+ <Text style={{ marginLeft:5 }} size={14} color={Colors.shades.white} weight='semibold'>Pick 6</Text>
260
297
  </TouchableOpacity>
261
298
  :<></>}
262
299
  <TouchableOpacity style={{ height:35, width:35, justifyContent:'center', borderRadius:100, alignItems:'center', backgroundColor:Colors.shades.white, ...view_styles.float }} onPress={() => expandedEvent()}>
263
300
  <Icons.ChevronIcon direction={expanded ? 'up' : 'down'} size={8} color={Colors.brand.midnight} />
264
301
  </TouchableOpacity>
265
302
  </View>
303
+ :<></>}
266
304
  {expanded ?
267
305
  <View>
268
306
  <View style={{ flexDirection:'row', alignItems:'center' }}>