be-components 6.1.0 → 6.1.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.
Files changed (228) hide show
  1. package/lib/commonjs/BetMatch/api/index.js +67 -1
  2. package/lib/commonjs/BetMatch/api/index.js.map +1 -1
  3. package/lib/commonjs/BetMatch/components/BetMatchCard.js +100 -46
  4. package/lib/commonjs/BetMatch/components/BetMatchCard.js.map +1 -1
  5. package/lib/commonjs/BetMatch/components/ManageFilter.js +1342 -0
  6. package/lib/commonjs/BetMatch/components/ManageFilter.js.map +1 -0
  7. package/lib/commonjs/BetMatch/index.js +204 -64
  8. package/lib/commonjs/BetMatch/index.js.map +1 -1
  9. package/lib/commonjs/Components/AthleteLozenge.js +81 -0
  10. package/lib/commonjs/Components/AthleteLozenge.js.map +1 -0
  11. package/lib/commonjs/Components/AutoScrollFlatList.js +50 -7
  12. package/lib/commonjs/Components/AutoScrollFlatList.js.map +1 -1
  13. package/lib/commonjs/Components/Icons.js +2 -0
  14. package/lib/commonjs/Components/Icons.js.map +1 -1
  15. package/lib/commonjs/Components/Jerseys.js +30 -11
  16. package/lib/commonjs/Components/Jerseys.js.map +1 -1
  17. package/lib/commonjs/Components/LeagueLozenge.js +59 -0
  18. package/lib/commonjs/Components/LeagueLozenge.js.map +1 -0
  19. package/lib/commonjs/Components/MarketLozenge.js +48 -0
  20. package/lib/commonjs/Components/MarketLozenge.js.map +1 -0
  21. package/lib/commonjs/Components/PlayerLozenge.js +61 -0
  22. package/lib/commonjs/Components/PlayerLozenge.js.map +1 -0
  23. package/lib/commonjs/Components/PremiumIcons.js +366 -0
  24. package/lib/commonjs/Components/PremiumIcons.js.map +1 -0
  25. package/lib/commonjs/Components/TeamLozenge.js +70 -0
  26. package/lib/commonjs/Components/TeamLozenge.js.map +1 -0
  27. package/lib/commonjs/Components/index.js +35 -0
  28. package/lib/commonjs/Components/index.js.map +1 -1
  29. package/lib/commonjs/FlashMarket/index.js +27 -0
  30. package/lib/commonjs/FlashMarket/index.js.map +1 -1
  31. package/lib/commonjs/Premium/api/index.js +50 -0
  32. package/lib/commonjs/Premium/api/index.js.map +1 -0
  33. package/lib/commonjs/Premium/components/ALaCartePremium.js +314 -0
  34. package/lib/commonjs/Premium/components/ALaCartePremium.js.map +1 -0
  35. package/lib/commonjs/Premium/index.js +12 -0
  36. package/lib/commonjs/Premium/index.js.map +1 -0
  37. package/lib/commonjs/ProfileManager/Components/VouchCard.js +3 -3
  38. package/lib/commonjs/ProfileManager/Components/VouchCard.js.map +1 -1
  39. package/lib/commonjs/ProfileManager/api/index.js +10 -1
  40. package/lib/commonjs/ProfileManager/api/index.js.map +1 -1
  41. package/lib/commonjs/ProfileManager/index.js +2 -2
  42. package/lib/commonjs/ProfileManager/index.js.map +1 -1
  43. package/lib/commonjs/SocialComponents/api/index.js +12 -0
  44. package/lib/commonjs/SocialComponents/api/index.js.map +1 -1
  45. package/lib/commonjs/index.js +14 -0
  46. package/lib/commonjs/index.js.map +1 -1
  47. package/lib/module/BetMatch/api/index.js +66 -0
  48. package/lib/module/BetMatch/api/index.js.map +1 -1
  49. package/lib/module/BetMatch/components/BetMatchCard.js +102 -48
  50. package/lib/module/BetMatch/components/BetMatchCard.js.map +1 -1
  51. package/lib/module/BetMatch/components/ManageFilter.js +1333 -0
  52. package/lib/module/BetMatch/components/ManageFilter.js.map +1 -0
  53. package/lib/module/BetMatch/index.js +206 -66
  54. package/lib/module/BetMatch/index.js.map +1 -1
  55. package/lib/module/Components/AthleteLozenge.js +73 -0
  56. package/lib/module/Components/AthleteLozenge.js.map +1 -0
  57. package/lib/module/Components/AutoScrollFlatList.js +51 -8
  58. package/lib/module/Components/AutoScrollFlatList.js.map +1 -1
  59. package/lib/module/Components/Icons.js +3 -0
  60. package/lib/module/Components/Icons.js.map +1 -1
  61. package/lib/module/Components/Jerseys.js +30 -11
  62. package/lib/module/Components/Jerseys.js.map +1 -1
  63. package/lib/module/Components/LeagueLozenge.js +51 -0
  64. package/lib/module/Components/LeagueLozenge.js.map +1 -0
  65. package/lib/module/Components/MarketLozenge.js +40 -0
  66. package/lib/module/Components/MarketLozenge.js.map +1 -0
  67. package/lib/module/Components/PlayerLozenge.js +53 -0
  68. package/lib/module/Components/PlayerLozenge.js.map +1 -0
  69. package/lib/module/Components/PremiumIcons.js +359 -0
  70. package/lib/module/Components/PremiumIcons.js.map +1 -0
  71. package/lib/module/Components/TeamLozenge.js +62 -0
  72. package/lib/module/Components/TeamLozenge.js.map +1 -0
  73. package/lib/module/Components/index.js +6 -1
  74. package/lib/module/Components/index.js.map +1 -1
  75. package/lib/module/FlashMarket/index.js +27 -0
  76. package/lib/module/FlashMarket/index.js.map +1 -1
  77. package/lib/module/Premium/api/index.js +43 -0
  78. package/lib/module/Premium/api/index.js.map +1 -0
  79. package/lib/module/Premium/components/ALaCartePremium.js +305 -0
  80. package/lib/module/Premium/components/ALaCartePremium.js.map +1 -0
  81. package/lib/module/Premium/index.js +5 -0
  82. package/lib/module/Premium/index.js.map +1 -0
  83. package/lib/module/ProfileManager/Components/VouchCard.js +3 -3
  84. package/lib/module/ProfileManager/Components/VouchCard.js.map +1 -1
  85. package/lib/module/ProfileManager/api/index.js +10 -1
  86. package/lib/module/ProfileManager/api/index.js.map +1 -1
  87. package/lib/module/ProfileManager/index.js +2 -2
  88. package/lib/module/ProfileManager/index.js.map +1 -1
  89. package/lib/module/SocialComponents/api/index.js +12 -0
  90. package/lib/module/SocialComponents/api/index.js.map +1 -1
  91. package/lib/module/index.js +3 -1
  92. package/lib/module/index.js.map +1 -1
  93. package/lib/typescript/lib/commonjs/BetMatch/api/index.d.ts +7 -0
  94. package/lib/typescript/lib/commonjs/BetMatch/api/index.d.ts.map +1 -1
  95. package/lib/typescript/lib/commonjs/BetMatch/components/BetMatchCard.d.ts +10 -2
  96. package/lib/typescript/lib/commonjs/BetMatch/components/BetMatchCard.d.ts.map +1 -1
  97. package/lib/typescript/lib/commonjs/BetMatch/components/ManageFilter.d.ts +10 -0
  98. package/lib/typescript/lib/commonjs/BetMatch/components/ManageFilter.d.ts.map +1 -0
  99. package/lib/typescript/lib/commonjs/BetMatch/index.d.ts +12 -1
  100. package/lib/typescript/lib/commonjs/BetMatch/index.d.ts.map +1 -1
  101. package/lib/typescript/lib/commonjs/Components/AthleteLozenge.d.ts +11 -0
  102. package/lib/typescript/lib/commonjs/Components/AthleteLozenge.d.ts.map +1 -0
  103. package/lib/typescript/lib/commonjs/Components/AutoScrollFlatList.d.ts.map +1 -1
  104. package/lib/typescript/lib/commonjs/Components/Jerseys.d.ts.map +1 -1
  105. package/lib/typescript/lib/commonjs/Components/LeagueLozenge.d.ts +10 -0
  106. package/lib/typescript/lib/commonjs/Components/LeagueLozenge.d.ts.map +1 -0
  107. package/lib/typescript/lib/commonjs/Components/MarketLozenge.d.ts +10 -0
  108. package/lib/typescript/lib/commonjs/Components/MarketLozenge.d.ts.map +1 -0
  109. package/lib/typescript/lib/commonjs/Components/PlayerLozenge.d.ts +9 -0
  110. package/lib/typescript/lib/commonjs/Components/PlayerLozenge.d.ts.map +1 -0
  111. package/lib/typescript/lib/commonjs/Components/PremiumIcons.d.ts +85 -0
  112. package/lib/typescript/lib/commonjs/Components/PremiumIcons.d.ts.map +1 -0
  113. package/lib/typescript/lib/commonjs/Components/TeamLozenge.d.ts +10 -0
  114. package/lib/typescript/lib/commonjs/Components/TeamLozenge.d.ts.map +1 -0
  115. package/lib/typescript/lib/commonjs/Components/index.d.ts +5 -0
  116. package/lib/typescript/lib/commonjs/FlashMarket/index.d.ts.map +1 -1
  117. package/lib/typescript/lib/commonjs/Premium/api/index.d.ts +18 -0
  118. package/lib/typescript/lib/commonjs/Premium/api/index.d.ts.map +1 -0
  119. package/lib/typescript/lib/commonjs/Premium/components/ALaCartePremium.d.ts +12 -0
  120. package/lib/typescript/lib/commonjs/Premium/components/ALaCartePremium.d.ts.map +1 -0
  121. package/lib/typescript/lib/commonjs/Premium/index.d.ts +6 -0
  122. package/lib/typescript/lib/commonjs/Premium/index.d.ts.map +1 -0
  123. package/lib/typescript/lib/commonjs/ProfileManager/api/index.d.ts +1 -0
  124. package/lib/typescript/lib/commonjs/ProfileManager/api/index.d.ts.map +1 -1
  125. package/lib/typescript/lib/commonjs/SocialComponents/api/index.d.ts +6 -6
  126. package/lib/typescript/lib/commonjs/SocialComponents/api/index.d.ts.map +1 -1
  127. package/lib/typescript/lib/commonjs/index.d.ts +2 -0
  128. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -1
  129. package/lib/typescript/lib/module/BetMatch/api/index.d.ts +7 -0
  130. package/lib/typescript/lib/module/BetMatch/api/index.d.ts.map +1 -1
  131. package/lib/typescript/lib/module/BetMatch/components/BetMatchCard.d.ts +10 -2
  132. package/lib/typescript/lib/module/BetMatch/components/BetMatchCard.d.ts.map +1 -1
  133. package/lib/typescript/lib/module/BetMatch/components/ManageFilter.d.ts +10 -0
  134. package/lib/typescript/lib/module/BetMatch/components/ManageFilter.d.ts.map +1 -0
  135. package/lib/typescript/lib/module/BetMatch/index.d.ts +12 -1
  136. package/lib/typescript/lib/module/BetMatch/index.d.ts.map +1 -1
  137. package/lib/typescript/lib/module/Components/AthleteLozenge.d.ts +11 -0
  138. package/lib/typescript/lib/module/Components/AthleteLozenge.d.ts.map +1 -0
  139. package/lib/typescript/lib/module/Components/AutoScrollFlatList.d.ts.map +1 -1
  140. package/lib/typescript/lib/module/Components/Jerseys.d.ts.map +1 -1
  141. package/lib/typescript/lib/module/Components/LeagueLozenge.d.ts +10 -0
  142. package/lib/typescript/lib/module/Components/LeagueLozenge.d.ts.map +1 -0
  143. package/lib/typescript/lib/module/Components/MarketLozenge.d.ts +10 -0
  144. package/lib/typescript/lib/module/Components/MarketLozenge.d.ts.map +1 -0
  145. package/lib/typescript/lib/module/Components/PlayerLozenge.d.ts +9 -0
  146. package/lib/typescript/lib/module/Components/PlayerLozenge.d.ts.map +1 -0
  147. package/lib/typescript/lib/module/Components/PremiumIcons.d.ts +86 -0
  148. package/lib/typescript/lib/module/Components/PremiumIcons.d.ts.map +1 -0
  149. package/lib/typescript/lib/module/Components/TeamLozenge.d.ts +10 -0
  150. package/lib/typescript/lib/module/Components/TeamLozenge.d.ts.map +1 -0
  151. package/lib/typescript/lib/module/Components/index.d.ts +6 -1
  152. package/lib/typescript/lib/module/Components/index.d.ts.map +1 -1
  153. package/lib/typescript/lib/module/FlashMarket/index.d.ts.map +1 -1
  154. package/lib/typescript/lib/module/Premium/api/index.d.ts +17 -0
  155. package/lib/typescript/lib/module/Premium/api/index.d.ts.map +1 -0
  156. package/lib/typescript/lib/module/Premium/components/ALaCartePremium.d.ts +17 -0
  157. package/lib/typescript/lib/module/Premium/components/ALaCartePremium.d.ts.map +1 -0
  158. package/lib/typescript/lib/module/Premium/index.d.ts +6 -0
  159. package/lib/typescript/lib/module/Premium/index.d.ts.map +1 -0
  160. package/lib/typescript/lib/module/ProfileManager/api/index.d.ts +1 -0
  161. package/lib/typescript/lib/module/ProfileManager/api/index.d.ts.map +1 -1
  162. package/lib/typescript/lib/module/SocialComponents/api/index.d.ts +6 -6
  163. package/lib/typescript/lib/module/SocialComponents/api/index.d.ts.map +1 -1
  164. package/lib/typescript/lib/module/index.d.ts +3 -1
  165. package/lib/typescript/lib/module/index.d.ts.map +1 -1
  166. package/lib/typescript/src/BetMatch/api/index.d.ts +8 -1
  167. package/lib/typescript/src/BetMatch/api/index.d.ts.map +1 -1
  168. package/lib/typescript/src/BetMatch/components/BetMatchCard.d.ts +12 -4
  169. package/lib/typescript/src/BetMatch/components/BetMatchCard.d.ts.map +1 -1
  170. package/lib/typescript/src/BetMatch/components/ManageFilter.d.ts +12 -0
  171. package/lib/typescript/src/BetMatch/components/ManageFilter.d.ts.map +1 -0
  172. package/lib/typescript/src/BetMatch/index.d.ts +23 -2
  173. package/lib/typescript/src/BetMatch/index.d.ts.map +1 -1
  174. package/lib/typescript/src/Components/AthleteLozenge.d.ts +13 -0
  175. package/lib/typescript/src/Components/AthleteLozenge.d.ts.map +1 -0
  176. package/lib/typescript/src/Components/AutoScrollFlatList.d.ts.map +1 -1
  177. package/lib/typescript/src/Components/Icons.d.ts.map +1 -1
  178. package/lib/typescript/src/Components/Jerseys.d.ts.map +1 -1
  179. package/lib/typescript/src/Components/LeagueLozenge.d.ts +13 -0
  180. package/lib/typescript/src/Components/LeagueLozenge.d.ts.map +1 -0
  181. package/lib/typescript/src/Components/MarketLozenge.d.ts +13 -0
  182. package/lib/typescript/src/Components/MarketLozenge.d.ts.map +1 -0
  183. package/lib/typescript/src/Components/PlayerLozenge.d.ts +11 -0
  184. package/lib/typescript/src/Components/PlayerLozenge.d.ts.map +1 -0
  185. package/lib/typescript/src/Components/PremiumIcons.d.ts +27 -0
  186. package/lib/typescript/src/Components/PremiumIcons.d.ts.map +1 -0
  187. package/lib/typescript/src/Components/TeamLozenge.d.ts +12 -0
  188. package/lib/typescript/src/Components/TeamLozenge.d.ts.map +1 -0
  189. package/lib/typescript/src/Components/index.d.ts +6 -1
  190. package/lib/typescript/src/Components/index.d.ts.map +1 -1
  191. package/lib/typescript/src/FlashMarket/index.d.ts.map +1 -1
  192. package/lib/typescript/src/Premium/api/index.d.ts +12 -0
  193. package/lib/typescript/src/Premium/api/index.d.ts.map +1 -0
  194. package/lib/typescript/src/Premium/components/ALaCartePremium.d.ts +16 -0
  195. package/lib/typescript/src/Premium/components/ALaCartePremium.d.ts.map +1 -0
  196. package/lib/typescript/src/Premium/index.d.ts +13 -0
  197. package/lib/typescript/src/Premium/index.d.ts.map +1 -0
  198. package/lib/typescript/src/ProfileManager/api/index.d.ts +6 -2
  199. package/lib/typescript/src/ProfileManager/api/index.d.ts.map +1 -1
  200. package/lib/typescript/src/SocialComponents/api/index.d.ts +1 -1
  201. package/lib/typescript/src/SocialComponents/api/index.d.ts.map +1 -1
  202. package/lib/typescript/src/index.d.ts +3 -1
  203. package/lib/typescript/src/index.d.ts.map +1 -1
  204. package/package.json +1 -1
  205. package/src/BetMatch/api/index.ts +54 -2
  206. package/src/BetMatch/components/BetMatchCard.tsx +82 -43
  207. package/src/BetMatch/components/ManageFilter.tsx +830 -0
  208. package/src/BetMatch/index.tsx +142 -45
  209. package/src/Components/AthleteLozenge.tsx +52 -0
  210. package/src/Components/AutoScrollFlatList.tsx +50 -15
  211. package/src/Components/Icons.tsx +5 -0
  212. package/src/Components/Jerseys.tsx +19 -10
  213. package/src/Components/LeagueLozenge.tsx +36 -0
  214. package/src/Components/MarketLozenge.tsx +29 -0
  215. package/src/Components/PlayerLozenge.tsx +37 -0
  216. package/src/Components/PremiumIcons.tsx +201 -0
  217. package/src/Components/TeamLozenge.tsx +44 -0
  218. package/src/Components/index.tsx +10 -0
  219. package/src/FlashMarket/index.tsx +15 -0
  220. package/src/Premium/api/index.ts +32 -0
  221. package/src/Premium/components/ALaCartePremium.tsx +145 -0
  222. package/src/Premium/index.tsx +5 -0
  223. package/src/ProfileManager/Components/VouchCard.tsx +3 -3
  224. package/src/ProfileManager/api/index.ts +12 -3
  225. package/src/ProfileManager/index.tsx +2 -2
  226. package/src/SocialComponents/api/index.ts +9 -1
  227. package/src/index.tsx +4 -0
  228. package/src/types.d.ts +37 -1
@@ -0,0 +1,1333 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Button, Text, TextInput, View } from "../../Components/Themed";
3
+ import { BetMatchApi, BetMatchHelpers } from '../api';
4
+ import { ActivityIndicator, FlatList } from 'react-native';
5
+ import { AthleteLozenge, Checkbox, Icons, LeagueLozenge, MarketLozenge, PlayerLozenge, Toggle } from '../../Components';
6
+ import { useColors } from '../../constants/useColors';
7
+ import { MarketComponentApi } from '../../MarketComponents/api';
8
+ import SearchBox from '../../Components/SearchBox';
9
+ import TeamLozenge from '../../Components/TeamLozenge';
10
+ import Pagination from '../../Components/Pagination';
11
+ const grade_boxes = [{
12
+ min: 0,
13
+ max: 79,
14
+ success_color: 'rgba(125,205,133,0.2)',
15
+ fail_color: 'rgba(213,87, 59, 0.2)'
16
+ }, {
17
+ min: 80,
18
+ max: 94,
19
+ success_color: 'rgba(125,205,133,0.4)',
20
+ fail_color: 'rgba(213,87, 59, 0.4)'
21
+ }, {
22
+ min: 95,
23
+ max: 97.5,
24
+ success_color: 'rgba(125,205,133,0.6)',
25
+ fail_color: 'rgba(213,87, 59, 0.6)'
26
+ }, {
27
+ min: 97.6,
28
+ max: 99.99,
29
+ success_color: 'rgba(125,205,133,0.8)',
30
+ fail_color: 'rgba(213,87, 59, 0)'
31
+ }, {
32
+ min: 100,
33
+ max: 200,
34
+ success_color: 'rgba(125,205,133,1)',
35
+ fail_color: 'rgba(213,87, 59, 0)'
36
+ }];
37
+ const books = ['DraftKings', 'FanDuel', 'MGM', 'PointsBet'];
38
+ const sections = ['header', 'name', 'toggle', 'status', 'leagues', 'market_types', 'markets', 'athletes', 'teams', 'players', 'order_grades', 'external_sources'];
39
+ const ManageFilter = ({
40
+ me,
41
+ player_filter_id,
42
+ onFocusPosition,
43
+ onRunFilter,
44
+ onUpdateFilter
45
+ }) => {
46
+ const Colors = useColors();
47
+ const [player_search, setPlayerSearch] = useState({
48
+ loading: false,
49
+ players: [],
50
+ offset: 0,
51
+ value: ''
52
+ });
53
+ const [confirm_delete, setConfirmDelete] = useState(false);
54
+ const [athlete_search, setAthleteSearch] = useState({
55
+ loading: false,
56
+ offset: 0,
57
+ value: '',
58
+ athletes: []
59
+ });
60
+ const [filter_athletes, setFilterAthletes] = useState([]);
61
+ const [filter_teams, setFilterTeams] = useState([]);
62
+ const [filter_players, setFilterPlayers] = useState([]);
63
+ const [team_search, setTeamSearch] = useState({
64
+ loading: false,
65
+ value: '',
66
+ offset: 0,
67
+ teams: []
68
+ });
69
+ const [action_loading, setActionLoading] = useState(false);
70
+ const [static_data, setStaticData] = useState({
71
+ static_loading: false,
72
+ loaded: false,
73
+ leagues: [],
74
+ markets: []
75
+ });
76
+ const {
77
+ static_loading,
78
+ loaded,
79
+ leagues,
80
+ markets
81
+ } = static_data;
82
+ const [filter_data, setFilterData] = useState({
83
+ loading: false,
84
+ active_toggle: 'markets'
85
+ });
86
+ const {
87
+ loading,
88
+ player_filter,
89
+ draft_filter,
90
+ active_toggle
91
+ } = filter_data;
92
+ let filtered_markets = BetMatchHelpers.filterMarkets(markets, leagues, draft_filter);
93
+ const premium_allowed = me.type == 'premium' ? true : false;
94
+ useEffect(() => {
95
+ if (!loaded) {
96
+ return;
97
+ }
98
+ loadData(player_filter_id);
99
+ }, [player_filter_id, loaded]);
100
+ useEffect(() => {
101
+ MarketComponentApi.setEnvironment();
102
+ BetMatchApi.setEnvironment();
103
+ loadStaticData();
104
+ }, []);
105
+ const loadStaticData = async () => {
106
+ setStaticData({
107
+ ...static_data,
108
+ static_loading: false
109
+ });
110
+ const lgs = await MarketComponentApi.getLeagues();
111
+ const mks = await MarketComponentApi.getMarkets();
112
+ setStaticData({
113
+ ...static_data,
114
+ leagues: lgs,
115
+ markets: mks,
116
+ loaded: true,
117
+ static_loading: false
118
+ });
119
+ };
120
+ const loadData = async id => {
121
+ setFilterData({
122
+ ...filter_data,
123
+ loading: true
124
+ });
125
+ const pf = await BetMatchApi.getPlayerFilterById(id);
126
+ if (!pf) {
127
+ return alert('Unable to get filter details. It may have been deleted');
128
+ }
129
+ let athlete_ids = pf?.filter.athlete_ids ?? [];
130
+ let team_ids = pf?.filter.team_ids ?? [];
131
+ let player_ids = pf?.filter.player_ids ?? [];
132
+ let f_players = await BetMatchApi.getPlayersByPlayerIds(player_ids);
133
+ let f_teams = await BetMatchApi.getTeamsByIds(team_ids);
134
+ let f_athletes = await BetMatchApi.getAthletesByIds(athlete_ids);
135
+ setFilterAthletes(f_athletes);
136
+ setFilterTeams(f_teams);
137
+ setFilterPlayers(f_players);
138
+ setFilterData({
139
+ ...filter_data,
140
+ loading: false,
141
+ player_filter: pf,
142
+ draft_filter: pf
143
+ });
144
+ };
145
+ const isValid = () => {
146
+ let errors = [];
147
+ if (!draft_filter?.filter) {
148
+ return ['Filter is empty'];
149
+ }
150
+ if (!draft_filter.name || player_filter?.name == '') {
151
+ errors.push('Must add name to filter');
152
+ }
153
+ if (draft_filter.filter.league_ids.length < 1) {
154
+ errors.push('Need to select 1 league');
155
+ }
156
+ if (!draft_filter.filter.market_types) {
157
+ errors.push('Must select market type');
158
+ }
159
+ if (draft_filter.filter.league_ids.length > 1) {
160
+ errors.push('Filter can only include up to 1 leagues');
161
+ }
162
+ if (draft_filter.filter.market_ids.length == 0) {
163
+ errors.push('Need to selected at least one market');
164
+ }
165
+ if (draft_filter.filter.minimum_grade > 0 && me?.type != 'premium') {
166
+ errors.push('Only premium users are allowed to create filters with minimum grades');
167
+ }
168
+ if (draft_filter.filter.external_book && draft_filter.filter.external_book != '' && me?.type != 'premium') {
169
+ errors.push('Only premium users are allowed to compare to an external book');
170
+ }
171
+ return errors;
172
+ };
173
+ const errors = isValid();
174
+ const minimumGradeText = minimum_grade => {
175
+ let text = 'Show me everything';
176
+ if (minimum_grade >= 80) {
177
+ text = 'I just want to get this fulfilled as long as its reasonable';
178
+ }
179
+ if (minimum_grade >= 95) {
180
+ text = 'Around the consensus price but may not be better';
181
+ }
182
+ if (minimum_grade >= 97.5) {
183
+ text = 'Better than the Consensus price with vig';
184
+ }
185
+ if (minimum_grade >= 100) {
186
+ text = 'MAX - Better than the Consensus price with vig removed';
187
+ }
188
+ return text;
189
+ };
190
+ const handleUpdate = async draft_player_filter => {
191
+ setActionLoading(true);
192
+ const pf = await BetMatchApi.updatePlayerFilter(draft_player_filter);
193
+ if (!pf) {
194
+ setActionLoading(false);
195
+ return alert('Unable to update');
196
+ }
197
+ setFilterData({
198
+ ...filter_data,
199
+ player_filter: pf,
200
+ draft_filter: pf
201
+ });
202
+ setActionLoading(false);
203
+ onUpdateFilter(pf);
204
+ };
205
+ const handleLeagueSelect = league => {
206
+ if (!draft_filter) {
207
+ return;
208
+ }
209
+ let existing_leagues = draft_filter.filter.league_ids;
210
+ let already_selected = existing_leagues.find(l => l == league.league_id);
211
+ if (already_selected) {
212
+ existing_leagues = existing_leagues.filter(l => l != league.league_id);
213
+ } else {
214
+ if (existing_leagues.length > 0) {
215
+ return alert('Only 1 league can be selected');
216
+ }
217
+ existing_leagues = existing_leagues.concat(league.league_id);
218
+ }
219
+ let new_filter = {
220
+ ...draft_filter,
221
+ filter: {
222
+ ...draft_filter.filter,
223
+ league_ids: existing_leagues
224
+ }
225
+ };
226
+ handleUpdate(new_filter);
227
+ };
228
+ const handleMarketSelect = market => {
229
+ if (!draft_filter) {
230
+ return;
231
+ }
232
+ let existing_markets = draft_filter.filter.market_ids;
233
+ let already_selected = existing_markets.find(l => l == market.market_id);
234
+ if (already_selected) {
235
+ existing_markets = existing_markets.filter(l => l != market.market_id);
236
+ } else {
237
+ existing_markets = existing_markets.concat(market.market_id);
238
+ }
239
+ let new_filter = {
240
+ ...draft_filter,
241
+ filter: {
242
+ ...draft_filter.filter,
243
+ market_ids: existing_markets
244
+ }
245
+ };
246
+ handleUpdate(new_filter);
247
+ };
248
+ const handlePlayerSelect = player => {
249
+ if (!draft_filter) {
250
+ return;
251
+ }
252
+ let existing_players = draft_filter.filter.player_ids;
253
+ let already_selected = existing_players.find(l => l == player.player_id);
254
+ if (already_selected) {
255
+ existing_players = existing_players.filter(l => l != player.player_id);
256
+ setFilterPlayers(filter_players.filter(t => t.player_id != player.player_id));
257
+ } else {
258
+ existing_players = existing_players.concat(player.player_id);
259
+ setFilterPlayers(filter_players.concat(player));
260
+ }
261
+ let new_filter = {
262
+ ...draft_filter,
263
+ filter: {
264
+ ...draft_filter.filter,
265
+ player_ids: existing_players
266
+ }
267
+ };
268
+ handleUpdate(new_filter);
269
+ };
270
+ const handleAthleteSelect = athlete => {
271
+ if (!draft_filter) {
272
+ return;
273
+ }
274
+ let existing_athletes = draft_filter.filter.athlete_ids;
275
+ let already_selected = existing_athletes.find(l => l == athlete.athlete_id);
276
+ if (already_selected) {
277
+ existing_athletes = existing_athletes.filter(l => l != athlete.athlete_id);
278
+ setFilterAthletes(filter_athletes.filter(t => t.athlete_id != athlete.athlete_id));
279
+ } else {
280
+ existing_athletes = existing_athletes.concat(athlete.athlete_id);
281
+ setFilterAthletes(filter_athletes.concat(athlete));
282
+ }
283
+ let new_filter = {
284
+ ...draft_filter,
285
+ filter: {
286
+ ...draft_filter.filter,
287
+ athlete_ids: existing_athletes
288
+ }
289
+ };
290
+ handleUpdate(new_filter);
291
+ };
292
+ const handleTeamSelect = team => {
293
+ if (!draft_filter) {
294
+ return;
295
+ }
296
+ let existing_teams = draft_filter.filter.team_ids;
297
+ let already_selected = existing_teams.find(l => l == team.team_id);
298
+ if (already_selected) {
299
+ existing_teams = existing_teams.filter(l => l != team.team_id);
300
+ setFilterTeams(filter_teams.filter(t => t.team_id != team.team_id));
301
+ } else {
302
+ existing_teams = existing_teams.concat(team.team_id);
303
+ setFilterTeams(filter_teams.concat(team));
304
+ }
305
+ let new_filter = {
306
+ ...draft_filter,
307
+ filter: {
308
+ ...draft_filter.filter,
309
+ team_ids: existing_teams
310
+ }
311
+ };
312
+ handleUpdate(new_filter);
313
+ };
314
+ const handleSearchPlayers = async page => {
315
+ setPlayerSearch({
316
+ ...player_search,
317
+ loading: true
318
+ });
319
+ const pls = await BetMatchApi.searchPlayersByValue(player_search.value, page);
320
+ setPlayerSearch({
321
+ ...player_search,
322
+ loading: false,
323
+ players: pls,
324
+ offset: page
325
+ });
326
+ };
327
+ const handleSearchAthletes = async page => {
328
+ setAthleteSearch({
329
+ ...athlete_search,
330
+ loading: true
331
+ });
332
+ const aths = await BetMatchApi.searchAthletes(athlete_search.value, page, draft_filter?.filter?.league_ids);
333
+ setAthleteSearch({
334
+ ...athlete_search,
335
+ loading: false,
336
+ athletes: aths,
337
+ offset: page
338
+ });
339
+ };
340
+ const handleSearchTeams = async page => {
341
+ setTeamSearch({
342
+ ...team_search,
343
+ loading: true
344
+ });
345
+ const tms = await BetMatchApi.searchTeams(team_search.value, page, draft_filter?.filter?.league_ids);
346
+ setTeamSearch({
347
+ ...athlete_search,
348
+ loading: false,
349
+ teams: tms,
350
+ offset: page
351
+ });
352
+ };
353
+ const renderSections = data => {
354
+ switch (data.item) {
355
+ case 'name':
356
+ if (!draft_filter) {
357
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
358
+ }
359
+ return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
360
+ transparent: true,
361
+ style: {
362
+ padding: 10
363
+ }
364
+ }, /*#__PURE__*/React.createElement(Text, {
365
+ theme: "h1"
366
+ }, "Name"), /*#__PURE__*/React.createElement(Text, {
367
+ theme: "description",
368
+ style: {
369
+ marginTop: 3
370
+ }
371
+ }, "Give this filter a memorable name based on the criteria set (i.e., NFL QB Padding Tds, etc)")), /*#__PURE__*/React.createElement(TextInput, {
372
+ style: {
373
+ margin: 10
374
+ },
375
+ onFocusPosition: onFocusPosition,
376
+ value: draft_filter.name,
377
+ placeholder: "Enter name here ...",
378
+ onChangeText: text => setFilterData({
379
+ ...filter_data,
380
+ draft_filter: {
381
+ ...draft_filter,
382
+ name: text
383
+ }
384
+ })
385
+ }));
386
+ case 'toggle':
387
+ return /*#__PURE__*/React.createElement(View, {
388
+ transparent: true,
389
+ style: {
390
+ padding: 10
391
+ }
392
+ }, /*#__PURE__*/React.createElement(Toggle, {
393
+ options: [{
394
+ key: 'markets',
395
+ label: 'Markets'
396
+ }, {
397
+ key: 'people',
398
+ label: 'People'
399
+ }, {
400
+ key: 'premium',
401
+ label: 'Premium'
402
+ }],
403
+ onSelectOption: option => setFilterData({
404
+ ...filter_data,
405
+ active_toggle: option
406
+ }),
407
+ selected_option: active_toggle
408
+ }));
409
+ case 'status':
410
+ if (!draft_filter) {
411
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
412
+ }
413
+ if (active_toggle != 'markets') {
414
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
415
+ }
416
+ return /*#__PURE__*/React.createElement(View, {
417
+ nativeID: "filter_order_status",
418
+ style: {
419
+ marginTop: 10
420
+ }
421
+ }, /*#__PURE__*/React.createElement(View, {
422
+ type: "header",
423
+ style: {
424
+ padding: 10
425
+ }
426
+ }, /*#__PURE__*/React.createElement(Text, {
427
+ theme: "h1"
428
+ }, "Event Status"), /*#__PURE__*/React.createElement(Text, {
429
+ style: {
430
+ marginTop: 3
431
+ },
432
+ theme: "description"
433
+ }, "Set to show all orders or filter to only orders related to an event that is currently inprogress")), /*#__PURE__*/React.createElement(View, {
434
+ style: {
435
+ margin: 10,
436
+ padding: 10,
437
+ borderWidth: 1,
438
+ borderColor: Colors.borders.light,
439
+ borderRadius: 8
440
+ }
441
+ }, /*#__PURE__*/React.createElement(Button, {
442
+ transparent: true,
443
+ style: {
444
+ borderRadius: 0,
445
+ flexDirection: 'row',
446
+ alignItems: 'center',
447
+ padding: 10,
448
+ borderBottomWidth: 1,
449
+ borderColor: Colors.borders.light
450
+ },
451
+ onPress: () => {
452
+ let new_filter = {
453
+ ...draft_filter
454
+ };
455
+ new_filter.filter.live_only = false;
456
+ handleUpdate(new_filter);
457
+ }
458
+ }, /*#__PURE__*/React.createElement(Checkbox, {
459
+ style: {
460
+ borderRadius: 100
461
+ },
462
+ fill_style: {
463
+ borderRadius: 100
464
+ },
465
+ color: Colors.text.highlight,
466
+ checked: draft_filter.filter.live_only ? false : true,
467
+ onSelect: () => console.log(''),
468
+ disabled: true
469
+ }), /*#__PURE__*/React.createElement(Text, {
470
+ style: {
471
+ marginLeft: 14
472
+ },
473
+ size: 14,
474
+ theme: "h2"
475
+ }, "Any Event Status (Scheduled and Live)")), /*#__PURE__*/React.createElement(Button, {
476
+ transparent: true,
477
+ style: {
478
+ borderRadius: 0,
479
+ flexDirection: 'row',
480
+ alignItems: 'center',
481
+ padding: 10,
482
+ borderBottomWidth: 1,
483
+ borderColor: Colors.borders.light
484
+ },
485
+ onPress: () => {
486
+ let new_filter = {
487
+ ...draft_filter
488
+ };
489
+ new_filter.filter.live_only = true;
490
+ handleUpdate(new_filter);
491
+ }
492
+ }, /*#__PURE__*/React.createElement(Checkbox, {
493
+ style: {
494
+ borderRadius: 100
495
+ },
496
+ fill_style: {
497
+ borderRadius: 100
498
+ },
499
+ color: Colors.text.highlight,
500
+ disabled: true,
501
+ checked: draft_filter.filter.live_only ? true : false,
502
+ onSelect: () => console.log('')
503
+ }), /*#__PURE__*/React.createElement(Text, {
504
+ style: {
505
+ marginLeft: 14
506
+ },
507
+ size: 14,
508
+ theme: "h2"
509
+ }, "Live Only - Events currently in progress"))));
510
+ case 'leagues':
511
+ if (!draft_filter) {
512
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
513
+ }
514
+ if (active_toggle != 'markets') {
515
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
516
+ }
517
+ return /*#__PURE__*/React.createElement(View, {
518
+ nativeID: "filter_leagues",
519
+ style: {
520
+ marginTop: 10
521
+ }
522
+ }, /*#__PURE__*/React.createElement(View, {
523
+ type: "header",
524
+ style: {
525
+ padding: 10
526
+ }
527
+ }, /*#__PURE__*/React.createElement(Text, {
528
+ theme: "h1"
529
+ }, "Leagues"), /*#__PURE__*/React.createElement(Text, {
530
+ style: {
531
+ marginTop: 4
532
+ },
533
+ theme: "description"
534
+ }, "Only show orders related to specific leagues (must select 1)")), /*#__PURE__*/React.createElement(View, {
535
+ style: {
536
+ flexDirection: 'row',
537
+ flexWrap: 'wrap',
538
+ margin: 10,
539
+ padding: 10,
540
+ borderWidth: 1,
541
+ borderColor: Colors.borders.light,
542
+ borderRadius: 8
543
+ }
544
+ }, leagues.sort((a, b) => a.status.localeCompare(b.status) || a.priority - b.priority).map(l => {
545
+ const selected = draft_filter.filter.league_ids && draft_filter.filter.league_ids.find(el => el == l.league_id) ? true : false;
546
+ return /*#__PURE__*/React.createElement(LeagueLozenge, {
547
+ key: `${l.league_id.toString()}`,
548
+ style: {
549
+ flexGrow: 1
550
+ },
551
+ is_active: selected,
552
+ league: l,
553
+ onSelect: league => handleLeagueSelect(league)
554
+ });
555
+ })));
556
+ case 'market_types':
557
+ if (!draft_filter) {
558
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
559
+ }
560
+ if (active_toggle != 'markets') {
561
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
562
+ }
563
+ return /*#__PURE__*/React.createElement(View, {
564
+ nativeID: "filter_order_status",
565
+ style: {
566
+ marginTop: 10
567
+ }
568
+ }, /*#__PURE__*/React.createElement(View, {
569
+ type: "header",
570
+ style: {
571
+ padding: 10
572
+ }
573
+ }, /*#__PURE__*/React.createElement(Text, {
574
+ theme: "h1"
575
+ }, "Market Types"), /*#__PURE__*/React.createElement(Text, {
576
+ style: {
577
+ marginTop: 4
578
+ },
579
+ theme: "description"
580
+ }, "Set to show all orders or filter to only orders related to an event that is currently inprogress")), /*#__PURE__*/React.createElement(View, {
581
+ style: {
582
+ margin: 10,
583
+ padding: 10,
584
+ borderWidth: 1,
585
+ borderColor: Colors.borders.light,
586
+ borderRadius: 8
587
+ }
588
+ }, /*#__PURE__*/React.createElement(Button, {
589
+ transparent: true,
590
+ style: {
591
+ borderRadius: 0,
592
+ flexDirection: 'row',
593
+ alignItems: 'center',
594
+ padding: 10,
595
+ borderBottomWidth: 1,
596
+ borderColor: Colors.borders.light
597
+ },
598
+ onPress: () => {
599
+ let new_filter = {
600
+ ...draft_filter
601
+ };
602
+ new_filter.filter.market_types = 'event';
603
+ handleUpdate(new_filter);
604
+ }
605
+ }, /*#__PURE__*/React.createElement(Checkbox, {
606
+ style: {
607
+ borderRadius: 100
608
+ },
609
+ fill_style: {
610
+ borderRadius: 100
611
+ },
612
+ color: Colors.text.highlight,
613
+ checked: draft_filter.filter.market_types == 'event' ? true : false,
614
+ onSelect: () => console.log(''),
615
+ disabled: true
616
+ }), /*#__PURE__*/React.createElement(Text, {
617
+ style: {
618
+ marginLeft: 14
619
+ },
620
+ size: 14,
621
+ theme: "h2"
622
+ }, "Event Level (Winner, Spread, Total)")), /*#__PURE__*/React.createElement(Button, {
623
+ transparent: true,
624
+ style: {
625
+ borderRadius: 0,
626
+ flexDirection: 'row',
627
+ alignItems: 'center',
628
+ padding: 10,
629
+ borderBottomWidth: 1,
630
+ borderColor: Colors.borders.light
631
+ },
632
+ onPress: () => {
633
+ let new_filter = {
634
+ ...draft_filter
635
+ };
636
+ new_filter.filter.market_types = 'player_stat';
637
+ handleUpdate(new_filter);
638
+ }
639
+ }, /*#__PURE__*/React.createElement(Checkbox, {
640
+ style: {
641
+ borderRadius: 100
642
+ },
643
+ fill_style: {
644
+ borderRadius: 100
645
+ },
646
+ color: Colors.text.highlight,
647
+ checked: draft_filter.filter.market_types == 'player_stat' ? true : false,
648
+ onSelect: () => console.log(''),
649
+ disabled: true
650
+ }), /*#__PURE__*/React.createElement(Text, {
651
+ style: {
652
+ marginLeft: 14
653
+ },
654
+ size: 14,
655
+ theme: "h2"
656
+ }, "Player Stats"))));
657
+ case 'markets':
658
+ if (!draft_filter) {
659
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
660
+ }
661
+ if (draft_filter.filter.league_ids?.length <= 0) {
662
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
663
+ }
664
+ if (!draft_filter.filter.market_types) {
665
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
666
+ }
667
+ if (active_toggle != 'markets') {
668
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
669
+ }
670
+ return /*#__PURE__*/React.createElement(View, {
671
+ nativeID: "filter_leagues",
672
+ style: {
673
+ marginTop: 10
674
+ }
675
+ }, /*#__PURE__*/React.createElement(View, {
676
+ type: "header",
677
+ style: {
678
+ padding: 10
679
+ }
680
+ }, /*#__PURE__*/React.createElement(Text, {
681
+ theme: "h1"
682
+ }, "Included Markets"), /*#__PURE__*/React.createElement(Text, {
683
+ style: {
684
+ marginTop: 4
685
+ },
686
+ theme: "description"
687
+ }, "Only show orders related to specific markets")), /*#__PURE__*/React.createElement(View, {
688
+ style: {
689
+ flexDirection: 'row',
690
+ flexWrap: 'wrap',
691
+ margin: 10,
692
+ padding: 10,
693
+ borderWidth: 1,
694
+ borderColor: Colors.borders.light,
695
+ borderRadius: 8
696
+ }
697
+ }, filtered_markets.map(m => {
698
+ const selected = draft_filter.filter.market_ids.find(el => el == m.market_id) ? true : false;
699
+ return /*#__PURE__*/React.createElement(MarketLozenge, {
700
+ style: {
701
+ flexGrow: 1
702
+ },
703
+ is_active: selected,
704
+ market: m,
705
+ onSelect: market => handleMarketSelect(market)
706
+ });
707
+ })));
708
+ case 'athletes':
709
+ if (!draft_filter) {
710
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
711
+ }
712
+ if (draft_filter.filter.league_ids?.length <= 0) {
713
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
714
+ }
715
+ if (draft_filter.filter.market_types != 'player_stat') {
716
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
717
+ }
718
+ if (active_toggle != 'markets') {
719
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
720
+ }
721
+ return /*#__PURE__*/React.createElement(View, {
722
+ nativeID: "filter_athletes",
723
+ style: {
724
+ marginTop: 10
725
+ }
726
+ }, /*#__PURE__*/React.createElement(View, {
727
+ type: "header",
728
+ style: {
729
+ padding: 10
730
+ }
731
+ }, /*#__PURE__*/React.createElement(Text, {
732
+ theme: "h1"
733
+ }, "Included Athletes"), /*#__PURE__*/React.createElement(Text, {
734
+ style: {
735
+ marginTop: 4
736
+ },
737
+ theme: "description"
738
+ }, "Only show orders related to specific athletes")), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(SearchBox, {
739
+ onFocusPosition: onFocusPosition,
740
+ onChange: text => setAthleteSearch({
741
+ ...athlete_search,
742
+ value: text
743
+ }),
744
+ onSearch: () => handleSearchAthletes(0)
745
+ })), /*#__PURE__*/React.createElement(View, {
746
+ style: {
747
+ margin: 10,
748
+ padding: 10,
749
+ borderWidth: 1,
750
+ borderColor: Colors.borders.light,
751
+ borderRadius: 8
752
+ }
753
+ }, /*#__PURE__*/React.createElement(View, {
754
+ style: {
755
+ flexDirection: 'row',
756
+ flexWrap: 'wrap'
757
+ }
758
+ }, draft_filter.filter.athlete_ids.map(id => {
759
+ const athlete = filter_athletes.find(a => a.athlete_id == id);
760
+ if (!athlete) {
761
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
762
+ }
763
+ const selected = draft_filter.filter.athlete_ids.find(el => el == id) ? true : false;
764
+ return /*#__PURE__*/React.createElement(AthleteLozenge, {
765
+ key: `filter_${id.toString()}`,
766
+ leagues: leagues,
767
+ is_active: selected,
768
+ athlete: athlete,
769
+ abbr_only: true,
770
+ onSelect: athlete => handleAthleteSelect(athlete)
771
+ });
772
+ })), /*#__PURE__*/React.createElement(View, {
773
+ style: {
774
+ flexDirection: 'row',
775
+ flexWrap: 'wrap'
776
+ }
777
+ }, athlete_search.athletes.map(a => {
778
+ const selected = draft_filter.filter.athlete_ids.find(el => el == a.athlete_id) ? true : false;
779
+ if (selected) {
780
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
781
+ }
782
+ return /*#__PURE__*/React.createElement(AthleteLozenge, {
783
+ key: `search_${a.athlete_id.toString()}`,
784
+ leagues: leagues,
785
+ is_active: false,
786
+ athlete: a,
787
+ onSelect: athlete => handleAthleteSelect(athlete)
788
+ });
789
+ })))));
790
+ case 'teams':
791
+ if (!draft_filter) {
792
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
793
+ }
794
+ if (draft_filter.filter.league_ids?.length <= 0) {
795
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
796
+ }
797
+ if (draft_filter.filter.market_types != 'event') {
798
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
799
+ }
800
+ if (active_toggle != 'markets') {
801
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
802
+ }
803
+ return /*#__PURE__*/React.createElement(View, {
804
+ nativeID: "filter_teams",
805
+ style: {
806
+ marginTop: 10
807
+ }
808
+ }, /*#__PURE__*/React.createElement(View, {
809
+ type: "header",
810
+ style: {
811
+ padding: 10
812
+ }
813
+ }, /*#__PURE__*/React.createElement(Text, {
814
+ theme: "h1"
815
+ }, "Included Teams"), /*#__PURE__*/React.createElement(Text, {
816
+ style: {
817
+ marginTop: 4
818
+ },
819
+ theme: "description"
820
+ }, "Only show orders related to specific teams")), /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(SearchBox, {
821
+ onFocusPosition: onFocusPosition,
822
+ onChange: text => setTeamSearch({
823
+ ...team_search,
824
+ value: text
825
+ }),
826
+ onSearch: () => handleSearchTeams(0)
827
+ })), /*#__PURE__*/React.createElement(View, {
828
+ style: {
829
+ margin: 10,
830
+ padding: 10,
831
+ borderWidth: 1,
832
+ borderColor: Colors.borders.light,
833
+ borderRadius: 8
834
+ }
835
+ }, /*#__PURE__*/React.createElement(View, {
836
+ style: {
837
+ flexDirection: 'row',
838
+ flexWrap: 'wrap'
839
+ }
840
+ }, draft_filter.filter.team_ids.map(id => {
841
+ const team = filter_teams.find(a => a.team_id == id);
842
+ if (!team) {
843
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
844
+ }
845
+ const selected = draft_filter.filter.team_ids.find(el => el == id) ? true : false;
846
+ return /*#__PURE__*/React.createElement(TeamLozenge, {
847
+ is_active: selected,
848
+ team: team,
849
+ leagues: leagues,
850
+ onSelect: team => handleTeamSelect(team)
851
+ });
852
+ })), /*#__PURE__*/React.createElement(View, {
853
+ style: {
854
+ flexDirection: 'row',
855
+ flexWrap: 'wrap'
856
+ }
857
+ }, team_search.teams.map(a => {
858
+ const selected = draft_filter.filter.team_ids.find(el => el == a.team_id) ? true : false;
859
+ if (selected) {
860
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
861
+ }
862
+ return /*#__PURE__*/React.createElement(TeamLozenge, {
863
+ is_active: selected,
864
+ team: a,
865
+ leagues: leagues,
866
+ onSelect: team => handleTeamSelect(team)
867
+ });
868
+ })))));
869
+ case 'players':
870
+ if (!draft_filter) {
871
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
872
+ }
873
+ if (active_toggle != 'people') {
874
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
875
+ }
876
+ return /*#__PURE__*/React.createElement(View, {
877
+ nativeID: "filter_people",
878
+ style: {
879
+ marginTop: 10
880
+ }
881
+ }, /*#__PURE__*/React.createElement(View, {
882
+ type: "header",
883
+ style: {
884
+ padding: 10
885
+ }
886
+ }, /*#__PURE__*/React.createElement(Text, {
887
+ theme: "h1"
888
+ }, "Show Orders From"), /*#__PURE__*/React.createElement(Text, {
889
+ style: {
890
+ marginTop: 4
891
+ },
892
+ theme: "description"
893
+ }, "Set specific players or groups you would like to see these orders from (i.e., people I follow or Todd my neighbor)")), /*#__PURE__*/React.createElement(View, {
894
+ style: {
895
+ margin: 10,
896
+ padding: 10,
897
+ borderWidth: 1,
898
+ borderColor: Colors.borders.light,
899
+ borderRadius: 8
900
+ }
901
+ }, /*#__PURE__*/React.createElement(Button, {
902
+ disabled: true,
903
+ style: {
904
+ flexDirection: 'row',
905
+ alignItems: 'center',
906
+ padding: 0
907
+ }
908
+ }, /*#__PURE__*/React.createElement(Checkbox, {
909
+ style: {
910
+ borderRadius: 100
911
+ },
912
+ fill_style: {
913
+ borderRadius: 100
914
+ },
915
+ color: Colors.text.highlight,
916
+ checked: !draft_filter.filter.custom_players && !draft_filter.filter.following_only ? true : false,
917
+ onSelect: () => {
918
+ let new_filter = {
919
+ ...draft_filter
920
+ };
921
+ new_filter.filter.custom_players = false;
922
+ new_filter.filter.following_only = false;
923
+ handleUpdate(new_filter);
924
+ }
925
+ }), /*#__PURE__*/React.createElement(Text, {
926
+ style: {
927
+ marginLeft: 14
928
+ },
929
+ size: 14,
930
+ theme: "h2"
931
+ }, "Everyone")), /*#__PURE__*/React.createElement(Button, {
932
+ disabled: true,
933
+ style: {
934
+ flexDirection: 'row',
935
+ alignItems: 'center',
936
+ marginTop: 12,
937
+ padding: 0
938
+ }
939
+ }, /*#__PURE__*/React.createElement(Checkbox, {
940
+ style: {
941
+ borderRadius: 100
942
+ },
943
+ fill_style: {
944
+ borderRadius: 100
945
+ },
946
+ color: Colors.text.highlight,
947
+ checked: draft_filter.filter.following_only ? true : false,
948
+ onSelect: () => {
949
+ let new_filter = {
950
+ ...draft_filter
951
+ };
952
+ new_filter.filter.following_only = true;
953
+ new_filter.filter.custom_players = false;
954
+ handleUpdate(new_filter);
955
+ }
956
+ }), /*#__PURE__*/React.createElement(Text, {
957
+ style: {
958
+ marginLeft: 14
959
+ },
960
+ size: 14,
961
+ theme: "h2"
962
+ }, "People I Follow")), /*#__PURE__*/React.createElement(Button, {
963
+ disabled: true,
964
+ style: {
965
+ flexDirection: 'row',
966
+ alignItems: 'center',
967
+ marginTop: 12,
968
+ padding: 0
969
+ }
970
+ }, /*#__PURE__*/React.createElement(Checkbox, {
971
+ style: {
972
+ borderRadius: 100
973
+ },
974
+ fill_style: {
975
+ borderRadius: 100
976
+ },
977
+ color: Colors.text.highlight,
978
+ checked: draft_filter.filter.custom_players ? true : false,
979
+ onSelect: () => {
980
+ let new_filter = {
981
+ ...draft_filter
982
+ };
983
+ new_filter.filter.following_only = false;
984
+ new_filter.filter.custom_players = true;
985
+ handleUpdate(new_filter);
986
+ }
987
+ }), /*#__PURE__*/React.createElement(Text, {
988
+ style: {
989
+ marginLeft: 14
990
+ },
991
+ size: 14,
992
+ theme: "h2"
993
+ }, "Custom Players"))), draft_filter.filter.custom_players ? /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
994
+ style: {
995
+ flexDirection: 'row',
996
+ flexWrap: 'wrap',
997
+ padding: 10,
998
+ borderBottomWidth: 1,
999
+ borderColor: Colors.borders.light
1000
+ }
1001
+ }, draft_filter.filter.player_ids.map(id => {
1002
+ const player = filter_players.find(a => a.player_id == id);
1003
+ if (!player) {
1004
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1005
+ }
1006
+ const selected = draft_filter.filter.player_ids.find(el => el == id) ? true : false;
1007
+ return /*#__PURE__*/React.createElement(PlayerLozenge, {
1008
+ hide_name: true,
1009
+ is_active: selected,
1010
+ player: player,
1011
+ onSelect: player => handlePlayerSelect(player)
1012
+ });
1013
+ })), /*#__PURE__*/React.createElement(View, {
1014
+ style: {
1015
+ marginTop: 5
1016
+ }
1017
+ }, /*#__PURE__*/React.createElement(SearchBox, {
1018
+ onFocusPosition: onFocusPosition,
1019
+ onChange: text => setPlayerSearch({
1020
+ ...player_search,
1021
+ value: text
1022
+ }),
1023
+ onSearch: () => handleSearchPlayers(0)
1024
+ })), /*#__PURE__*/React.createElement(Pagination, {
1025
+ offset: player_search.offset,
1026
+ onNext: () => handleSearchPlayers(player_search.offset + 1),
1027
+ onPrevious: () => handleSearchPlayers(player_search.offset - 1)
1028
+ }), /*#__PURE__*/React.createElement(View, {
1029
+ style: {
1030
+ margin: 10,
1031
+ padding: 10,
1032
+ borderWidth: 1,
1033
+ borderColor: Colors.borders.light,
1034
+ borderRadius: 8
1035
+ }
1036
+ }, /*#__PURE__*/React.createElement(View, {
1037
+ style: {
1038
+ flexDirection: 'row',
1039
+ flexWrap: 'wrap'
1040
+ }
1041
+ }, player_search.players.map(a => {
1042
+ const selected = draft_filter.filter.player_ids.find(el => el == a.player_id) ? true : false;
1043
+ if (selected) {
1044
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1045
+ }
1046
+ return /*#__PURE__*/React.createElement(PlayerLozenge, {
1047
+ is_active: selected,
1048
+ player: a,
1049
+ onSelect: player => handlePlayerSelect(player)
1050
+ });
1051
+ })))) : /*#__PURE__*/React.createElement(React.Fragment, null));
1052
+ case 'order_grades':
1053
+ if (active_toggle != 'premium') {
1054
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1055
+ }
1056
+ if (!draft_filter) {
1057
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1058
+ }
1059
+ return /*#__PURE__*/React.createElement(View, {
1060
+ nativeID: "order_grades",
1061
+ style: {
1062
+ marginTop: 10
1063
+ }
1064
+ }, /*#__PURE__*/React.createElement(View, {
1065
+ type: "header",
1066
+ style: {
1067
+ padding: 10
1068
+ }
1069
+ }, /*#__PURE__*/React.createElement(Text, {
1070
+ theme: "h1"
1071
+ }, "Minimum Order Grade"), /*#__PURE__*/React.createElement(Text, {
1072
+ style: {
1073
+ marginTop: 4
1074
+ },
1075
+ theme: "description"
1076
+ }, "Only show orders that are graded above a certain threshold")), /*#__PURE__*/React.createElement(View, {
1077
+ style: {
1078
+ margin: 10,
1079
+ padding: 10,
1080
+ borderWidth: 1,
1081
+ borderColor: Colors.borders.light,
1082
+ borderRadius: 8
1083
+ }
1084
+ }, /*#__PURE__*/React.createElement(View, {
1085
+ style: {
1086
+ flexDirection: 'row',
1087
+ justifyContent: 'center'
1088
+ }
1089
+ }, grade_boxes.map(b => {
1090
+ const filled = draft_filter?.filter.minimum_grade >= b.min ? true : false;
1091
+ const success = b.min > 97.5 ? true : false;
1092
+ return /*#__PURE__*/React.createElement(Button, {
1093
+ float: true,
1094
+ style: {
1095
+ padding: 0,
1096
+ height: 20,
1097
+ width: 20,
1098
+ margin: 10,
1099
+ borderRadius: 4,
1100
+ borderWidth: 1,
1101
+ borderColor: success ? b.success_color : b.fail_color,
1102
+ backgroundColor: filled ? success ? b.success_color : b.fail_color : undefined
1103
+ },
1104
+ onPress: () => {
1105
+ if (!premium_allowed) {
1106
+ return alert('Must be a premium member to add this option');
1107
+ }
1108
+ let new_filter = {
1109
+ ...draft_filter
1110
+ };
1111
+ new_filter.filter.minimum_grade = b.min;
1112
+ handleUpdate(new_filter);
1113
+ }
1114
+ });
1115
+ })), /*#__PURE__*/React.createElement(Text, {
1116
+ size: 14,
1117
+ weight: "semibold",
1118
+ textAlign: "center"
1119
+ }, minimumGradeText(draft_filter.filter.minimum_grade))));
1120
+ case 'external_sources':
1121
+ if (active_toggle != 'premium') {
1122
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1123
+ }
1124
+ if (!draft_filter) {
1125
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1126
+ }
1127
+ return /*#__PURE__*/React.createElement(View, {
1128
+ nativeID: "filter_order_status"
1129
+ }, /*#__PURE__*/React.createElement(View, {
1130
+ type: "header",
1131
+ style: {
1132
+ padding: 10
1133
+ }
1134
+ }, /*#__PURE__*/React.createElement(Text, {
1135
+ theme: "h1"
1136
+ }, "External Price Compare"), /*#__PURE__*/React.createElement(Text, {
1137
+ style: {
1138
+ marginTop: 4
1139
+ },
1140
+ theme: "description"
1141
+ }, "When viewing orders, we can show you what the price is at a specific book. Select which book below. If the price is not available, we will use the consensus if possible.")), /*#__PURE__*/React.createElement(View, {
1142
+ style: {
1143
+ margin: 10,
1144
+ padding: 10,
1145
+ borderWidth: 1,
1146
+ borderColor: Colors.borders.light,
1147
+ borderRadius: 8
1148
+ }
1149
+ }, books.map(b => {
1150
+ return /*#__PURE__*/React.createElement(Button, {
1151
+ key: b,
1152
+ style: {
1153
+ flexDirection: 'row',
1154
+ alignItems: 'center',
1155
+ padding: 10
1156
+ },
1157
+ onPress: () => {
1158
+ if (!premium_allowed) {
1159
+ return alert('Must be a premium member to add this option');
1160
+ }
1161
+ let new_filter = {
1162
+ ...draft_filter
1163
+ };
1164
+ new_filter.filter.external_book = b;
1165
+ handleUpdate(new_filter);
1166
+ }
1167
+ }, /*#__PURE__*/React.createElement(Checkbox, {
1168
+ disabled: true,
1169
+ style: {
1170
+ borderRadius: 100
1171
+ },
1172
+ fill_style: {
1173
+ borderRadius: 100
1174
+ },
1175
+ color: Colors.text.highlight,
1176
+ checked: draft_filter.filter.external_book == b ? true : false,
1177
+ onSelect: () => console.log('')
1178
+ }), /*#__PURE__*/React.createElement(Text, {
1179
+ style: {
1180
+ marginLeft: 10
1181
+ },
1182
+ theme: "h2"
1183
+ }, b.toUpperCase()));
1184
+ })));
1185
+ default:
1186
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
1187
+ }
1188
+ };
1189
+ const is_changed = JSON.stringify(player_filter) != JSON.stringify(draft_filter) ? true : false;
1190
+ return /*#__PURE__*/React.createElement(View, {
1191
+ style: {
1192
+ flex: 1
1193
+ }
1194
+ }, /*#__PURE__*/React.createElement(View, {
1195
+ type: "header",
1196
+ style: {
1197
+ flexDirection: 'row',
1198
+ alignItems: 'center',
1199
+ padding: 10
1200
+ }
1201
+ }, /*#__PURE__*/React.createElement(View, {
1202
+ transparent: true,
1203
+ style: {
1204
+ flex: 1
1205
+ }
1206
+ }, /*#__PURE__*/React.createElement(Text, {
1207
+ theme: "h1"
1208
+ }, "MANAGE FILTER"), /*#__PURE__*/React.createElement(Text, {
1209
+ theme: "description",
1210
+ style: {
1211
+ marginTop: 3
1212
+ }
1213
+ }, "Create rulesets to filter all open orders on BettorEdge")), errors.length > 0 ? /*#__PURE__*/React.createElement(Button, {
1214
+ float: true,
1215
+ style: {
1216
+ padding: 5,
1217
+ borderRadius: 100
1218
+ },
1219
+ onPress: () => alert(errors[0])
1220
+ }, /*#__PURE__*/React.createElement(Icons.AlertIcon, {
1221
+ color: Colors.text.warning,
1222
+ size: 16
1223
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(Button, {
1224
+ title: "SAVE",
1225
+ type: "success",
1226
+ disabled: !is_changed || action_loading,
1227
+ loading: action_loading,
1228
+ style: {
1229
+ marginLeft: 10,
1230
+ padding: 10,
1231
+ opacity: action_loading || !is_changed ? 0.5 : 1
1232
+ },
1233
+ onPress: async () => {
1234
+ if (!draft_filter) {
1235
+ return;
1236
+ }
1237
+ handleUpdate(draft_filter);
1238
+ }
1239
+ })), /*#__PURE__*/React.createElement(View, {
1240
+ style: {
1241
+ flex: 1
1242
+ }
1243
+ }, static_loading || loading ? /*#__PURE__*/React.createElement(ActivityIndicator, {
1244
+ style: {
1245
+ padding: 20,
1246
+ alignSelf: 'center'
1247
+ },
1248
+ size: 'large',
1249
+ color: Colors.text.h1
1250
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(FlatList, {
1251
+ data: sections,
1252
+ key: 'manage_filter_sections',
1253
+ keyExtractor: item => item,
1254
+ renderItem: renderSections
1255
+ }), player_filter ? /*#__PURE__*/React.createElement(View, {
1256
+ type: "footer",
1257
+ style: {
1258
+ flexDirection: 'row',
1259
+ padding: 10
1260
+ }
1261
+ }, !confirm_delete ? /*#__PURE__*/React.createElement(Button, {
1262
+ style: {
1263
+ flex: 1,
1264
+ opacity: action_loading ? 0.5 : 1
1265
+ },
1266
+ type: "error",
1267
+ loading: action_loading,
1268
+ title: "DELETE",
1269
+ onPress: () => {
1270
+ setActionLoading(true);
1271
+ setTimeout(() => {
1272
+ setConfirmDelete(true);
1273
+ setActionLoading(false);
1274
+ }, 500);
1275
+ }
1276
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null), confirm_delete ? /*#__PURE__*/React.createElement(Button, {
1277
+ style: {
1278
+ flex: 1,
1279
+ opacity: action_loading ? 0.5 : 1
1280
+ },
1281
+ type: "error",
1282
+ loading: action_loading,
1283
+ title: "DELETE THIS FILTER",
1284
+ onPress: async () => {
1285
+ setActionLoading(true);
1286
+ let new_pf = await BetMatchApi.deletePlayerFilter(player_filter_id);
1287
+ if (!new_pf) {
1288
+ setActionLoading(false);
1289
+ setConfirmDelete(false);
1290
+ return alert('Unable to process this');
1291
+ }
1292
+ setActionLoading(false);
1293
+ setConfirmDelete(false);
1294
+ setFilterData({
1295
+ ...filter_data,
1296
+ player_filter: new_pf,
1297
+ draft_filter: new_pf
1298
+ });
1299
+ onUpdateFilter(new_pf);
1300
+ }
1301
+ }) : /*#__PURE__*/React.createElement(Button, {
1302
+ style: {
1303
+ flex: 2,
1304
+ marginLeft: 10
1305
+ },
1306
+ type: "action",
1307
+ title: "RUN",
1308
+ onPress: () => onRunFilter(player_filter)
1309
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null), player_filter?.status == 'deleted' ? /*#__PURE__*/React.createElement(View, {
1310
+ type: "blur",
1311
+ style: {
1312
+ position: 'absolute',
1313
+ top: 0,
1314
+ left: 0,
1315
+ right: 0,
1316
+ bottom: 0,
1317
+ justifyContent: 'center',
1318
+ alignItems: 'center'
1319
+ }
1320
+ }, /*#__PURE__*/React.createElement(View, {
1321
+ float: true,
1322
+ style: {
1323
+ width: 400,
1324
+ height: 400,
1325
+ justifyContent: 'center',
1326
+ alignItems: 'center'
1327
+ }
1328
+ }, /*#__PURE__*/React.createElement(Text, {
1329
+ theme: "h1"
1330
+ }, "This filter has been deleted"))) : /*#__PURE__*/React.createElement(React.Fragment, null)));
1331
+ };
1332
+ export default ManageFilter;
1333
+ //# sourceMappingURL=ManageFilter.js.map