be-components 1.0.5 → 1.0.7

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 (38) hide show
  1. package/lib/commonjs/Bracket/api/index.js +9 -1
  2. package/lib/commonjs/Bracket/api/index.js.map +1 -1
  3. package/lib/commonjs/Bracket/components/BracketCompetitionCard.js +56 -10
  4. package/lib/commonjs/Bracket/components/BracketCompetitionCard.js.map +1 -1
  5. package/lib/commonjs/Bracket/components/BracketPlay/index.js +15 -4
  6. package/lib/commonjs/Bracket/components/BracketPlay/index.js.map +1 -1
  7. package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js +34 -7
  8. package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js.map +1 -1
  9. package/lib/commonjs/Bracket/components/JoinCompetitionCard.js +34 -4
  10. package/lib/commonjs/Bracket/components/JoinCompetitionCard.js.map +1 -1
  11. package/lib/commonjs/Bracket/index.js +0 -2
  12. package/lib/commonjs/Bracket/index.js.map +1 -1
  13. package/lib/module/Bracket/api/index.js +9 -1
  14. package/lib/module/Bracket/api/index.js.map +1 -1
  15. package/lib/module/Bracket/components/BracketCompetitionCard.js +56 -10
  16. package/lib/module/Bracket/components/BracketCompetitionCard.js.map +1 -1
  17. package/lib/module/Bracket/components/BracketPlay/index.js +15 -4
  18. package/lib/module/Bracket/components/BracketPlay/index.js.map +1 -1
  19. package/lib/module/Bracket/components/CompetitionLeaderboard.js +35 -8
  20. package/lib/module/Bracket/components/CompetitionLeaderboard.js.map +1 -1
  21. package/lib/module/Bracket/components/JoinCompetitionCard.js +34 -6
  22. package/lib/module/Bracket/components/JoinCompetitionCard.js.map +1 -1
  23. package/lib/module/Bracket/index.js +0 -2
  24. package/lib/module/Bracket/index.js.map +1 -1
  25. package/lib/typescript/src/Bracket/api/index.d.ts +1 -0
  26. package/lib/typescript/src/Bracket/api/index.d.ts.map +1 -1
  27. package/lib/typescript/src/Bracket/components/BracketCompetitionCard.d.ts.map +1 -1
  28. package/lib/typescript/src/Bracket/components/BracketPlay/index.d.ts.map +1 -1
  29. package/lib/typescript/src/Bracket/components/CompetitionLeaderboard.d.ts.map +1 -1
  30. package/lib/typescript/src/Bracket/components/JoinCompetitionCard.d.ts.map +1 -1
  31. package/lib/typescript/src/Bracket/index.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/Bracket/api/index.ts +5 -1
  34. package/src/Bracket/components/BracketCompetitionCard.tsx +31 -12
  35. package/src/Bracket/components/BracketPlay/index.tsx +11 -8
  36. package/src/Bracket/components/CompetitionLeaderboard.tsx +28 -7
  37. package/src/Bracket/components/JoinCompetitionCard.tsx +13 -6
  38. package/src/Bracket/index.tsx +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BracketCompetitionCard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/BracketCompetitionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAuE,6BAA6B,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAqB,MAAM,aAAa,CAAC;AASrQ,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAC,aAAa,CAAC;IACtB,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,sBAAsB,CAAC,EAAC,MAAM,CAAC;IAC/B,MAAM,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,aAAa,EAAC,CAAC,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,eAAe,EAAC,kBAAkB,EAAE,CAAC;QAAC,2BAA2B,EAAC,6BAA6B,EAAE,CAAA;KAAC,KAAK,IAAI,CAAC;IACvJ,kBAAkB,EAAC,CAAC,sBAAsB,EAAC,MAAM,KAAK,IAAI,CAAC;IAC3D,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAC,0BAA0B,EAAC,6BAA6B,CAAC;QAAC,mBAAmB,EAAC,uBAAuB,CAAA;KAAC,KAAK,IAAI,CAAC;IAC5I,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAC,0BAA0B,EAAC,6BAA6B,CAAC;QAAC,mBAAmB,EAAC,uBAAuB,CAAA;KAAC,KAAK,IAAI,CAAC;IAC5I,wBAAwB,EAAC,0BAA0B,EAAE,CAAC;IACtD,uBAAuB,EAAC,6BAA6B,EAAE,CAAC;IACxD,kBAAkB,EAAC,kBAAkB,EAAE,CAAC;IACxC,OAAO,EAAC,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,QAAA,MAAM,sBAAsB,uQAAuQ,2BAA2B,sBA4T7T,CAAA;AAQD,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"BracketCompetitionCard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/BracketCompetitionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,uBAAuB,EAAuE,6BAA6B,EAAE,0BAA0B,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAqB,MAAM,aAAa,CAAC;AASrQ,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAC,aAAa,CAAC;IACtB,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,sBAAsB,CAAC,EAAC,MAAM,CAAC;IAC/B,MAAM,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,aAAa,EAAC,CAAC,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE;QAAC,UAAU,EAAC,MAAM,CAAC;QAAC,eAAe,EAAC,kBAAkB,EAAE,CAAC;QAAC,2BAA2B,EAAC,6BAA6B,EAAE,CAAA;KAAC,KAAK,IAAI,CAAC;IACvJ,kBAAkB,EAAC,CAAC,sBAAsB,EAAC,MAAM,KAAK,IAAI,CAAC;IAC3D,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAC,0BAA0B,EAAC,6BAA6B,CAAC;QAAC,mBAAmB,EAAC,uBAAuB,CAAA;KAAC,KAAK,IAAI,CAAC;IAC5I,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAC,0BAA0B,EAAC,6BAA6B,CAAC;QAAC,mBAAmB,EAAC,uBAAuB,CAAA;KAAC,KAAK,IAAI,CAAC;IAC5I,wBAAwB,EAAC,0BAA0B,EAAE,CAAC;IACtD,uBAAuB,EAAC,6BAA6B,EAAE,CAAC;IACxD,kBAAkB,EAAC,kBAAkB,EAAE,CAAC;IACxC,OAAO,EAAC,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,QAAA,MAAM,sBAAsB,uQAAuQ,2BAA2B,sBA+U7T,CAAA;AAQD,eAAe,sBAAsB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/Bracket/components/BracketPlay/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAoE,6BAA6B,EAAc,aAAa,EAA0B,kBAAkB,EAA8B,MAAM,gBAAgB,CAAC;AAQzO,KAAK,gBAAgB,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAC,aAAa,CAAA;IACrB,SAAS,EAAC;QAAE,KAAK,EAAC,MAAM,CAAC;QAAC,MAAM,EAAC,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAC,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IACnD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,qBAAqB,EAAE,CAAC,EAAE,EAAC,kBAAkB,EAAE,IAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,CAAC;CAChG,CAAA;AAGD,QAAA,MAAM,WAAW,gJAAgJ,gBAAgB,sBA8NhL,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/Bracket/components/BracketPlay/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAoE,6BAA6B,EAAc,aAAa,EAA0B,kBAAkB,EAA8B,MAAM,gBAAgB,CAAC;AAQzO,KAAK,gBAAgB,GAAG;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAC,aAAa,CAAA;IACrB,SAAS,EAAC;QAAE,KAAK,EAAC,MAAM,CAAC;QAAC,MAAM,EAAC,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,CAAC,EAAC,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,UAAU,EAAC,MAAM,KAAK,IAAI,CAAC;IACnD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,qBAAqB,EAAE,CAAC,EAAE,EAAC,kBAAkB,EAAE,IAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,CAAC;CAChG,CAAA;AAGD,QAAA,MAAM,WAAW,gJAAgJ,gBAAgB,sBAiOhL,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompetitionLeaderboard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/CompetitionLeaderboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAgB,6BAA6B,EAAE,kBAAkB,EAAgC,MAAM,aAAa,CAAC;AAMjI,KAAK,2BAA2B,GAAG;IAC/B,sBAAsB,EAAC,MAAM,CAAC;IAC9B,8BAA8B,EAAC,6BAA6B,EAAE,CAAC;IAC/D,kBAAkB,EAAC,kBAAkB,EAAE,CAAC;IACxC,SAAS,EAAE,OAAO,GAAC,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAC,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAC,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,sBAAsB,mIAAmI,2BAA2B,sBAgJzL,CAAA;AAED,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"CompetitionLeaderboard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/CompetitionLeaderboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAgB,6BAA6B,EAAE,kBAAkB,EAAgC,MAAM,aAAa,CAAC;AAOjI,KAAK,2BAA2B,GAAG;IAC/B,sBAAsB,EAAC,MAAM,CAAC;IAC9B,8BAA8B,EAAC,6BAA6B,EAAE,CAAC;IAC/D,kBAAkB,EAAC,kBAAkB,EAAE,CAAC;IACxC,SAAS,EAAE,OAAO,GAAC,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAC,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAC,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,sBAAsB,mIAAmI,2BAA2B,sBAoKzL,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"JoinCompetitionCard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/JoinCompetitionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjJ,KAAK,wBAAwB,GAAG;IAC5B,MAAM,CAAC,EAAC,aAAa,CAAC;IACtB,OAAO,CAAC,EAAC,OAAO,CAAC;IACjB,cAAc,EAAC,kBAAkB,CAAC;IAClC,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,mBAAmB,EAAC,uBAAuB,CAAC;IAC5C,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,kBAAkB,EAAC,CAAC,GAAG,EAAC,6BAA6B,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAC,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,QAAA,MAAM,mBAAmB,8HAA8H,wBAAwB,sBA6D9K,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"JoinCompetitionCard.d.ts","sourceRoot":"","sources":["../../../../../src/Bracket/components/JoinCompetitionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjJ,KAAK,wBAAwB,GAAG;IAC5B,MAAM,CAAC,EAAC,aAAa,CAAC;IACtB,OAAO,CAAC,EAAC,OAAO,CAAC;IACjB,cAAc,EAAC,kBAAkB,CAAC;IAClC,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,mBAAmB,EAAC,uBAAuB,CAAC;IAC5C,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,kBAAkB,EAAC,CAAC,GAAG,EAAC,6BAA6B,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAC,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,QAAA,MAAM,mBAAmB,8HAA8H,wBAAwB,sBAoE9K,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Bracket/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAgB,uBAAuB,EAAuG,kBAAkB,EAAiC,MAAM,UAAU,CAAC;AAU9N,KAAK,gBAAgB,GAAG;IACpB,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,sBAAsB,CAAC,EAAC,MAAM,CAAC;IAC/B,kBAAkB,EAAC,CAAC,sBAAsB,EAAC,MAAM,KAAK,IAAI,CAAC;IAC3D,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,OAAO,CAAC,EAAC,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,WAAW,8IAA8I,gBAAgB,kCAuQ9K,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Bracket/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAgB,uBAAuB,EAAuG,kBAAkB,EAAiC,MAAM,UAAU,CAAC;AAU9N,KAAK,gBAAgB,GAAG;IACpB,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,cAAc,CAAC,EAAC,kBAAkB,CAAC;IACnC,sBAAsB,CAAC,EAAC,MAAM,CAAC;IAC/B,kBAAkB,EAAC,CAAC,sBAAsB,EAAC,MAAM,KAAK,IAAI,CAAC;IAC3D,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,kBAAkB,EAAC,CAAC,IAAI,EAAC;QAAE,mBAAmB,EAAC,uBAAuB,CAAA;KAAE,KAAK,IAAI,CAAC;IAClF,OAAO,CAAC,EAAC,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,QAAA,MAAM,WAAW,8IAA8I,gBAAgB,kCAqQ9K,CAAA;AAED,eAAe,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "be-components",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Components for BettorEdge Apps",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -109,7 +109,6 @@ const BracketComeptitionApi = {
109
109
  },
110
110
  getMyPlayerBrackets: async(bracket_id?:string, bracket_competition_id?:string):Promise<{ player_brackets: PlayerBracketProps[], competition_player_brackets:CompetitionPlayerBracketProps[], bracket_competitions:BracketCompetitionProps[] }> => {
111
111
  const resp = await axios.get(`${TP_SVC_API}/v1/brackets/player?bracket_id=${bracket_id}&bracket_competition_id=${bracket_competition_id}`)
112
- console.log(resp.data)
113
112
  return resp.data
114
113
  },
115
114
  savePick: async(player_bracket_pick:PlayerBracketPickProps):Promise<{player_bracket:PlayerBracketProps, player_bracket_picks:PlayerBracketPickProps[], competition_player_brackets:CompetitionPlayerBracketProps[]}> => {
@@ -160,6 +159,11 @@ const BracketCompetitionHelpers = {
160
159
  if(moment().isBefore(moment(bc.scheduled_datetime))){ return true }
161
160
  return false
162
161
  },
162
+ canEnter: (bc?:BracketCompetitionProps) => {
163
+ if(!bc) { return false }
164
+ if(moment().isAfter(moment(bc.scheduled_datetime))){ return false }
165
+ return true
166
+ },
163
167
  canMakePick: (bracket?:BracketProps) => {
164
168
  if(!bracket){ return false }
165
169
  if(moment().isAfter(moment(bracket.scheduled_datetime))){ return false }
@@ -36,6 +36,7 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
36
36
  const [ show_info, setShowInfo ] = useState(true);
37
37
  const [ show_leaders, setShowLeaders ] = useState(true);
38
38
  const [ card_data, setData ] = useState<{
39
+ loading:boolean,
39
40
  bracket_competition?:BracketCompetitionProps,
40
41
  bracket?:BracketProps,
41
42
  bracket_rounds:BracketRoundProps[],
@@ -45,6 +46,7 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
45
46
  players:PublicPlayerProps[],
46
47
  loaded:boolean
47
48
  }>({
49
+ loading:false,
48
50
  loaded:false,
49
51
  bracket_rounds: [],
50
52
  competition_player_brackets: [],
@@ -53,15 +55,15 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
53
55
  players: []
54
56
  })
55
57
 
56
- const { loaded, bracket_competition, bracket, bracket_rounds, competition_player_brackets, bracket_competition_scoring_rules } = card_data;
58
+ const {loading, loaded, bracket_competition, bracket, bracket_rounds, competition_player_brackets, bracket_competition_scoring_rules } = card_data;
57
59
  const result_type = competition_result_types.find(crt => crt.competition_result_type_id == bracket_competition?.competition_result_type_id);
58
-
59
60
  useEffect(() => {
60
61
  if(!bracket_competition_id){ return }
61
62
  getCompetitionData(bracket_competition_id)
62
63
  },[bracket_competition_id])
63
64
 
64
65
  const getCompetitionData = async(id:string) => {
66
+ setData({ ...card_data, loading:true });
65
67
  const resp = await BracketComeptitionApi.getBracketCompetitionById(id);
66
68
  if(player){
67
69
  const my_cpbs = resp.competition_player_brackets.filter(cpb => cpb.player_id == player.player_id)
@@ -73,6 +75,7 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
73
75
  const ps = await BracketApi.getPlayersByPlayerIds(player_ids);
74
76
  setData({
75
77
  ...card_data,
78
+ loading:false,
76
79
  bracket_competition: resp.bracket_competition,
77
80
  bracket_competition_scoring_rules: resp.bracket_competition_scoring_rules,
78
81
  competition_player_brackets:resp.competition_player_brackets,
@@ -156,7 +159,7 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
156
159
 
157
160
  if(!visible){ return <></> }
158
161
 
159
- if(!loaded || !bracket_competition || !bracket){
162
+ if(!loaded || !bracket_competition || !bracket || loading){
160
163
  return (
161
164
  <View>
162
165
  <ActivityIndicator style={{ padding:20, alignSelf:'center' }} size='large' color={Colors.brand.midnight} />
@@ -245,14 +248,14 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
245
248
  </TouchableOpacity>
246
249
  {show_info ?
247
250
  <View style={{ padding:10, margin:10, borderWidth:1, borderRadius:8, borderColor:Colors.shades.shade600 }}>
251
+ <View style={{ flexDirection:'row', alignItems:'center', padding:5 }}>
252
+ <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Entries</Text>
253
+ <Text size={14} color={Colors.brand.midnight} weight='bold'>{bracket_competition.tickets_sold} / {bracket_competition.max_brackets}</Text>
254
+ </View>
248
255
  <View style={{ flexDirection:'row', alignItems:'center', padding:5 }}>
249
256
  <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Ticket Price</Text>
250
257
  <Text size={14} color={Colors.brand.midnight} weight='bold'>${bracket_competition.buy_in.toFixed(2)}</Text>
251
258
  </View>
252
- <View style={{ flexDirection:'row', alignItems:'center', padding:5 }}>
253
- <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Current Payout</Text>
254
- <Text size={14} color={Colors.brand.midnight} weight='bold'>${payout.toFixed(2)}</Text>
255
- </View>
256
259
  {result_type ?
257
260
  <View style={{ flexDirection:'row', alignItems:'center', padding:5 }}>
258
261
  <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Payout Type</Text>
@@ -260,9 +263,26 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
260
263
  </View>
261
264
  :<></>}
262
265
  <View style={{ flexDirection:'row', alignItems:'center', padding:5 }}>
263
- <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Entries</Text>
264
- <Text size={14} color={Colors.brand.midnight} weight='bold'>{bracket_competition.tickets_sold} / {bracket_competition.max_brackets}</Text>
266
+ <Text style={{ flex:1 }} size={14} weight='bold' color={Colors.brand.midnight}>Current Payout</Text>
267
+ <Text size={14} color={Colors.brand.midnight} weight='bold'>${payout.toFixed(2)}</Text>
268
+ </View>
269
+ {bracket_competition.prize_override ?
270
+ <View style={{ marginTop:5, backgroundColor:Colors.incentive.gold_faded, padding:10, borderRadius:8 }}>
271
+ <View style={{ padding:5 }}>
272
+ <Text size={14} color={Colors.incentive.gold} weight='bold'>Additional Prize</Text>
273
+ </View>
274
+ <View style={{ padding:5, flexDirection:'row', alignItems:'center' }}>
275
+ <Image
276
+ source={{ uri: bracket_competition.prize_image?.url ?? 'https://res.cloudinary.com/hoabts6mc/image/upload/v1697121009/Medal_and_trophy_awarded_for_success_wkuk6r.png' }}
277
+ style={{ height:40, width:40, borderRadius:4 }}
278
+ resizeMode='cover'
279
+ />
280
+ <View style={{ flex:1, marginLeft:5 }}>
281
+ <Text size={14} color={Colors.brand.midnight} weight='bold'>{bracket_competition.prize_override}</Text>
282
+ </View>
283
+ </View>
265
284
  </View>
285
+ :<></>}
266
286
  </View>
267
287
  :<></>}
268
288
  </View>
@@ -304,8 +324,8 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
304
324
  />
305
325
  </View>
306
326
  :<></>}
307
-
308
327
  </View>
328
+ </ScrollView>
309
329
  {show_leaderboard ?
310
330
  <View style={{ position: 'absolute', left:0, right:0, bottom:0 }}>
311
331
  <Spring
@@ -313,7 +333,7 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
313
333
  from={500}
314
334
  slide='vertical'
315
335
  >
316
- <View style={{ flex:1, height, backgroundColor:Colors.shades.white }}>
336
+ <View style={{ height, backgroundColor:Colors.shades.white }}>
317
337
  <CompetitionLeaderboard
318
338
  bracket_competition_id={bracket_competition.bracket_competition_id}
319
339
  view_mode='full'
@@ -340,7 +360,6 @@ const BracketCompetitionCard = ({ visible, player_balance, player, height, my_co
340
360
  />
341
361
  </View>
342
362
  :<></>}
343
- </ScrollView>
344
363
  </View>
345
364
  )
346
365
  }
@@ -25,15 +25,15 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
25
25
  const [ round_event_loading, setRoundEventLoading ] = useState<string|undefined>(undefined);
26
26
  const [ show_filter, setShowFilter ] = useState(false);
27
27
  const [ play_data, setPlayData ] = useState<{
28
- loading:boolean,
28
+ play_loading:boolean,
29
29
  player_bracket?:PlayerBracketProps,
30
30
  player_bracket_picks:PlayerBracketPickProps[]
31
31
  }>({
32
- loading:false,
32
+ play_loading:false,
33
33
  player_bracket_picks: []
34
34
  });
35
35
  const [ bracket_data, setData ] = useState<{
36
- loaded:boolean,
36
+ loading:boolean,
37
37
  bracket?:BracketProps,
38
38
  bracket_groups:BracketGroupProps[],
39
39
  bracket_rounds:BracketRoundProps[],
@@ -44,7 +44,7 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
44
44
  selected_round?:BracketRoundProps,
45
45
  events:EventProps[]
46
46
  }>({
47
- loaded: false,
47
+ loading:false,
48
48
  bracket_groups: [],
49
49
  bracket_rounds: [],
50
50
  round_events: [],
@@ -52,8 +52,8 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
52
52
  athletes: [],
53
53
  events: []
54
54
  })
55
- const { player_bracket, player_bracket_picks } = play_data;
56
- const { bracket_groups, bracket_rounds, round_events, bracket, teams, athletes, selected_group, selected_round } = bracket_data;
55
+ const { play_loading, player_bracket, player_bracket_picks } = play_data;
56
+ const { loading, bracket_groups, bracket_rounds, round_events, bracket, teams, athletes, selected_group, selected_round } = bracket_data;
57
57
 
58
58
  const champion_team = player_bracket?.champion_id_type == 'team' ? teams.find(t => t.team_id == player_bracket?.champion_id) : undefined
59
59
  const champion_athlete = player_bracket?.champion_id_type == 'athlete' ? athletes.find(a => a.athlete_id == player_bracket?.champion_id) : undefined
@@ -78,10 +78,11 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
78
78
  },[player_bracket_id])
79
79
 
80
80
  const getPlayData = async(id:string) => {
81
+ setPlayData({ ...play_data, play_loading: true })
81
82
  const resp = await BracketComeptitionApi.getPlayerBracketById(id)
82
83
  setPlayData({
83
84
  ...play_data,
84
- loading:false,
85
+ play_loading:false,
85
86
  player_bracket_picks: resp.player_bracket_picks,
86
87
  player_bracket:resp.player_bracket
87
88
  })
@@ -118,6 +119,7 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
118
119
  setRoundEventLoading(undefined)
119
120
  }
120
121
  const getData = async(id:string) => {
122
+ setData({ ...bracket_data, loading:true })
121
123
  const b = await BracketApi.getBracketById(id);
122
124
  let team_ids:string[] = []
123
125
  let athlete_ids:string[] = []
@@ -138,6 +140,7 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
138
140
  bracket_rounds: b.bracket_rounds,
139
141
  round_events: b.round_events,
140
142
  teams: ts,
143
+ loading:false,
141
144
  athletes: aths
142
145
  })
143
146
  }
@@ -163,7 +166,7 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
163
166
 
164
167
  if(!visible){ return <></> }
165
168
 
166
- if(!bracket){
169
+ if(!bracket || loading || play_loading){
167
170
  return (
168
171
  <View>
169
172
  <ActivityIndicator size='large' style={{ padding:20, alignSelf:'center' }} color={Colors.brand.midnight} />
@@ -1,10 +1,11 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { FlatList, View, TouchableOpacity, Image } from 'react-native';
2
+ import { FlatList, View, TouchableOpacity, Image, ScrollView, ActivityIndicator } from 'react-native';
3
3
  import type { AthleteProps, CompetitionPlayerBracketProps, PlayerBracketProps, PublicPlayerProps, TeamProps } from '../../types';
4
4
  import { BracketApi, BracketComeptitionApi } from '../api';
5
5
  import Colors from '../../constants/colors';
6
6
  import { Button, Text } from '../../Components';
7
7
  import { CompetitionHelpers } from '../../Competition/api';
8
+ import { view_styles } from '../../constants/styles';
8
9
 
9
10
  type CompetitionLeaderboardProps = {
10
11
  bracket_competition_id:string,
@@ -34,7 +35,7 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
34
35
  player_brackets:[],
35
36
  players:[]
36
37
  })
37
- const { competition_player_brackets, players, player_brackets, teams, athletes } = leaders_data;
38
+ const { loading, offset, competition_player_brackets, players, player_brackets, teams, athletes } = leaders_data;
38
39
 
39
40
  let visible_leaders = competition_player_brackets.sort((a,b) => a.place - b.place);
40
41
  if(view_mode == 'short'){ visible_leaders = competition_player_brackets.slice(0, 3) }
@@ -59,6 +60,7 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
59
60
  competition_player_brackets: resp.competition_player_brackets,
60
61
  player_brackets: resp.player_brackets.filter(pb => !my_player_brackets.find(mpb => mpb.player_bracket_id == pb.player_bracket_id)).concat(my_player_brackets),
61
62
  teams:ts,
63
+ offset: page,
62
64
  athletes: aths,
63
65
  players: ps
64
66
  })
@@ -72,7 +74,7 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
72
74
  if(show_champions && player_bracket.champion_id_type == 'team'){ champ_team = teams.find(t => t.team_id == player_bracket.champion_id) }
73
75
  if(show_champions && player_bracket.champion_id_type == 'athlete'){ champ_athlete = athletes.find(t => t.athlete_id == player_bracket.champion_id) }
74
76
  return (
75
- <TouchableOpacity style={{ flexDirection:'row', alignItems:'center', borderRadius:22, borderTopLeftRadius:4, borderBottomLeftRadius:4, margin:3, backgroundColor:Colors.shades.white, padding:4 }}>
77
+ <TouchableOpacity style={{ flexDirection:'row', alignItems:'center', borderRadius:22, margin:6, backgroundColor:Colors.shades.white, padding:4 }}>
76
78
  <View style={{ padding:5 }}>
77
79
  <Text size={14} color={Colors.brand.midnight} weight='bold'>{CompetitionHelpers.formatPlace(data.item.place)}</Text>
78
80
  </View>
@@ -113,7 +115,7 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
113
115
 
114
116
  return (
115
117
  <View style={{ flex:1 }}>
116
- <View style={{ flex:1 }}>
118
+ <ScrollView style={{ flex:1 }}>
117
119
  {my_competition_player_brackets.length > 0 ?
118
120
  <View style={{ backgroundColor:Colors.brand.midnight, padding:10, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
119
121
  <View style={{ marginBottom:5 }}>
@@ -130,11 +132,14 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
130
132
  <View style={{ marginBottom:5 }}>
131
133
  <Text size={14} color={Colors.brand.midnight}>RESULTS</Text>
132
134
  </View>
135
+ {loading ?
136
+ <ActivityIndicator size='large' color={Colors.brand.midnight} style={{ padding:25, alignSelf:'center' }} />
137
+ :
133
138
  <FlatList
134
139
  data={visible_leaders}
135
140
  renderItem={renderLeaders}
136
141
  keyExtractor={(item) => item.competition_player_bracket_id.toString()}
137
- />
142
+ />}
138
143
  </View>
139
144
  {view_mode == 'short' && onViewFull ?
140
145
  <View style={{ padding:10 }}>
@@ -146,9 +151,25 @@ const CompetitionLeaderboard = ({ bracket_competition_id, my_competition_player_
146
151
  />
147
152
  </View>
148
153
  :<></>}
149
- </View>
154
+ </ScrollView>
150
155
  {onClose ?
151
- <View style={{ padding:10 }}>
156
+ <View style={{ padding:10, ...view_styles.float }}>
157
+ <View style={{ padding:10, flexDirection:'row', alignItems:'center', justifyContent:'space-between' }}>
158
+ {offset > 0 ?
159
+ <Button
160
+ title='PREV'
161
+ title_color={Colors.brand.electric}
162
+ backgroundColor='transparent'
163
+ onPress={() => getLeaders(bracket_competition_id, offset - 1)}
164
+ />
165
+ :<View/>}
166
+ <Button
167
+ title='NEXT'
168
+ title_color={Colors.brand.electric}
169
+ backgroundColor='transparent'
170
+ onPress={() => getLeaders(bracket_competition_id, offset + 1)}
171
+ />
172
+ </View>
152
173
  <Button
153
174
  title='Close'
154
175
  style={{ padding:15 }}
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- import { View, Image } from "react-native";
3
- import { Button, Text } from '../../Components';
1
+ import React, { useState } from 'react';
2
+ import { View, Image, TouchableOpacity, Linking } from "react-native";
3
+ import { Button, Checkbox, Text } from '../../Components';
4
4
  import type { BracketCompetitionProps, CompetitionPlayerBracketProps, MyPlayerProps, PlayerBalanceProps, PlayerBracketProps } from '../../types';
5
5
  import { BracketCompetitionHelpers } from '../api';
6
6
  import Colors from '../../constants/colors';
@@ -18,7 +18,8 @@ type JoinCompetitionCardProps = {
18
18
  }
19
19
 
20
20
  const JoinCompetitionCard = ({ player, player_balance, loading, player_bracket, bracket_competition, onNotEnoughBalance, onEnterCompetition, onClose }:JoinCompetitionCardProps) => {
21
-
21
+ const [ disclaimed, setDisclaimed ] = useState(true);
22
+
22
23
  const buy_in_label = BracketCompetitionHelpers.getBuyInTitle(bracket_competition)
23
24
 
24
25
  const handleEnter = () => {
@@ -54,6 +55,12 @@ const JoinCompetitionCard = ({ player, player_balance, loading, player_bracket,
54
55
  <Text style={{ marginTop:3 }} size={12} color={Colors.brand.slate} weight='regular'>{(player_bracket.completion_pct*100).toFixed(2)}% Complete</Text>
55
56
  </View>
56
57
  </View>
58
+ {bracket_competition.opt_in_url ?
59
+ <TouchableOpacity style={{ flexDirection:'row', alignItems:'center', padding:20, backgroundColor:Colors.shades.shade100 }} onPress={() => setDisclaimed(!disclaimed)}>
60
+ <Checkbox size={24} checked={disclaimed} disabled onSelect={() => console.log('')}/>
61
+ <Text color={Colors.brand.midnight} weight='regular' size={14} style={{ flex:1, marginLeft:10 }}>I agree to the terms and conditiions outlined <TouchableOpacity onPress={() => Linking.openURL(bracket_competition.opt_in_url??'')}><Text size={14} color={Colors.brand.electric} weight='bold'>HERE</Text></TouchableOpacity></Text>
62
+ </TouchableOpacity>
63
+ :<></>}
57
64
  <View style={{ flexDirection:'row', alignItems:'center', padding:10, backgroundColor:Colors.shades.shade100, borderBottomRightRadius:8, borderBottomLeftRadius:8 }}>
58
65
  <Button
59
66
  title='Close'
@@ -66,8 +73,8 @@ const JoinCompetitionCard = ({ player, player_balance, loading, player_bracket,
66
73
  />
67
74
  <Button
68
75
  title={buy_in_label}
69
- disabled={loading}
70
- style={{ flex:2, opacity: loading?0.5:1 }}
76
+ disabled={loading || !disclaimed}
77
+ style={{ flex:2, opacity: !disclaimed||loading?0.5:1 }}
71
78
  loading={loading}
72
79
  padding={15}
73
80
  title_color={Colors.shades.white}
@@ -194,8 +194,6 @@ const BracketRoom = ({ player_id, bracket_id, bracket_competition_id, player_bal
194
194
  competition_result_types={competition_result_types}
195
195
  height={room_size.height}
196
196
  onUpdateMyData={(data) => {
197
- console.log('updating data')
198
- console.log(data)
199
197
 
200
198
  setMyData({
201
199
  ...my_data,