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.
- package/lib/commonjs/Bracket/api/index.js +9 -1
- package/lib/commonjs/Bracket/api/index.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketCompetitionCard.js +56 -10
- package/lib/commonjs/Bracket/components/BracketCompetitionCard.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketPlay/index.js +15 -4
- package/lib/commonjs/Bracket/components/BracketPlay/index.js.map +1 -1
- package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js +34 -7
- package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js.map +1 -1
- package/lib/commonjs/Bracket/components/JoinCompetitionCard.js +34 -4
- package/lib/commonjs/Bracket/components/JoinCompetitionCard.js.map +1 -1
- package/lib/commonjs/Bracket/index.js +0 -2
- package/lib/commonjs/Bracket/index.js.map +1 -1
- package/lib/module/Bracket/api/index.js +9 -1
- package/lib/module/Bracket/api/index.js.map +1 -1
- package/lib/module/Bracket/components/BracketCompetitionCard.js +56 -10
- package/lib/module/Bracket/components/BracketCompetitionCard.js.map +1 -1
- package/lib/module/Bracket/components/BracketPlay/index.js +15 -4
- package/lib/module/Bracket/components/BracketPlay/index.js.map +1 -1
- package/lib/module/Bracket/components/CompetitionLeaderboard.js +35 -8
- package/lib/module/Bracket/components/CompetitionLeaderboard.js.map +1 -1
- package/lib/module/Bracket/components/JoinCompetitionCard.js +34 -6
- package/lib/module/Bracket/components/JoinCompetitionCard.js.map +1 -1
- package/lib/module/Bracket/index.js +0 -2
- package/lib/module/Bracket/index.js.map +1 -1
- package/lib/typescript/src/Bracket/api/index.d.ts +1 -0
- package/lib/typescript/src/Bracket/api/index.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketCompetitionCard.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketPlay/index.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/CompetitionLeaderboard.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/JoinCompetitionCard.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Bracket/api/index.ts +5 -1
- package/src/Bracket/components/BracketCompetitionCard.tsx +31 -12
- package/src/Bracket/components/BracketPlay/index.tsx +11 -8
- package/src/Bracket/components/CompetitionLeaderboard.tsx +28 -7
- package/src/Bracket/components/JoinCompetitionCard.tsx +13 -6
- 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,
|
|
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,
|
|
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;
|
|
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,
|
|
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,
|
|
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
package/src/Bracket/api/index.ts
CHANGED
|
@@ -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}>
|
|
264
|
-
<Text size={14} color={Colors.brand.midnight} weight='bold'
|
|
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={{
|
|
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
|
-
|
|
28
|
+
play_loading:boolean,
|
|
29
29
|
player_bracket?:PlayerBracketProps,
|
|
30
30
|
player_bracket_picks:PlayerBracketPickProps[]
|
|
31
31
|
}>({
|
|
32
|
-
|
|
32
|
+
play_loading:false,
|
|
33
33
|
player_bracket_picks: []
|
|
34
34
|
});
|
|
35
35
|
const [ bracket_data, setData ] = useState<{
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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,
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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}
|
package/src/Bracket/index.tsx
CHANGED
|
@@ -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,
|