be-components 6.7.7 → 6.7.9

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 (263) hide show
  1. package/lib/commonjs/Authenticator/index.js +1 -0
  2. package/lib/commonjs/Authenticator/index.js.map +1 -1
  3. package/lib/commonjs/Competition/components/CompetitionInfoCard.js +13 -0
  4. package/lib/commonjs/Competition/components/CompetitionInfoCard.js.map +1 -1
  5. package/lib/commonjs/Competition/components/CompetitionLeaderboard.js +1 -1
  6. package/lib/commonjs/Competition/components/CompetitionLeaderboard.js.map +1 -1
  7. package/lib/commonjs/Competition/index.js +26 -43
  8. package/lib/commonjs/Competition/index.js.map +1 -1
  9. package/lib/commonjs/CompetitionManager/api/index.js +57 -11
  10. package/lib/commonjs/CompetitionManager/api/index.js.map +1 -1
  11. package/lib/commonjs/CompetitionManager/components/AdminCompetitionList.js +406 -287
  12. package/lib/commonjs/CompetitionManager/components/AdminCompetitionList.js.map +1 -1
  13. package/lib/commonjs/CompetitionManager/components/AthleteSelector.js +11 -3
  14. package/lib/commonjs/CompetitionManager/components/AthleteSelector.js.map +1 -1
  15. package/lib/commonjs/CompetitionManager/components/CompanySelector.js +94 -0
  16. package/lib/commonjs/CompetitionManager/components/CompanySelector.js.map +1 -0
  17. package/lib/commonjs/CompetitionManager/components/CompetitionContestsForm.js +135 -107
  18. package/lib/commonjs/CompetitionManager/components/CompetitionContestsForm.js.map +1 -1
  19. package/lib/commonjs/CompetitionManager/components/CompetitionHeader.js +5 -5
  20. package/lib/commonjs/CompetitionManager/components/CompetitionHeader.js.map +1 -1
  21. package/lib/commonjs/CompetitionManager/components/CompetitionInfoForm.js +80 -34
  22. package/lib/commonjs/CompetitionManager/components/CompetitionInfoForm.js.map +1 -1
  23. package/lib/commonjs/CompetitionManager/components/CompetitionMatchMarketCard.js +12 -8
  24. package/lib/commonjs/CompetitionManager/components/CompetitionMatchMarketCard.js.map +1 -1
  25. package/lib/commonjs/CompetitionManager/components/CompetitionSettingsForm.js +36 -30
  26. package/lib/commonjs/CompetitionManager/components/CompetitionSettingsForm.js.map +1 -1
  27. package/lib/commonjs/CompetitionManager/components/ContestSelector.js +4 -2
  28. package/lib/commonjs/CompetitionManager/components/ContestSelector.js.map +1 -1
  29. package/lib/commonjs/CompetitionManager/components/ContestSettingsForm.js +37 -33
  30. package/lib/commonjs/CompetitionManager/components/ContestSettingsForm.js.map +1 -1
  31. package/lib/commonjs/CompetitionManager/components/GroupSelector.js +94 -0
  32. package/lib/commonjs/CompetitionManager/components/GroupSelector.js.map +1 -0
  33. package/lib/commonjs/CompetitionManager/components/MarketSelector.js +21 -12
  34. package/lib/commonjs/CompetitionManager/components/MarketSelector.js.map +1 -1
  35. package/lib/commonjs/CompetitionManager/components/PlayerSelector.js +4 -1
  36. package/lib/commonjs/CompetitionManager/components/PlayerSelector.js.map +1 -1
  37. package/lib/commonjs/CompetitionManager/index.js +44 -49
  38. package/lib/commonjs/CompetitionManager/index.js.map +1 -1
  39. package/lib/commonjs/Components/Toggle.js +2 -1
  40. package/lib/commonjs/Components/Toggle.js.map +1 -1
  41. package/lib/commonjs/CreateEngagement/api/index.js +192 -0
  42. package/lib/commonjs/CreateEngagement/api/index.js.map +1 -0
  43. package/lib/commonjs/CreateEngagement/index.js +1391 -0
  44. package/lib/commonjs/CreateEngagement/index.js.map +1 -0
  45. package/lib/commonjs/MarketComponents/api/index.js +51 -1
  46. package/lib/commonjs/MarketComponents/api/index.js.map +1 -1
  47. package/lib/commonjs/MarketComponents/components/LeagueSchedule.js +210 -0
  48. package/lib/commonjs/MarketComponents/components/LeagueSchedule.js.map +1 -0
  49. package/lib/commonjs/MarketComponents/components/OrderBookChart.js +13 -25
  50. package/lib/commonjs/MarketComponents/components/OrderBookChart.js.map +1 -1
  51. package/lib/commonjs/constants/useColors.js +1 -1
  52. package/lib/commonjs/constants/useColors.js.map +1 -1
  53. package/lib/commonjs/index.js +7 -0
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/types.d.js.map +1 -1
  56. package/lib/module/Authenticator/index.js +1 -0
  57. package/lib/module/Authenticator/index.js.map +1 -1
  58. package/lib/module/Competition/components/CompetitionInfoCard.js +13 -0
  59. package/lib/module/Competition/components/CompetitionInfoCard.js.map +1 -1
  60. package/lib/module/Competition/components/CompetitionLeaderboard.js +1 -1
  61. package/lib/module/Competition/components/CompetitionLeaderboard.js.map +1 -1
  62. package/lib/module/Competition/index.js +26 -43
  63. package/lib/module/Competition/index.js.map +1 -1
  64. package/lib/module/CompetitionManager/api/index.js +57 -11
  65. package/lib/module/CompetitionManager/api/index.js.map +1 -1
  66. package/lib/module/CompetitionManager/components/AdminCompetitionList.js +391 -272
  67. package/lib/module/CompetitionManager/components/AdminCompetitionList.js.map +1 -1
  68. package/lib/module/CompetitionManager/components/AthleteSelector.js +11 -3
  69. package/lib/module/CompetitionManager/components/AthleteSelector.js.map +1 -1
  70. package/lib/module/CompetitionManager/components/CompanySelector.js +87 -0
  71. package/lib/module/CompetitionManager/components/CompanySelector.js.map +1 -0
  72. package/lib/module/CompetitionManager/components/CompetitionContestsForm.js +135 -107
  73. package/lib/module/CompetitionManager/components/CompetitionContestsForm.js.map +1 -1
  74. package/lib/module/CompetitionManager/components/CompetitionHeader.js +5 -5
  75. package/lib/module/CompetitionManager/components/CompetitionHeader.js.map +1 -1
  76. package/lib/module/CompetitionManager/components/CompetitionInfoForm.js +80 -34
  77. package/lib/module/CompetitionManager/components/CompetitionInfoForm.js.map +1 -1
  78. package/lib/module/CompetitionManager/components/CompetitionMatchMarketCard.js +12 -8
  79. package/lib/module/CompetitionManager/components/CompetitionMatchMarketCard.js.map +1 -1
  80. package/lib/module/CompetitionManager/components/CompetitionSettingsForm.js +36 -30
  81. package/lib/module/CompetitionManager/components/CompetitionSettingsForm.js.map +1 -1
  82. package/lib/module/CompetitionManager/components/ContestSelector.js +4 -2
  83. package/lib/module/CompetitionManager/components/ContestSelector.js.map +1 -1
  84. package/lib/module/CompetitionManager/components/ContestSettingsForm.js +37 -33
  85. package/lib/module/CompetitionManager/components/ContestSettingsForm.js.map +1 -1
  86. package/lib/module/CompetitionManager/components/GroupSelector.js +87 -0
  87. package/lib/module/CompetitionManager/components/GroupSelector.js.map +1 -0
  88. package/lib/module/CompetitionManager/components/MarketSelector.js +21 -12
  89. package/lib/module/CompetitionManager/components/MarketSelector.js.map +1 -1
  90. package/lib/module/CompetitionManager/components/PlayerSelector.js +4 -1
  91. package/lib/module/CompetitionManager/components/PlayerSelector.js.map +1 -1
  92. package/lib/module/CompetitionManager/index.js +45 -50
  93. package/lib/module/CompetitionManager/index.js.map +1 -1
  94. package/lib/module/Components/Toggle.js +2 -1
  95. package/lib/module/Components/Toggle.js.map +1 -1
  96. package/lib/module/CreateEngagement/api/index.js +186 -0
  97. package/lib/module/CreateEngagement/api/index.js.map +1 -0
  98. package/lib/module/CreateEngagement/index.js +1383 -0
  99. package/lib/module/CreateEngagement/index.js.map +1 -0
  100. package/lib/module/MarketComponents/api/index.js +51 -1
  101. package/lib/module/MarketComponents/api/index.js.map +1 -1
  102. package/lib/module/MarketComponents/components/LeagueSchedule.js +202 -0
  103. package/lib/module/MarketComponents/components/LeagueSchedule.js.map +1 -0
  104. package/lib/module/MarketComponents/components/OrderBookChart.js +13 -25
  105. package/lib/module/MarketComponents/components/OrderBookChart.js.map +1 -1
  106. package/lib/module/constants/useColors.js +1 -1
  107. package/lib/module/constants/useColors.js.map +1 -1
  108. package/lib/module/index.js +2 -1
  109. package/lib/module/index.js.map +1 -1
  110. package/lib/module/types.d.js.map +1 -1
  111. package/lib/typescript/lib/commonjs/Authenticator/index.d.ts.map +1 -1
  112. package/lib/typescript/lib/commonjs/Competition/components/CompetitionInfoCard.d.ts.map +1 -1
  113. package/lib/typescript/lib/commonjs/Competition/index.d.ts.map +1 -1
  114. package/lib/typescript/lib/commonjs/CompetitionManager/api/index.d.ts +9 -4
  115. package/lib/typescript/lib/commonjs/CompetitionManager/api/index.d.ts.map +1 -1
  116. package/lib/typescript/lib/commonjs/CompetitionManager/components/AdminCompetitionList.d.ts +4 -3
  117. package/lib/typescript/lib/commonjs/CompetitionManager/components/AdminCompetitionList.d.ts.map +1 -1
  118. package/lib/typescript/lib/commonjs/CompetitionManager/components/AthleteSelector.d.ts +3 -1
  119. package/lib/typescript/lib/commonjs/CompetitionManager/components/AthleteSelector.d.ts.map +1 -1
  120. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompanySelector.d.ts +8 -0
  121. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompanySelector.d.ts.map +1 -0
  122. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionContestsForm.d.ts +2 -2
  123. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionContestsForm.d.ts.map +1 -1
  124. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionHeader.d.ts +2 -1
  125. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionHeader.d.ts.map +1 -1
  126. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionInfoForm.d.ts +3 -2
  127. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionInfoForm.d.ts.map +1 -1
  128. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionMatchMarketCard.d.ts.map +1 -1
  129. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionSettingsForm.d.ts +1 -2
  130. package/lib/typescript/lib/commonjs/CompetitionManager/components/CompetitionSettingsForm.d.ts.map +1 -1
  131. package/lib/typescript/lib/commonjs/CompetitionManager/components/ContestSelector.d.ts.map +1 -1
  132. package/lib/typescript/lib/commonjs/CompetitionManager/components/ContestSettingsForm.d.ts +1 -2
  133. package/lib/typescript/lib/commonjs/CompetitionManager/components/ContestSettingsForm.d.ts.map +1 -1
  134. package/lib/typescript/lib/commonjs/CompetitionManager/components/GroupSelector.d.ts +8 -0
  135. package/lib/typescript/lib/commonjs/CompetitionManager/components/GroupSelector.d.ts.map +1 -0
  136. package/lib/typescript/lib/commonjs/CompetitionManager/components/MarketSelector.d.ts.map +1 -1
  137. package/lib/typescript/lib/commonjs/CompetitionManager/components/PlayerSelector.d.ts.map +1 -1
  138. package/lib/typescript/lib/commonjs/CompetitionManager/index.d.ts +4 -1
  139. package/lib/typescript/lib/commonjs/CompetitionManager/index.d.ts.map +1 -1
  140. package/lib/typescript/lib/commonjs/Components/Toggle.d.ts +2 -1
  141. package/lib/typescript/lib/commonjs/Components/Toggle.d.ts.map +1 -1
  142. package/lib/typescript/lib/commonjs/CreateEngagement/api/index.d.ts +39 -0
  143. package/lib/typescript/lib/commonjs/CreateEngagement/api/index.d.ts.map +1 -0
  144. package/lib/typescript/lib/commonjs/CreateEngagement/index.d.ts +18 -0
  145. package/lib/typescript/lib/commonjs/CreateEngagement/index.d.ts.map +1 -0
  146. package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts +8 -0
  147. package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts.map +1 -1
  148. package/lib/typescript/lib/commonjs/MarketComponents/components/LeagueSchedule.d.ts +8 -0
  149. package/lib/typescript/lib/commonjs/MarketComponents/components/LeagueSchedule.d.ts.map +1 -0
  150. package/lib/typescript/lib/commonjs/MarketComponents/components/OrderBookChart.d.ts.map +1 -1
  151. package/lib/typescript/lib/commonjs/index.d.ts +1 -0
  152. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -1
  153. package/lib/typescript/lib/module/Authenticator/index.d.ts.map +1 -1
  154. package/lib/typescript/lib/module/Competition/components/CompetitionInfoCard.d.ts.map +1 -1
  155. package/lib/typescript/lib/module/Competition/index.d.ts.map +1 -1
  156. package/lib/typescript/lib/module/CompetitionManager/api/index.d.ts +9 -4
  157. package/lib/typescript/lib/module/CompetitionManager/api/index.d.ts.map +1 -1
  158. package/lib/typescript/lib/module/CompetitionManager/components/AdminCompetitionList.d.ts +5 -5
  159. package/lib/typescript/lib/module/CompetitionManager/components/AdminCompetitionList.d.ts.map +1 -1
  160. package/lib/typescript/lib/module/CompetitionManager/components/AthleteSelector.d.ts +3 -1
  161. package/lib/typescript/lib/module/CompetitionManager/components/AthleteSelector.d.ts.map +1 -1
  162. package/lib/typescript/lib/module/CompetitionManager/components/CompanySelector.d.ts +8 -0
  163. package/lib/typescript/lib/module/CompetitionManager/components/CompanySelector.d.ts.map +1 -0
  164. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionContestsForm.d.ts +2 -2
  165. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionContestsForm.d.ts.map +1 -1
  166. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionHeader.d.ts +2 -1
  167. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionHeader.d.ts.map +1 -1
  168. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionInfoForm.d.ts +3 -2
  169. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionInfoForm.d.ts.map +1 -1
  170. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionMatchMarketCard.d.ts.map +1 -1
  171. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionSettingsForm.d.ts +1 -2
  172. package/lib/typescript/lib/module/CompetitionManager/components/CompetitionSettingsForm.d.ts.map +1 -1
  173. package/lib/typescript/lib/module/CompetitionManager/components/ContestSelector.d.ts.map +1 -1
  174. package/lib/typescript/lib/module/CompetitionManager/components/ContestSettingsForm.d.ts +1 -2
  175. package/lib/typescript/lib/module/CompetitionManager/components/ContestSettingsForm.d.ts.map +1 -1
  176. package/lib/typescript/lib/module/CompetitionManager/components/GroupSelector.d.ts +8 -0
  177. package/lib/typescript/lib/module/CompetitionManager/components/GroupSelector.d.ts.map +1 -0
  178. package/lib/typescript/lib/module/CompetitionManager/components/MarketSelector.d.ts.map +1 -1
  179. package/lib/typescript/lib/module/CompetitionManager/components/PlayerSelector.d.ts.map +1 -1
  180. package/lib/typescript/lib/module/CompetitionManager/index.d.ts +4 -1
  181. package/lib/typescript/lib/module/CompetitionManager/index.d.ts.map +1 -1
  182. package/lib/typescript/lib/module/Components/Toggle.d.ts +2 -1
  183. package/lib/typescript/lib/module/Components/Toggle.d.ts.map +1 -1
  184. package/lib/typescript/lib/module/CreateEngagement/api/index.d.ts +38 -0
  185. package/lib/typescript/lib/module/CreateEngagement/api/index.d.ts.map +1 -0
  186. package/lib/typescript/lib/module/CreateEngagement/index.d.ts +18 -0
  187. package/lib/typescript/lib/module/CreateEngagement/index.d.ts.map +1 -0
  188. package/lib/typescript/lib/module/MarketComponents/api/index.d.ts +8 -0
  189. package/lib/typescript/lib/module/MarketComponents/api/index.d.ts.map +1 -1
  190. package/lib/typescript/lib/module/MarketComponents/components/LeagueSchedule.d.ts +8 -0
  191. package/lib/typescript/lib/module/MarketComponents/components/LeagueSchedule.d.ts.map +1 -0
  192. package/lib/typescript/lib/module/MarketComponents/components/OrderBookChart.d.ts.map +1 -1
  193. package/lib/typescript/lib/module/index.d.ts +2 -1
  194. package/lib/typescript/lib/module/index.d.ts.map +1 -1
  195. package/lib/typescript/src/Competition/components/CompetitionInfoCard.d.ts.map +1 -1
  196. package/lib/typescript/src/Competition/index.d.ts +1 -1
  197. package/lib/typescript/src/Competition/index.d.ts.map +1 -1
  198. package/lib/typescript/src/CompetitionManager/api/index.d.ts +13 -5
  199. package/lib/typescript/src/CompetitionManager/api/index.d.ts.map +1 -1
  200. package/lib/typescript/src/CompetitionManager/components/AdminCompetitionList.d.ts +5 -1
  201. package/lib/typescript/src/CompetitionManager/components/AdminCompetitionList.d.ts.map +1 -1
  202. package/lib/typescript/src/CompetitionManager/components/AthleteSelector.d.ts +4 -2
  203. package/lib/typescript/src/CompetitionManager/components/AthleteSelector.d.ts.map +1 -1
  204. package/lib/typescript/src/CompetitionManager/components/CompanySelector.d.ts +10 -0
  205. package/lib/typescript/src/CompetitionManager/components/CompanySelector.d.ts.map +1 -0
  206. package/lib/typescript/src/CompetitionManager/components/CompetitionContestsForm.d.ts +1 -2
  207. package/lib/typescript/src/CompetitionManager/components/CompetitionContestsForm.d.ts.map +1 -1
  208. package/lib/typescript/src/CompetitionManager/components/CompetitionHeader.d.ts +3 -1
  209. package/lib/typescript/src/CompetitionManager/components/CompetitionHeader.d.ts.map +1 -1
  210. package/lib/typescript/src/CompetitionManager/components/CompetitionInfoForm.d.ts +4 -3
  211. package/lib/typescript/src/CompetitionManager/components/CompetitionInfoForm.d.ts.map +1 -1
  212. package/lib/typescript/src/CompetitionManager/components/CompetitionMatchMarketCard.d.ts.map +1 -1
  213. package/lib/typescript/src/CompetitionManager/components/CompetitionSettingsForm.d.ts +1 -2
  214. package/lib/typescript/src/CompetitionManager/components/CompetitionSettingsForm.d.ts.map +1 -1
  215. package/lib/typescript/src/CompetitionManager/components/ContestSettingsForm.d.ts +1 -2
  216. package/lib/typescript/src/CompetitionManager/components/ContestSettingsForm.d.ts.map +1 -1
  217. package/lib/typescript/src/CompetitionManager/components/GroupSelector.d.ts +10 -0
  218. package/lib/typescript/src/CompetitionManager/components/GroupSelector.d.ts.map +1 -0
  219. package/lib/typescript/src/CompetitionManager/components/MarketSelector.d.ts.map +1 -1
  220. package/lib/typescript/src/CompetitionManager/index.d.ts +5 -1
  221. package/lib/typescript/src/CompetitionManager/index.d.ts.map +1 -1
  222. package/lib/typescript/src/Components/Toggle.d.ts +2 -1
  223. package/lib/typescript/src/Components/Toggle.d.ts.map +1 -1
  224. package/lib/typescript/src/CreateEngagement/api/index.d.ts +29 -0
  225. package/lib/typescript/src/CreateEngagement/api/index.d.ts.map +1 -0
  226. package/lib/typescript/src/CreateEngagement/index.d.ts +21 -0
  227. package/lib/typescript/src/CreateEngagement/index.d.ts.map +1 -0
  228. package/lib/typescript/src/MarketComponents/api/index.d.ts +8 -0
  229. package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -1
  230. package/lib/typescript/src/MarketComponents/components/LeagueSchedule.d.ts +10 -0
  231. package/lib/typescript/src/MarketComponents/components/LeagueSchedule.d.ts.map +1 -0
  232. package/lib/typescript/src/MarketComponents/components/OrderBookChart.d.ts.map +1 -1
  233. package/lib/typescript/src/index.d.ts +2 -1
  234. package/lib/typescript/src/index.d.ts.map +1 -1
  235. package/package.json +1 -1
  236. package/src/Authenticator/index.tsx +1 -1
  237. package/src/Competition/components/CompetitionInfoCard.tsx +4 -0
  238. package/src/Competition/components/CompetitionLeaderboard.tsx +1 -1
  239. package/src/Competition/index.tsx +16 -29
  240. package/src/CompetitionManager/api/index.ts +49 -6
  241. package/src/CompetitionManager/components/AdminCompetitionList.tsx +247 -176
  242. package/src/CompetitionManager/components/AthleteSelector.tsx +14 -5
  243. package/src/CompetitionManager/components/CompanySelector.tsx +58 -0
  244. package/src/CompetitionManager/components/CompetitionContestsForm.tsx +96 -84
  245. package/src/CompetitionManager/components/CompetitionHeader.tsx +5 -4
  246. package/src/CompetitionManager/components/CompetitionInfoForm.tsx +59 -29
  247. package/src/CompetitionManager/components/CompetitionMatchMarketCard.tsx +9 -14
  248. package/src/CompetitionManager/components/CompetitionSettingsForm.tsx +30 -36
  249. package/src/CompetitionManager/components/ContestSelector.tsx +2 -2
  250. package/src/CompetitionManager/components/ContestSettingsForm.tsx +24 -25
  251. package/src/CompetitionManager/components/GroupSelector.tsx +57 -0
  252. package/src/CompetitionManager/components/MarketSelector.tsx +14 -13
  253. package/src/CompetitionManager/components/PlayerSelector.tsx +1 -1
  254. package/src/CompetitionManager/index.tsx +49 -33
  255. package/src/Components/Toggle.tsx +3 -2
  256. package/src/CreateEngagement/api/index.ts +138 -0
  257. package/src/CreateEngagement/index.tsx +874 -0
  258. package/src/MarketComponents/api/index.ts +60 -1
  259. package/src/MarketComponents/components/LeagueSchedule.tsx +161 -0
  260. package/src/MarketComponents/components/OrderBookChart.tsx +9 -10
  261. package/src/constants/useColors.tsx +1 -1
  262. package/src/index.tsx +2 -0
  263. package/src/types.d.ts +8 -2
@@ -1,13 +1,17 @@
1
1
  import React, { useEffect, useState } from "react"
2
- import { View, FlatList, TouchableOpacity, Image, ActivityIndicator, ScrollView } from "react-native"
2
+ import { FlatList, Image, ActivityIndicator, type ViewStyle } from "react-native"
3
3
  import { ManageCompetitionApi, ManageCompetitionHelpers } from "../api"
4
- import Colors from "../../constants/colors"
5
- import { view_styles } from "../../constants/styles"
6
- import { Button, Icons, Text } from "../../Components"
4
+ import { Icons, Toggle } from "../../Components"
7
5
  import type { BracketCompetitionProps, CompetitionPlayerBracketProps, CompetitionPlayerProps, CompetitionProps, CompetitionRecordProps, CompetitionResultProps, CompetitionSeasonPlayerProps, CompetitionSeasonProps, CompetitionSeasonResultProps, PlayerBracketProps, SquaresCompetitionProps } from "../../types"
6
+ import { Button, Text, View } from "../../Components/Themed"
7
+ import { useColors } from "../../constants/useColors"
8
+ import Pagination from "../../Components/Pagination"
8
9
 
9
10
  type AdminCompetitionListProps = {
10
11
  width:number,
12
+ header_style?:ViewStyle,
13
+ footer_style?:ViewStyle,
14
+ float?:boolean,
11
15
  height?:number,
12
16
  onSelectCompetition:(competition:CompetitionProps) => void,
13
17
  onSelectSquaresCompetition:(squares_competition:SquaresCompetitionProps) => void,
@@ -15,14 +19,20 @@ type AdminCompetitionListProps = {
15
19
  onClose: () => void,
16
20
  onCreateNew: (engagement_type:'competitions'|'brackets'|'squares') => void
17
21
  }
18
-
19
- const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCompetition, onSelectBracketCompetition, onSelectSquaresCompetition }:AdminCompetitionListProps) => {
22
+ const sections = ['header','toggle', 'active_past_toggle', 'pagination', 'loading', 'admin_competitions','competitions','admin_squares','squares', 'admin_brackets', 'brackets']
23
+ const AdminCompetitionList = ({ header_style, float, footer_style, onClose, onCreateNew, onSelectCompetition, onSelectBracketCompetition, onSelectSquaresCompetition }:AdminCompetitionListProps) => {
24
+ const Colors = useColors();
20
25
  const [ list_data, setData ] = useState<{
21
26
  loading: boolean,
22
27
  active_engagement: 'competitions'|'squares'|'brackets'
23
28
  active_tab:'active'|'closed',
24
29
  offset:number,
30
+ show_admin_competitions:boolean,
31
+ show_admin_squares:boolean,
32
+ show_admin_brackets:boolean,
25
33
  admin_competitions:CompetitionProps[],
34
+ admin_squares:SquaresCompetitionProps[],
35
+ admin_brackets:BracketCompetitionProps[],
26
36
  competitions:CompetitionProps[],
27
37
  competition_players:CompetitionPlayerProps[],
28
38
  competition_records:CompetitionRecordProps[],
@@ -42,8 +52,13 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
42
52
  competitions: [],
43
53
  competition_players:[],
44
54
  competition_records:[],
55
+ show_admin_brackets: false,
56
+ show_admin_competitions: false,
57
+ show_admin_squares: false,
45
58
  competition_results:[],
59
+ admin_brackets:[],
46
60
  admin_competitions:[],
61
+ admin_squares:[],
47
62
  competition_seasons: [],
48
63
  competition_season_players:[],
49
64
  competition_season_results:[],
@@ -52,7 +67,7 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
52
67
  player_brackets: [],
53
68
  squares_competitions: []
54
69
  })
55
- const { offset, active_tab, active_engagement, loading, competitions, admin_competitions, competition_results, bracket_competitions, squares_competitions, competition_player_brackets } = list_data;
70
+ const { offset, active_tab, active_engagement, show_admin_brackets, show_admin_competitions, show_admin_squares, admin_squares, admin_brackets, loading, competitions, admin_competitions, competition_results, bracket_competitions, squares_competitions, competition_player_brackets } = list_data;
56
71
 
57
72
  useEffect(() => {
58
73
  ManageCompetitionApi.setEnvironment();
@@ -96,20 +111,24 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
96
111
  return
97
112
  case 'brackets':
98
113
  if(active_tab == 'active'){
114
+ const admin_bracks_active = await ManageCompetitionApi.getMyActiveAdminBracketCompetitions()
99
115
  const b_resp = await ManageCompetitionApi.getMyActiveBracketCompetitions();
100
116
  setData({
101
117
  ...list_data,
102
118
  loading:false,
119
+ admin_brackets: admin_bracks_active,
103
120
  bracket_competitions: b_resp.bracket_competitions,
104
121
  player_brackets: b_resp.player_brackets,
105
122
  competition_player_brackets: b_resp.competition_player_brackets,
106
123
  offset
107
124
  })
108
125
  } else {
126
+ const admin_bracks_history = await ManageCompetitionApi.getMyHistoryAdminBracketCompetitions(offset);
109
127
  const b_resp = await ManageCompetitionApi.getMyHistoryBracketCompetitions(offset);
110
128
  setData({
111
129
  ...list_data,
112
130
  loading:false,
131
+ admin_brackets: admin_bracks_history,
113
132
  bracket_competitions: b_resp.bracket_competitions,
114
133
  player_brackets: b_resp.player_brackets,
115
134
  competition_player_brackets: b_resp.competition_player_brackets,
@@ -119,18 +138,22 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
119
138
  return
120
139
  case 'squares':
121
140
  if(active_tab == 'active'){
141
+ const active_admin_squares = await ManageCompetitionApi.getMyActiveAdminSquares();
122
142
  const s_resp = await ManageCompetitionApi.getMyActiveSquaresCompetitions();
123
143
  setData({
124
144
  ...list_data,
125
145
  loading:false,
126
146
  offset,
147
+ admin_squares: active_admin_squares,
127
148
  squares_competitions: s_resp.squares_competitions
128
149
  })
129
150
  } else {
151
+ const past_admin_squares = await ManageCompetitionApi.getMyHistoryAdminSquares(offset);
130
152
  const s_resp = await ManageCompetitionApi.getMyHistorySquaresCompetitions(offset);
131
153
  setData({
132
154
  ...list_data,
133
155
  loading:false,
156
+ admin_squares: past_admin_squares,
134
157
  offset,
135
158
  squares_competitions: s_resp.squares_competitions
136
159
  })
@@ -144,56 +167,41 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
144
167
  const competition_result = competition_results.find(cr => cr.competition_id == data.item.competition_id);
145
168
  const cl = data.item.market_type == 'FOR_MONEY' ? '$' : 'E'
146
169
  return (
147
- <TouchableOpacity style={{ ...view_styles.body_row, padding:15, borderBottomWidth:1, borderColor:Colors.shades.shade600 }} onPress={() => onSelectCompetition(data.item)}>
170
+ <Button style={{ flexDirection:'row', alignItems:'center', borderRadius:0, padding:15, borderBottomWidth:1, borderColor:Colors.borders.light }} onPress={() => onSelectCompetition(data.item)}>
148
171
  <Image
149
172
  source={{ uri: data.item.image?.url }}
150
173
  style={{ height:30, width:30, borderRadius:4 }}
151
174
  resizeMode="cover"
152
175
  />
153
176
  <View style={{ flex:1, marginLeft:10 }}>
154
- <Text theme="header_2">{data.item.competition_name}</Text>
155
- <Text style={{ marginTop:3 }} theme="body">{data.item.competition_description}</Text>
177
+ <Text theme="h2">{data.item.competition_name}</Text>
178
+ <Text style={{ marginTop:3 }} theme="description">{data.item.competition_description}</Text>
156
179
  </View>
157
180
  {competition_result ?
158
181
  <View style={{ marginRight:10, marginLeft:10, justifyContent:'center' }}>
159
- <Text size={12} color={Colors.brand.midnight} weight="bold" textAlign="center">{ManageCompetitionHelpers.formatPlace(competition_result.place)}</Text>
160
- <Text size={12} color={Colors.brand.midnight} textAlign="center" style={{ marginTop:3 }}>{cl}{competition_result.winnings.toFixed(2)}</Text>
182
+ <Text size={12}>{ManageCompetitionHelpers.formatPlace(competition_result.place)}</Text>
183
+ <Text size={12} style={{ marginTop:3 }}>{cl}{competition_result.winnings.toFixed(2)}</Text>
161
184
  </View>
162
185
  :<></>}
163
- <Icons.ChevronIcon direction='right' size={8} color={Colors.brand.midnight}/>
164
- </TouchableOpacity>
165
- )
166
- }
167
-
168
- const renderAdminCompetitions = (data: { item:CompetitionProps, index:number }) => {
169
- return (
170
- <TouchableOpacity style={{ borderRadius:8, backgroundColor:Colors.shades.white, width: width / 3, borderWidth:1, borderColor:Colors.shades.shade600 }} onPress={() => onSelectCompetition(data.item)}>
171
- <Image
172
- source={{ uri: data.item.image?.url }}
173
- style={{ height:width/3*0.5, width:width/3, borderRadius:4, borderBottomRightRadius:0, borderBottomLeftRadius:0 }}
174
- resizeMode="cover"
175
- />
176
- <View style={{ marginTop:5, padding:10 }}>
177
- <Text size={14} textAlign="center" weight='bold'>{data.item.competition_name}</Text>
178
- </View>
179
- </TouchableOpacity>
186
+ <Icons.ChevronIcon direction='right' size={8} color={Colors.text.h1}/>
187
+ </Button>
180
188
  )
181
189
  }
182
190
 
183
191
  const renderSquares = (data: { item:SquaresCompetitionProps, index:number }) => {
184
192
  return (
185
- <TouchableOpacity style={{ ...view_styles.body_row, padding:10, borderBottomWidth:1, borderColor:Colors.shades.shade600 }} onPress={() => onSelectSquaresCompetition(data.item)}>
193
+ <Button style={{ flexDirection:'row', alignItems:'center', borderRadius:0, padding:10, borderBottomWidth:1, borderColor:Colors.borders.light }} onPress={() => onSelectSquaresCompetition(data.item)}>
186
194
  <Image
187
195
  source={{ uri: data.item.image?.url }}
188
196
  style={{ height:30, width:30, borderRadius:4 }}
189
197
  resizeMode="cover"
190
198
  />
191
199
  <View style={{ flex:1, marginLeft:10 }}>
192
- <Text theme="header_2">{data.item.sq_comp_name}</Text>
193
- <Text style={{ marginTop:3 }} theme="body">{data.item.sq_comp_description}</Text>
200
+ <Text theme="h2">{data.item.sq_comp_name}</Text>
201
+ <Text style={{ marginTop:3 }} theme="description">{data.item.sq_comp_description}</Text>
194
202
  </View>
195
- <Icons.ChevronIcon direction='right' size={8} color={Colors.brand.midnight}/>
196
- </TouchableOpacity>
203
+ <Icons.ChevronIcon direction='right' size={8} color={Colors.text.h1}/>
204
+ </Button>
197
205
  )
198
206
  }
199
207
 
@@ -201,175 +209,238 @@ const AdminCompetitionList = ({ width, height, onClose, onCreateNew, onSelectCom
201
209
  const competition_player_bracket = competition_player_brackets.find(cpb => cpb.bracket_competition_id == data.item.bracket_competition_id);
202
210
  const cl = data.item.market_type == 'FOR_MONEY' ? '$' : 'E'
203
211
  return (
204
- <TouchableOpacity style={{ ...view_styles.body_row, padding:10, borderBottomWidth:1, borderColor:Colors.shades.shade600 }} onPress={() => onSelectBracketCompetition(data.item)}>
212
+ <Button style={{ flexDirection:'row', alignItems:'center', borderRadius:0, padding:10, borderBottomWidth:1, borderColor:Colors.borders.light }} onPress={() => onSelectBracketCompetition(data.item)}>
205
213
  <Image
206
214
  source={{ uri: data.item.image?.url }}
207
215
  style={{ height:30, width:30, borderRadius:4 }}
208
216
  resizeMode="cover"
209
217
  />
210
218
  <View style={{ flex:1, marginLeft:10 }}>
211
- <Text theme="header_2">{data.item.competition_name}</Text>
212
- <Text style={{ marginTop:3 }} theme="body">{data.item.competition_description}</Text>
219
+ <Text theme="h2">{data.item.competition_name}</Text>
220
+ <Text style={{ marginTop:3 }} theme="description">{data.item.competition_description}</Text>
213
221
  </View>
214
222
  {competition_player_bracket ?
215
223
  <View style={{ marginRight:10, marginLeft:10, justifyContent:'center' }}>
216
- <Text size={12} color={Colors.brand.midnight} weight="bold" textAlign="center">{ManageCompetitionHelpers.formatPlace(competition_player_bracket.place)}</Text>
217
- <Text size={12} color={Colors.brand.midnight} textAlign="center" style={{ marginTop:3 }}>{cl}{competition_player_bracket.winnings.toFixed(2)}</Text>
224
+ <Text size={12}>{ManageCompetitionHelpers.formatPlace(competition_player_bracket.place)}</Text>
225
+ <Text size={12} style={{ marginTop:3 }}>{cl}{competition_player_bracket.winnings.toFixed(2)}</Text>
218
226
  </View>
219
227
  :<></>}
220
- <Icons.ChevronIcon direction='right' size={8} color={Colors.brand.midnight}/>
221
- </TouchableOpacity>
228
+ <Icons.ChevronIcon direction='right' size={8} color={Colors.text.h1}/>
229
+ </Button>
222
230
  )
223
231
  }
224
232
 
225
- return (
226
- <View style={{ maxWidth:width, minWidth:300, minHeight:400, height:height, backgroundColor:Colors.shades.white }}>
227
- <View style={{ ...view_styles.section_header }}>
228
- <View style={{ flex:1 }}>
229
- <Text theme='header'>MY ENGAGEMENTS</Text>
230
- <Text style={{ marginTop:3 }} theme="body">Use the buttons below to see your active and past engagements (competitions, brackets, squares, etc)</Text>
231
- </View>
232
- </View>
233
- <View style={{ flexDirection:'row', margin:10, borderRadius:22, borderWidth:4, borderColor:Colors.shades.shade100 }}>
234
- <Button
235
- title="COMPETITIONS"
236
- title_color={active_engagement == 'competitions' ? Colors.shades.white : Colors.brand.midnight}
237
- backgroundColor={active_engagement == 'competitions' ? Colors.brand.midnight: Colors.shades.white}
238
- title_weight={active_engagement == 'competitions' ? 'bold' : 'regular'}
239
- borderRadius={0}
240
- padding={10}
241
- style={{ flex:1, borderTopLeftRadius:22, borderBottomLeftRadius:22 }}
242
- onPress={() => setData({ ...list_data, active_engagement: 'competitions' })}
243
- />
244
- <Button
245
- title="SQUARES"
246
- title_color={active_engagement == 'squares' ? Colors.shades.white : Colors.brand.midnight}
247
- backgroundColor={active_engagement == 'squares' ? Colors.brand.midnight: Colors.shades.white}
248
- title_weight={active_engagement == 'squares' ? 'bold' : 'regular'}
249
- borderRadius={0}
250
- padding={10}
251
- style={{ flex:1 }}
252
- onPress={() => setData({ ...list_data, active_engagement: 'squares' })}
253
- />
254
- <Button
255
- title="BRACKETS"
256
- title_color={active_engagement == 'brackets' ? Colors.shades.white : Colors.brand.midnight}
257
- backgroundColor={active_engagement == 'brackets' ? Colors.brand.midnight: Colors.shades.white}
258
- title_weight={active_engagement == 'brackets' ? 'bold' : 'regular'}
259
- borderRadius={0}
260
- padding={10}
261
- style={{ flex:1, borderTopRightRadius:22, borderBottomRightRadius:22 }}
262
- onPress={() => setData({ ...list_data, active_engagement: 'brackets' })}
263
- />
264
- </View>
265
- <ScrollView style={{ ...view_styles.section_body, padding:0 }}>
266
-
267
- <View style={{ ...view_styles.section_header, backgroundColor:Colors.shades.shade100 }}>
268
- <View style={{ flex:1, marginRight:10 }}>
269
- <Text theme="header">Showing {active_tab} {active_engagement}</Text>
270
- <Text style={{ marginTop: 3}} theme="body">Use the toggle to the right to see active / closed engagements</Text>
271
- </View>
272
- <View style={{ flexDirection:'row' }}>
233
+ const renderSections = (data:{ item:string, index:number }) => {
234
+ switch(data.item){
235
+ case 'header':
236
+ return (
237
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10, ...header_style }}>
238
+ <View transparent style={{ flex:1 }}>
239
+ <Text theme="h1">My Admin Engagements</Text>
240
+ <Text theme="description" style={{ marginTop:3 }}>Use the buttons below to see your active and past engagements (competitions, brackets, squares, etc)</Text>
241
+ </View>
273
242
  <Button
274
- title="ACTIVE"
275
- title_color={active_tab == 'active' ? Colors.shades.white : Colors.brand.midnight}
276
- backgroundColor={active_tab == 'active' ? Colors.utility.success: Colors.shades.white}
277
- title_weight={active_tab == 'active' ? 'bold' : 'regular'}
278
- borderRadius={0}
279
- style={{ borderTopLeftRadius:22, borderBottomLeftRadius:22 }}
280
- padding={10}
281
- onPress={() => setData({ ...list_data, active_tab: 'active' })}
243
+ title="X"
244
+ float
245
+ title_color={Colors.text.error}
246
+ onPress={() => onClose()}
282
247
  />
283
- <Button
284
- title="CLOSED"
285
- title_color={active_tab == 'closed' ? Colors.shades.white : Colors.brand.midnight}
286
- backgroundColor={active_tab == 'closed' ? Colors.utility.error: Colors.shades.white}
287
- title_weight={active_tab == 'closed' ? 'bold' : 'regular'}
288
- borderRadius={0}
289
- padding={10}
290
- style={{ borderTopRightRadius:22, borderBottomRightRadius:22 }}
291
- onPress={() => setData({ ...list_data, active_tab: 'closed' })}
248
+ </View>
249
+ )
250
+ case 'toggle':
251
+ return (
252
+ <View style={{padding:10}}>
253
+ <Toggle
254
+ options={[
255
+ { key: 'competitions', label:'Competitions' },
256
+ { key: 'squares', label: 'Squares' },
257
+ { key: 'brackets', label: 'Brackets' }
258
+ ]}
259
+ selected_option={active_engagement}
260
+ onSelectOption={(o) => setData({ ...list_data, active_engagement: o as 'competitions'|'brackets'|'squares' })}
292
261
  />
293
262
  </View>
294
- </View>
295
- {active_tab == 'closed' ?
296
- <View style={{ ...view_styles.section_footer }}>
297
- {offset > 0 ?
298
- <Button
299
- title='PREV'
300
- title_color={Colors.brand.electric}
301
- backgroundColor='transparent'
302
- onPress={() => getDataFromServer(offset - 1)}
303
- />
304
- :<View/>}
305
- <View style={{ flex:1 }} />
306
- <Button
307
- title='NEXT'
308
- title_color={Colors.brand.electric}
309
- backgroundColor='transparent'
310
- onPress={() => getDataFromServer(offset + 1)}
311
- />
312
- </View>
313
- :<></>}
314
- {loading ?
315
- <ActivityIndicator style={{ padding:20, alignSelf:'center' }} size='large' color={Colors.brand.midnight} />
316
- :<></>}
317
- {active_engagement == 'competitions' ?
318
- <View>
319
- {admin_competitions.length > 0 ?
320
- <View style={{ padding:10, backgroundColor:Colors.incentive.gold_faded }}>
321
- <View style={{ padding:10 }}>
322
- <Text theme="header_2">Admin Competitions</Text>
323
- <Text style={{ marginTop:4 }} theme="body">These are the competitions you are an admin of</Text>
263
+ )
264
+ case 'active_past_toggle':
265
+ return (
266
+ <View style={{ padding:10 }}>
267
+ <Toggle
268
+ options={[
269
+ { key: 'closed', label:'Closed' },
270
+ { key: 'active', label: 'Active' }
271
+ ]}
272
+ selected_option={active_tab}
273
+ onSelectOption={(o) => setData({ ...list_data, active_tab: o as 'active'|'closed' })}
274
+ />
275
+ </View>
276
+ )
277
+ case 'pagination':
278
+ if(active_tab != 'closed'){ return <></> }
279
+ return (
280
+ <View transparent>
281
+ <Pagination
282
+ offset={offset}
283
+ onNext={() => getDataFromServer(offset + 1)}
284
+ onPrevious={() => getDataFromServer(offset - 1)}
285
+ />
286
+ </View>
287
+ )
288
+ case 'loading':
289
+ if(!loading){ return <></> }
290
+ return (
291
+ <View transparent>
292
+ <ActivityIndicator style={{ alignSelf:'center', padding:20 }} size='large' color={Colors.text.h1} />
293
+ </View>
294
+ )
295
+ case 'admin_competitions':
296
+ if(active_engagement != 'competitions'){ return <></> }
297
+ if(admin_competitions.length == 0){ return <></> }
298
+ return (
299
+ <View>
300
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
301
+ <View transparent style={{ flex:1 }}>
302
+ <Text theme="h1">Admin Competitions</Text>
303
+ <Text theme="description" style={{ marginTop:3 }}>Below are the competitions that you are the admin of</Text>
304
+ </View>
305
+ <Button transparent onPress={() => setData({ ...list_data, show_admin_competitions:!show_admin_competitions })}>
306
+ <Icons.ChevronIcon size={10} direction={show_admin_competitions ? 'up' : 'down'} color={Colors.text.action} />
307
+ </Button>
324
308
  </View>
309
+ {show_admin_competitions ?
325
310
  <FlatList
326
- key='admin_competition'
327
311
  data={admin_competitions}
328
- horizontal
329
- renderItem={renderAdminCompetitions}
330
- keyExtractor={(item) => item.competition_id.toString()}
312
+ key={'admin_comps_list'}
313
+ keyExtractor={item => `admin_${item.competition_id}`}
314
+ renderItem={renderCompetitions}
331
315
  />
316
+ :<></>}
332
317
  </View>
333
- :<></>}
334
- <FlatList
335
- key={'my_competitions'}
336
- data={competitions}
337
- renderItem={renderCompetitions}
338
- keyExtractor={(item) => item.competition_id.toString()}
339
- />
340
- </View>
341
- :active_engagement == 'brackets' ?
342
- <FlatList
343
- data={bracket_competitions}
344
- renderItem={renderBrackets}
345
- keyExtractor={(item) => item.bracket_competition_id.toString()}
346
- />
347
- :active_engagement == 'squares' ?
318
+ )
319
+ case 'competitions':
320
+ if(active_engagement != 'competitions'){ return <></> }
321
+ if(competitions.length == 0){ return <></> }
322
+ return (
323
+ <View>
324
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
325
+ <View transparent style={{ flex:1 }}>
326
+ <Text theme="h1">My Competitions</Text>
327
+ <Text theme="description" style={{ marginTop:3 }}>Below are the competitions that you have joined</Text>
328
+ </View>
329
+ </View>
330
+ <FlatList
331
+ data={competitions}
332
+ key={'competitions_list'}
333
+ keyExtractor={item => item.competition_id.toString()}
334
+ renderItem={renderCompetitions}
335
+ />
336
+ </View>
337
+ )
338
+ case 'admin_squares':
339
+ if(active_engagement != 'squares'){ return <></> }
340
+ if(admin_squares.length == 0){ return <></> }
341
+ return (
342
+ <View>
343
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
344
+ <View transparent style={{ flex:1 }}>
345
+ <Text theme="h1">Admin Squares Competitions</Text>
346
+ <Text theme="description" style={{ marginTop:3 }}>Below are the squares competitions that you are the admin of</Text>
347
+ </View>
348
+ <Button transparent onPress={() => setData({ ...list_data, show_admin_squares:!show_admin_squares })}>
349
+ <Icons.ChevronIcon size={10} direction={show_admin_squares ? 'up' : 'down'} color={Colors.text.action} />
350
+ </Button>
351
+ </View>
352
+ {show_admin_squares ?
353
+ <FlatList
354
+ data={admin_squares}
355
+ key={'admin_squares_list'}
356
+ keyExtractor={item => `admin_${item.sq_comp_id}`}
357
+ renderItem={renderSquares}
358
+ />
359
+ :<></>}
360
+ </View>
361
+ )
362
+ case 'squares':
363
+ if(active_engagement != 'squares'){ return <></> }
364
+ if(squares_competitions.length == 0){ return <></> }
365
+ return (
366
+ <View>
367
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
368
+ <View transparent style={{ flex:1 }}>
369
+ <Text theme="h1">Squares Competitions</Text>
370
+ <Text theme="description" style={{ marginTop:3 }}>Below are the squares competitions that you are participating in</Text>
371
+ </View>
372
+ </View>
373
+ <FlatList
374
+ data={squares_competitions}
375
+ key={'squares_list'}
376
+ keyExtractor={item => `${item.sq_comp_id}`}
377
+ renderItem={renderSquares}
378
+ />
379
+ </View>
380
+ )
381
+ case 'admin_brackets':
382
+ if(active_engagement != 'brackets'){ return <></> }
383
+ if(admin_brackets.length == 0){ return <></> }
384
+ return (
385
+ <View>
386
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
387
+ <View transparent style={{ flex:1 }}>
388
+ <Text theme="h1">Admin Bracket Competitions</Text>
389
+ <Text theme="description" style={{ marginTop:3 }}>Below are the bracket competitions that you are the admin of</Text>
390
+ </View>
391
+ <Button transparent onPress={() => setData({ ...list_data, show_admin_brackets:!show_admin_brackets })}>
392
+ <Icons.ChevronIcon size={10} direction={show_admin_brackets ? 'up' : 'down'} color={Colors.text.action} />
393
+ </Button>
394
+ </View>
395
+ {show_admin_brackets ?
396
+ <FlatList
397
+ data={admin_brackets}
398
+ key={'admin_brackets_list'}
399
+ keyExtractor={item => `admin_${item.bracket_competition_id}`}
400
+ renderItem={renderBrackets}
401
+ />
402
+ :<></>}
403
+ </View>
404
+ )
405
+ case 'brackets':
406
+ if(active_engagement != 'brackets'){ return <></> }
407
+ if(bracket_competitions.length == 0){ return <></> }
408
+ return (
409
+ <View>
410
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
411
+ <View transparent style={{ flex:1 }}>
412
+ <Text theme="h1">Bracket Competitions</Text>
413
+ <Text theme="description" style={{ marginTop:3 }}>Below are the bracket competitions that you have participated in</Text>
414
+ </View>
415
+ </View>
416
+ <FlatList
417
+ data={bracket_competitions}
418
+ key={'brackets_list'}
419
+ keyExtractor={item => `${item.bracket_competition_id}`}
420
+ renderItem={renderBrackets}
421
+ />
422
+ </View>
423
+ )
424
+ default: return <></>
425
+ }
426
+ }
427
+
428
+ return (
429
+ <View float={float} style={{ flex:1 }}>
430
+ <View transparent style={{ flex:1 }}>
348
431
  <FlatList
349
- data={squares_competitions}
350
- renderItem={renderSquares}
351
- keyExtractor={(item) => item.sq_comp_id.toString()}
432
+ data={sections}
433
+ key={'admin_list'}
434
+ keyExtractor={item => item}
435
+ renderItem={renderSections}
352
436
  />
353
- :<></>}
354
- </ScrollView>
355
-
356
-
357
- <View style={{ ...view_styles.section_footer }}>
437
+ </View>
438
+ <View type='footer' style={{ flexDirection:'row', alignItems:'center', padding:10, ...footer_style }}>
358
439
  <Button
359
- title="CREATE NEW"
360
- style={{ flex:1, marginRight:5 }}
361
- title_color={Colors.shades.white}
362
- backgroundColor={Colors.utility.success}
363
- padding={15}
440
+ style={{ flex:1 }}
364
441
  onPress={() => onCreateNew(active_engagement)}
365
- />
366
- <Button
367
- title="CLOSE"
368
- title_color={Colors.shades.white}
369
- style={{ flex:2, marginRight:8 }}
370
- padding={15}
371
- backgroundColor={Colors.utility.error}
372
- onPress={() => onClose()}
442
+ type="success"
443
+ title="CREATE NEW ENGAGEMENT"
373
444
  />
374
445
  </View>
375
446
  </View>
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react';
2
2
  import { FlatList, Image, ActivityIndicator } from 'react-native';
3
3
  import { Switch, Toggle } from '../../Components';
4
4
  import SearchBox from '../../Components/SearchBox';
5
- import type { AthleteProps, EventProps, MatchProps, TournamentProps } from '../../types';
5
+ import type { AthleteProps, EventProps, MatchProps, TournamentProps, TradeProps } from '../../types';
6
6
  import { ManageCompetitionMatchApi } from '../api';
7
7
  import { Button, Text, View } from '../../Components/Themed';
8
8
  import { useColors } from '../../constants/useColors';
@@ -12,28 +12,32 @@ type AthleteSelectorProps = {
12
12
  tournament?:TournamentProps,
13
13
  match?:MatchProps,
14
14
  selected_athletes: string[],
15
+ trades:TradeProps[],
15
16
  filtered_athletes:string[],
16
17
  filtered_positions:string[],
18
+ active_market?:string,
17
19
  onSelectAthlete:(athlete:AthleteProps) => void,
18
20
  onDeselectAthlete:(athlete:AthleteProps) => void,
19
21
  onClose:() => void
20
22
  }
21
23
 
22
- const AthleteSelector = ({ event, tournament, match, filtered_athletes, selected_athletes, filtered_positions, onSelectAthlete, onDeselectAthlete, onClose }:AthleteSelectorProps) => {
24
+ const AthleteSelector = ({ event, tournament, match, trades, active_market, filtered_athletes, selected_athletes, filtered_positions, onSelectAthlete, onDeselectAthlete, onClose }:AthleteSelectorProps) => {
23
25
  const Colors = useColors();
24
26
  const [ search_value, setSearchValue ] = useState('');
25
27
  const [ selector_data, setSelectorData ] = useState<{
26
28
  loading:boolean,
27
29
  athletes:AthleteProps[],
30
+ trade_athletes:AthleteProps[],
28
31
  event_side:string
29
32
  }>({
30
33
  loading: false,
31
34
  athletes: [],
35
+ trade_athletes: [],
32
36
  event_side: 'away'
33
37
  })
34
- const { athletes, loading, event_side } = selector_data;
38
+ const { loading, event_side, trade_athletes } = selector_data;
35
39
 
36
- let available_athletes = athletes.filter(a => `${a.first_name} ${a.last_name}`.toLowerCase().includes(search_value.toLowerCase()));
40
+ let available_athletes = trade_athletes.filter(a => `${a.first_name} ${a.last_name}`.toLowerCase().includes(search_value.toLowerCase()));
37
41
  if(filtered_athletes.length > 0){
38
42
  available_athletes = available_athletes.filter(a => filtered_athletes.map(a => a.toString()).includes(a.athlete_id.toString()))
39
43
  }
@@ -54,11 +58,16 @@ const AthleteSelector = ({ event, tournament, match, filtered_athletes, selected
54
58
  if(event){
55
59
  let away_athletes = await ManageCompetitionMatchApi.getAthletesByTeamId(event.away_team_id);
56
60
  let home_athletes = await ManageCompetitionMatchApi.getAthletesByTeamId(event.home_team_id);
57
- avail_athletes = away_athletes.concat(home_athletes)
61
+ avail_athletes = away_athletes.concat(home_athletes);
58
62
  }
63
+ //Get all the side ids for this market
64
+ let trade_athlete_ids = [ ...new Set(trades.filter(t => t.event_type == 'team' && t.event_id == event?.event_id && t.market_id == active_market && t.side_type == 'athlete').map(t => t.side_id)) ]
65
+ let trade_athletes_avail = avail_athletes.filter(a => trade_athlete_ids.includes(a.athlete_id))
66
+ //Lets filter
59
67
  setSelectorData({
60
68
  ...selector_data,
61
69
  loading:false,
70
+ trade_athletes: trade_athletes_avail,
62
71
  athletes: avail_athletes
63
72
  })
64
73
  }