be-components 3.5.4 → 3.5.5
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/components/BracketCompetitionCard.js +167 -169
- package/lib/commonjs/Bracket/components/BracketCompetitionCard.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketCompetitionSelector.js +61 -49
- package/lib/commonjs/Bracket/components/BracketCompetitionSelector.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketPlay/BracketRound.js +9 -11
- package/lib/commonjs/Bracket/components/BracketPlay/BracketRound.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketPlay/RoundEvent.js +87 -90
- package/lib/commonjs/Bracket/components/BracketPlay/RoundEvent.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketPlay/index.js +45 -53
- package/lib/commonjs/Bracket/components/BracketPlay/index.js.map +1 -1
- package/lib/commonjs/Bracket/components/BracketSelector.js +35 -29
- package/lib/commonjs/Bracket/components/BracketSelector.js.map +1 -1
- package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js +53 -56
- package/lib/commonjs/Bracket/components/CompetitionLeaderboard.js.map +1 -1
- package/lib/commonjs/Bracket/components/PlayerBracketManager.js +110 -133
- package/lib/commonjs/Bracket/components/PlayerBracketManager.js.map +1 -1
- package/lib/commonjs/Bracket/components/PlayerBrackets.js +41 -31
- package/lib/commonjs/Bracket/components/PlayerBrackets.js.map +1 -1
- package/lib/commonjs/Bracket/components/RoomMenu.js +21 -19
- package/lib/commonjs/Bracket/components/RoomMenu.js.map +1 -1
- package/lib/commonjs/Bracket/index.js +3 -5
- package/lib/commonjs/Bracket/index.js.map +1 -1
- package/lib/module/Bracket/components/BracketCompetitionCard.js +110 -112
- package/lib/module/Bracket/components/BracketCompetitionCard.js.map +1 -1
- package/lib/module/Bracket/components/BracketCompetitionSelector.js +41 -29
- package/lib/module/Bracket/components/BracketCompetitionSelector.js.map +1 -1
- package/lib/module/Bracket/components/BracketPlay/BracketRound.js +3 -5
- package/lib/module/Bracket/components/BracketPlay/BracketRound.js.map +1 -1
- package/lib/module/Bracket/components/BracketPlay/RoundEvent.js +53 -56
- package/lib/module/Bracket/components/BracketPlay/RoundEvent.js.map +1 -1
- package/lib/module/Bracket/components/BracketPlay/index.js +31 -39
- package/lib/module/Bracket/components/BracketPlay/index.js.map +1 -1
- package/lib/module/Bracket/components/BracketSelector.js +26 -20
- package/lib/module/Bracket/components/BracketSelector.js.map +1 -1
- package/lib/module/Bracket/components/CompetitionLeaderboard.js +34 -36
- package/lib/module/Bracket/components/CompetitionLeaderboard.js.map +1 -1
- package/lib/module/Bracket/components/PlayerBracketManager.js +56 -78
- package/lib/module/Bracket/components/PlayerBracketManager.js.map +1 -1
- package/lib/module/Bracket/components/PlayerBrackets.js +29 -19
- package/lib/module/Bracket/components/PlayerBrackets.js.map +1 -1
- package/lib/module/Bracket/components/RoomMenu.js +15 -13
- package/lib/module/Bracket/components/RoomMenu.js.map +1 -1
- package/lib/module/Bracket/index.js +2 -4
- package/lib/module/Bracket/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketCompetitionCard.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketCompetitionSelector.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketPlay/BracketRound.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketPlay/RoundEvent.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketPlay/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/BracketSelector.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/CompetitionLeaderboard.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/PlayerBracketManager.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/PlayerBrackets.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/components/RoomMenu.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Bracket/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketCompetitionCard.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketCompetitionCard.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketCompetitionSelector.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketCompetitionSelector.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/BracketRound.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/BracketRound.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/RoundEvent.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/RoundEvent.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/index.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketPlay/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/BracketSelector.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/BracketSelector.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/CompetitionLeaderboard.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/CompetitionLeaderboard.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/PlayerBracketManager.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/PlayerBracketManager.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/PlayerBrackets.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/PlayerBrackets.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/components/RoomMenu.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/components/RoomMenu.d.ts.map +1 -1
- package/lib/typescript/lib/module/Bracket/index.d.ts +1 -2
- package/lib/typescript/lib/module/Bracket/index.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketCompetitionCard.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketCompetitionSelector.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketPlay/BracketRound.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketPlay/RoundEvent.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/BracketSelector.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/CompetitionLeaderboard.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/PlayerBracketManager.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/PlayerBrackets.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/components/RoomMenu.d.ts.map +1 -1
- package/lib/typescript/src/Bracket/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Bracket/components/BracketCompetitionCard.tsx +85 -98
- package/src/Bracket/components/BracketCompetitionSelector.tsx +37 -36
- package/src/Bracket/components/BracketPlay/BracketRound.tsx +3 -6
- package/src/Bracket/components/BracketPlay/RoundEvent.tsx +39 -39
- package/src/Bracket/components/BracketPlay/index.tsx +28 -28
- package/src/Bracket/components/BracketSelector.tsx +21 -21
- package/src/Bracket/components/CompetitionLeaderboard.tsx +35 -36
- package/src/Bracket/components/PlayerBracketManager.tsx +55 -59
- package/src/Bracket/components/PlayerBrackets.tsx +26 -25
- package/src/Bracket/components/RoomMenu.tsx +16 -15
- package/src/Bracket/index.tsx +2 -3
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { FlatList,
|
|
2
|
+
import { FlatList, Image, ScrollView } from 'react-native';
|
|
3
3
|
import type { BracketCompetitionProps, BracketProps, LeagueProps } from '../../types';
|
|
4
|
-
import {
|
|
4
|
+
import { Icons } from '../../Components';
|
|
5
5
|
import { BracketComeptitionApi } from '../api';
|
|
6
|
-
import Colors from '../../constants/colors';
|
|
7
6
|
import moment from 'moment-mini';
|
|
7
|
+
import { useColors } from '../../constants/useColors';
|
|
8
|
+
import { Button, Text, TextInput, View } from '../../Components/Themed';
|
|
8
9
|
|
|
9
10
|
type BracketCompetitionSelectorProps = {
|
|
10
11
|
visible:boolean,
|
|
@@ -14,6 +15,8 @@ type BracketCompetitionSelectorProps = {
|
|
|
14
15
|
onCompetitionSelect:(bracket_competition:BracketCompetitionProps) => void
|
|
15
16
|
}
|
|
16
17
|
const BracketCompetitionSelector = ({ visible, leagues, brackets, onClose, onCompetitionSelect }:BracketCompetitionSelectorProps) => {
|
|
18
|
+
const Colors = useColors();
|
|
19
|
+
|
|
17
20
|
const [ search_value, setSearchValue ] = useState('');
|
|
18
21
|
const [ search_error, setSearchError ] = useState<string|undefined>(undefined);
|
|
19
22
|
const [ card_data, setData ] = useState<{
|
|
@@ -53,21 +56,21 @@ const BracketCompetitionSelector = ({ visible, leagues, brackets, onClose, onCom
|
|
|
53
56
|
|
|
54
57
|
const renderCompetitions = (data: { item:BracketCompetitionProps, index:number } ) => {
|
|
55
58
|
return (
|
|
56
|
-
<
|
|
59
|
+
<Button style={{ padding:10, flexDirection:'row', alignItems:'center', borderBottomWidth:1, borderColor:Colors.borders.light }}
|
|
57
60
|
onPress={() => onCompetitionSelect(data.item)}>
|
|
58
|
-
<View>
|
|
61
|
+
<View transparent>
|
|
59
62
|
<Image
|
|
60
63
|
source={{ uri: data.item.image?.url }}
|
|
61
64
|
style={{ height:40, width:40, borderRadius:4 }}
|
|
62
65
|
resizeMode='cover'
|
|
63
66
|
/>
|
|
64
67
|
</View>
|
|
65
|
-
<View style={{ flex:1, marginLeft:5 }}>
|
|
66
|
-
<Text size={14}
|
|
67
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
68
|
+
<View transparent style={{ flex:1, marginLeft:5 }}>
|
|
69
|
+
<Text size={14} theme='h1' weight='bold'>{data.item.competition_name}</Text>
|
|
70
|
+
<Text style={{ marginTop:3 }} size={12} theme='light' weight='regular'>{data.item.competition_description}</Text>
|
|
68
71
|
</View>
|
|
69
|
-
<Icons.ChevronIcon size={10} color={Colors.
|
|
70
|
-
</
|
|
72
|
+
<Icons.ChevronIcon size={10} color={Colors.text.h1} direction='right' />
|
|
73
|
+
</Button>
|
|
71
74
|
)
|
|
72
75
|
}
|
|
73
76
|
|
|
@@ -80,27 +83,27 @@ const BracketCompetitionSelector = ({ visible, leagues, brackets, onClose, onCom
|
|
|
80
83
|
const started = moment().isAfter(moment(bracket.scheduled_datetime)) ? true : false;
|
|
81
84
|
return (
|
|
82
85
|
<View>
|
|
83
|
-
<
|
|
86
|
+
<Button float style={{ flexDirection:'row', alignItems:'center', padding:10, borderRadius:0 }}
|
|
84
87
|
onPress={() => selected ? setData({ ...card_data, shown_brackets: shown_brackets.filter(b => b != data.item) }) : setData({ ...card_data, shown_brackets: shown_brackets.concat(data.item) })}>
|
|
85
|
-
<View>
|
|
88
|
+
<View transparent>
|
|
86
89
|
<Image
|
|
87
90
|
source={{ uri: league?.league_image }}
|
|
88
91
|
style={{ height:40, width:40, borderRadius:4 }}
|
|
89
92
|
resizeMode='cover'
|
|
90
93
|
/>
|
|
91
94
|
</View>
|
|
92
|
-
<View style={{ flex:1, marginLeft:5 }}>
|
|
93
|
-
<Text size={14}
|
|
94
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
95
|
+
<View transparent style={{ flex:1, marginLeft:5 }}>
|
|
96
|
+
<Text size={14} theme='h1' weight='bold'>{bracket.bracket_name}</Text>
|
|
97
|
+
<Text style={{ marginTop:3 }} size={12} theme='light'>{started? 'In Progress' : `Starts at ${moment(bracket.scheduled_datetime).format('MMM DD YYYY hh:mm a')}`}</Text>
|
|
95
98
|
</View>
|
|
96
|
-
<View style={{ justifyContent:'center', alignItems:'center', padding:5, paddingRight:15 }}>
|
|
97
|
-
<Text size={14}
|
|
98
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
99
|
+
<View transparent style={{ justifyContent:'center', alignItems:'center', padding:5, paddingRight:15 }}>
|
|
100
|
+
<Text size={14} theme='h1' weight='bold'>{comps.length}</Text>
|
|
101
|
+
<Text style={{ marginTop:3 }} size={12} theme='light' weight='regular'>COMPETITIONS</Text>
|
|
99
102
|
</View>
|
|
100
|
-
<Icons.ChevronIcon direction={selected?'up':'down'} size={10} color={Colors.
|
|
101
|
-
</
|
|
103
|
+
<Icons.ChevronIcon direction={selected?'up':'down'} size={10} color={Colors.text.h1} />
|
|
104
|
+
</Button>
|
|
102
105
|
{selected ?
|
|
103
|
-
<View style={{ padding:10 }}>
|
|
106
|
+
<View transparent style={{ padding:10 }}>
|
|
104
107
|
<FlatList
|
|
105
108
|
data={comps}
|
|
106
109
|
renderItem={renderCompetitions}
|
|
@@ -115,21 +118,21 @@ const BracketCompetitionSelector = ({ visible, leagues, brackets, onClose, onCom
|
|
|
115
118
|
if(!visible || loading){ return <></> }
|
|
116
119
|
return (
|
|
117
120
|
<View style={{ flex:1 }}>
|
|
118
|
-
<
|
|
119
|
-
<Icons.ChevronIcon direction='left' size={12} color={Colors.
|
|
121
|
+
<Button style={{ flexDirection:'row', alignItems:'center', padding:20, borderBottomWidth:1, borderColor:Colors.borders.light }} onPress={() => onClose()}>
|
|
122
|
+
<Icons.ChevronIcon direction='left' size={12} color={Colors.text.h1} />
|
|
120
123
|
<View style={{ flex:1, marginLeft:20 }}>
|
|
121
|
-
<Text size={18}
|
|
122
|
-
<Text style={{ marginTop:4 }} size={14}
|
|
124
|
+
<Text size={18} theme='h1' weight='bold'>Bracket Competitions</Text>
|
|
125
|
+
<Text style={{ marginTop:4 }} size={14} theme='light' weight='regular'>Select a competition below to see more details</Text>
|
|
123
126
|
</View>
|
|
124
|
-
</
|
|
127
|
+
</Button>
|
|
125
128
|
|
|
126
129
|
<ScrollView style={{ flex:1 }}>
|
|
127
|
-
<View style={{ padding:20 }}>
|
|
128
|
-
<View style={{ marginBottom:10 }}>
|
|
129
|
-
<Text size={14}
|
|
130
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
130
|
+
<View transparent style={{ padding:20 }}>
|
|
131
|
+
<View transparent style={{ marginBottom:10 }}>
|
|
132
|
+
<Text size={14} theme='h1' weight='semibold'>Have a private code?</Text>
|
|
133
|
+
<Text style={{ marginTop:3 }} size={12} theme='light'>Enter it below and select search. If found, we will send you to the competition.</Text>
|
|
131
134
|
</View>
|
|
132
|
-
<View style={{ flexDirection:'row', alignItems:'center' }}>
|
|
135
|
+
<View transparent style={{ flexDirection:'row', alignItems:'center' }}>
|
|
133
136
|
<TextInput
|
|
134
137
|
style={{ flex:1 }}
|
|
135
138
|
value={search_value}
|
|
@@ -138,21 +141,19 @@ const BracketCompetitionSelector = ({ visible, leagues, brackets, onClose, onCom
|
|
|
138
141
|
setSearchValue(text)
|
|
139
142
|
}}
|
|
140
143
|
placeholder='Search or Enter Private Code'
|
|
141
|
-
placeholderTextColor={Colors.
|
|
144
|
+
placeholderTextColor={Colors.text.descriptionLight}
|
|
142
145
|
/>
|
|
143
146
|
{search_value ?
|
|
144
147
|
<Button
|
|
145
148
|
title='Find Private'
|
|
146
149
|
style={{ marginLeft:5 }}
|
|
147
|
-
|
|
148
|
-
title_color={Colors.shades.white}
|
|
149
|
-
backgroundColor={Colors.brand.electric}
|
|
150
|
+
type='close'
|
|
150
151
|
onPress={() => handleFindPrivate()}
|
|
151
152
|
/>
|
|
152
153
|
:<></>}
|
|
153
154
|
</View>
|
|
154
155
|
{search_error ?
|
|
155
|
-
<Text style={{ padding:10 }} size={14} color={Colors.
|
|
156
|
+
<Text style={{ padding:10 }} size={14} color={Colors.text.warning} weight='regular' textAlign='center'>{search_error}</Text>
|
|
156
157
|
:<></>}
|
|
157
158
|
</View>
|
|
158
159
|
<FlatList
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { View } from "react-native"
|
|
3
|
-
import Colors from "../../../constants/colors"
|
|
4
2
|
import type { AthleteProps, BracketRoundProps, PlayerBracketPickProps, RoundEventProps, TeamProps } from '../../../types';
|
|
5
3
|
import RoundEventCard from './RoundEvent';
|
|
6
4
|
import { view_styles } from '../../../constants/styles';
|
|
7
|
-
import { Text } from '../../../Components';
|
|
5
|
+
import { Text, View } from '../../../Components/Themed';
|
|
8
6
|
|
|
9
7
|
type BracketRoundSectionProps = {
|
|
10
8
|
player_bracket_id?:string,
|
|
@@ -25,7 +23,6 @@ type BracketRoundSectionProps = {
|
|
|
25
23
|
}
|
|
26
24
|
|
|
27
25
|
const BracketRoundSection = ({ bracket_round, round_event_loading, teams, round_events, width, hide_titles, player_bracket_picks, active_bracket_group_id, onPick }:BracketRoundSectionProps) => {
|
|
28
|
-
|
|
29
26
|
if(active_bracket_group_id){
|
|
30
27
|
round_events = round_events.filter(re => re.bracket_group_id == active_bracket_group_id)
|
|
31
28
|
}
|
|
@@ -71,10 +68,10 @@ const BracketRoundSection = ({ bracket_round, round_event_loading, teams, round_
|
|
|
71
68
|
<View style={{ }}>
|
|
72
69
|
{!hide_titles ?
|
|
73
70
|
<View style={{ padding:10 }}>
|
|
74
|
-
<Text size={14}
|
|
71
|
+
<Text size={14} theme='h1' textAlign="center">{bracket_round.round_name}</Text>
|
|
75
72
|
</View>
|
|
76
73
|
:<></>}
|
|
77
|
-
<View nativeID="round_events" style={{ flex:1 }}>
|
|
74
|
+
<View transparent nativeID="round_events" style={{ flex:1 }}>
|
|
78
75
|
{round_events.filter(re => re.bracket_round_id == bracket_round.bracket_round_id).sort((a,b) => a.event_number - b.event_number).map((re, i) => {
|
|
79
76
|
return renderRoundEvents({ item: re, index:i })
|
|
80
77
|
})}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Image,
|
|
3
|
-
import Colors from "../../../constants/colors"
|
|
2
|
+
import { Image, ActivityIndicator } from "react-native"
|
|
4
3
|
import type { AthleteProps, EventProps, PlayerBracketPickProps, RoundEventProps, TeamProps } from "../../../types"
|
|
5
|
-
import { Text } from '../../../Components';
|
|
6
4
|
import { BracketCompetitionHelpers } from '../../api';
|
|
5
|
+
import { useColors } from '../../../constants/useColors';
|
|
6
|
+
import { Button, Text, View } from '../../../Components/Themed';
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
type RoundEventCardProps = {
|
|
@@ -28,7 +28,7 @@ type RoundEventCardProps = {
|
|
|
28
28
|
const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home_placeholder_team, home_team, width, no_pick, round_event, player_bracket_pick, away_placeholder_pick, home_placeholder_pick, onPick }:RoundEventCardProps) => {
|
|
29
29
|
//AWAY PLACEHOLDER
|
|
30
30
|
const round_width = width//width > 600 ? undefined : width / 2
|
|
31
|
-
|
|
31
|
+
const Colors = useColors();
|
|
32
32
|
const handleSelectAway = () => {
|
|
33
33
|
if(loading){ return }
|
|
34
34
|
//Okay! Lets get the side_id
|
|
@@ -74,11 +74,12 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
const getPickColor = (side:'away'|'home', pbb?:PlayerBracketPickProps) => {
|
|
77
|
-
if(!pbb
|
|
77
|
+
if(!pbb){ return Colors.text.h1 }
|
|
78
|
+
if(pbb.pick_side && pbb.pick_side != side){ return Colors.text.h1 }
|
|
78
79
|
switch(pbb.result_ind){
|
|
79
|
-
case 'win': return Colors.
|
|
80
|
-
case 'lose': return Colors.
|
|
81
|
-
default: return Colors.
|
|
80
|
+
case 'win': return Colors.text.success
|
|
81
|
+
case 'lose': return Colors.text.error
|
|
82
|
+
default: return Colors.text.action
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
|
|
@@ -99,26 +100,26 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
99
100
|
const renderButton = (side:'away'|'home') => {
|
|
100
101
|
if(no_pick){
|
|
101
102
|
return (
|
|
102
|
-
<View style={{ height:15, width:15, borderRadius:100
|
|
103
|
+
<View style={{ height:15, width:15, borderRadius:100 }} />
|
|
103
104
|
)
|
|
104
105
|
}
|
|
105
106
|
if(!player_bracket_pick || player_bracket_pick.pick_side != side){
|
|
106
107
|
return (
|
|
107
|
-
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.
|
|
108
|
+
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.text.action }} />
|
|
108
109
|
)
|
|
109
110
|
}
|
|
110
111
|
switch(player_bracket_pick.result_ind){
|
|
111
112
|
case 'win':
|
|
112
113
|
return (
|
|
113
|
-
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.
|
|
114
|
+
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.text.action, backgroundColor:Colors.text.success }} />
|
|
114
115
|
)
|
|
115
116
|
case 'lose':
|
|
116
117
|
return (
|
|
117
|
-
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.
|
|
118
|
+
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.text.action, backgroundColor:Colors.text.error }} />
|
|
118
119
|
)
|
|
119
120
|
default:
|
|
120
121
|
return (
|
|
121
|
-
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.
|
|
122
|
+
<View style={{ height:15, width:15, borderRadius:100, borderWidth:1, borderColor:Colors.text.action, backgroundColor:Colors.text.action }} />
|
|
122
123
|
)
|
|
123
124
|
}
|
|
124
125
|
}
|
|
@@ -143,34 +144,33 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
143
144
|
return (
|
|
144
145
|
<View style={{ }}>
|
|
145
146
|
{round_event?.away_side_id && away_placeholder_pick && away_placeholder_team ?
|
|
146
|
-
<View style={{ padding:4, borderTopRightRadius:4, borderTopLeftRadius:4
|
|
147
|
-
<Text size={10} weight='semibold' color={away_placeholder_pick.result_ind=='win'?Colors.
|
|
147
|
+
<View style={{ padding:4, borderTopRightRadius:4, borderTopLeftRadius:4 }}>
|
|
148
|
+
<Text size={10} weight='semibold' color={away_placeholder_pick.result_ind=='win'?Colors.text.success:Colors.text.error}>{away_placeholder_team.market_name} {away_placeholder_team.name}</Text>
|
|
148
149
|
</View>
|
|
149
150
|
:<></>}
|
|
150
151
|
<View style={{ flexDirection:'row', alignItems:'center', padding:8 }}>
|
|
151
152
|
<View style={{ flex:1, marginRight:10, marginLeft:0 }}>
|
|
152
153
|
{round_event.away_side_id && away_team ?
|
|
153
|
-
<View style={{
|
|
154
|
+
<View style={{ flexGrow:1, flexDirection:'row', alignItems:'center' }}>
|
|
154
155
|
<Image
|
|
155
156
|
source={{ uri: away_team.image?.url }}
|
|
156
157
|
style={{ height:20, width:20, marginRight:2 }}
|
|
157
158
|
resizeMode="cover"
|
|
158
159
|
/>
|
|
159
|
-
|
|
160
|
-
<Text style={{
|
|
161
|
-
<Text style={{ flex:1 }} size={10} color={getPickColor('home', player_bracket_pick)} weight={'semibold'}>{away_team.market_name} {away_team.name}</Text>
|
|
160
|
+
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.borders.light }} size={10} theme='description'>{round_event.away_seed}</Text>
|
|
161
|
+
<Text style={{ flex:1 }} size={10} color={getPickColor('away', player_bracket_pick)} weight={'semibold'}>{away_team.market_name} {away_team.name}</Text>
|
|
162
162
|
</View>
|
|
163
163
|
:
|
|
164
164
|
<View>
|
|
165
165
|
{away_placeholder_pick && away_placeholder_team ?
|
|
166
|
-
<View style={{
|
|
166
|
+
<View style={{ flexGrow:1, flexDirection:'row', alignItems:'center' }}>
|
|
167
167
|
<Image
|
|
168
168
|
source={{ uri: away_placeholder_team.image?.url }}
|
|
169
169
|
style={{ height:20, width:20, marginRight:2 }}
|
|
170
170
|
resizeMode="cover"
|
|
171
171
|
/>
|
|
172
|
-
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.
|
|
173
|
-
<Text style={{ flex:1 }} size={10}
|
|
172
|
+
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.borders.light }} size={10} theme='description'>{away_placeholder_pick.pick_seed}</Text>
|
|
173
|
+
<Text style={{ flex:1 }} size={10} theme='h1'>{away_placeholder_team.market_name} {away_placeholder_team.name}</Text>
|
|
174
174
|
</View>
|
|
175
175
|
:
|
|
176
176
|
<Text color='transparent'>select</Text>
|
|
@@ -178,9 +178,9 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
178
178
|
</View>
|
|
179
179
|
}
|
|
180
180
|
</View>
|
|
181
|
-
<View style={{ flexDirection:'row', alignItems:'center', borderLeftWidth:1, borderLeftColor:Colors.
|
|
181
|
+
<View style={{ flexDirection:'row', alignItems:'center', borderLeftWidth:1, borderLeftColor:Colors.borders.light }}>
|
|
182
182
|
{round_event.event_id ?
|
|
183
|
-
<Text style={{ margin:5}} size={10}
|
|
183
|
+
<Text style={{ margin:5}} size={10} theme='h2'>{getScore(away_team?.team_id)}</Text>
|
|
184
184
|
:<></>}
|
|
185
185
|
{renderButton('away')}
|
|
186
186
|
</View>
|
|
@@ -194,26 +194,26 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
194
194
|
|
|
195
195
|
<View style={{ flex:1, marginRight:10 }}>
|
|
196
196
|
{round_event.home_side_id && home_team ?
|
|
197
|
-
<View style={{
|
|
197
|
+
<View style={{ flexGrow:1, flexDirection:'row', alignItems:'center' }}>
|
|
198
198
|
<Image
|
|
199
199
|
source={{ uri: home_team.image?.url }}
|
|
200
200
|
style={{ height:20, width:20, marginRight:2 }}
|
|
201
201
|
resizeMode="cover"
|
|
202
202
|
/>
|
|
203
|
-
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.
|
|
203
|
+
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.borders.light }} size={10} theme='description'>{round_event.home_seed}</Text>
|
|
204
204
|
<Text style={{ flex:1 }} size={10} color={getPickColor('home', player_bracket_pick)} weight={'semibold'}>{home_team.market_name} {home_team.name}</Text>
|
|
205
205
|
</View>
|
|
206
206
|
:
|
|
207
207
|
<View>
|
|
208
208
|
{home_placeholder_pick && home_placeholder_team ?
|
|
209
|
-
<View style={{
|
|
209
|
+
<View style={{ flexGrow:1, flexDirection:'row', alignItems:'center' }}>
|
|
210
210
|
<Image
|
|
211
211
|
source={{ uri: home_placeholder_team.image?.url }}
|
|
212
212
|
style={{ height:20, width:20, marginRight:2 }}
|
|
213
213
|
resizeMode="cover"
|
|
214
214
|
/>
|
|
215
|
-
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.
|
|
216
|
-
<Text style={{ flex:1 }} size={10}
|
|
215
|
+
<Text style={{ paddingRight: 5, borderRightWidth:1, borderColor:Colors.borders.light }} size={10} theme='action'>{home_placeholder_pick.pick_seed}</Text>
|
|
216
|
+
<Text style={{ flex:1 }} size={10} theme='h2'>{home_placeholder_team.market_name} {home_placeholder_team.name}</Text>
|
|
217
217
|
</View>
|
|
218
218
|
:
|
|
219
219
|
<Text color='transparent'>select</Text>
|
|
@@ -221,16 +221,16 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
221
221
|
</View>
|
|
222
222
|
}
|
|
223
223
|
</View>
|
|
224
|
-
<View style={{ flexDirection:'row', alignItems:'center', borderLeftWidth:1, borderLeftColor:Colors.
|
|
224
|
+
<View style={{ flexDirection:'row', alignItems:'center', borderLeftWidth:1, borderLeftColor:Colors.borders.light }}>
|
|
225
225
|
{round_event.event_id ?
|
|
226
|
-
<Text style={{ margin:5}} size={10}
|
|
226
|
+
<Text style={{ margin:5}} size={10} theme='h2'>{getScore(home_team?.team_id)}</Text>
|
|
227
227
|
:<></>}
|
|
228
228
|
{renderButton('home')}
|
|
229
229
|
</View>
|
|
230
230
|
</View>
|
|
231
231
|
{round_event?.home_side_id && home_placeholder_pick && home_placeholder_team?
|
|
232
|
-
<View style={{ padding:4, borderBottomRightRadius:4, borderBottomLeftRadius:4
|
|
233
|
-
<Text size={10} weight='semibold' color={home_placeholder_pick.result_ind=='win'?Colors.
|
|
232
|
+
<View style={{ padding:4, borderBottomRightRadius:4, borderBottomLeftRadius:4 }}>
|
|
233
|
+
<Text size={10} weight='semibold' color={home_placeholder_pick.result_ind=='win'?Colors.text.success:Colors.text.error}>{home_placeholder_team.market_name} {home_placeholder_team.name}</Text>
|
|
234
234
|
</View>
|
|
235
235
|
:<></>}
|
|
236
236
|
</View>
|
|
@@ -240,18 +240,18 @@ const RoundEventCard = ({ event, loading, away_team, away_placeholder_team, home
|
|
|
240
240
|
|
|
241
241
|
|
|
242
242
|
return (
|
|
243
|
-
<View style={{ minWidth:125, width:round_width, backgroundColor:no_pick?
|
|
244
|
-
<
|
|
243
|
+
<View float style={{ minWidth:125, width:round_width, backgroundColor:no_pick?'blue':'black', borderRadius:4 }}>
|
|
244
|
+
<Button style={{ borderBottomWidth:1, borderColor:Colors.borders.light, padding:5 }} onPress={() => handleSelectAway()}>
|
|
245
245
|
{renderSide('away')}
|
|
246
|
-
</
|
|
247
|
-
<
|
|
246
|
+
</Button>
|
|
247
|
+
<Button style={{ padding:5 }} onPress={() => handleSelectHome()}>
|
|
248
248
|
{renderSide('home')}
|
|
249
|
-
</
|
|
249
|
+
</Button>
|
|
250
250
|
{loading ?
|
|
251
251
|
<View style={{ position:'absolute', top:0, left:0, right:0, bottom:0, justifyContent:'center', alignItems:'center' }}>
|
|
252
252
|
<ActivityIndicator
|
|
253
253
|
size='large'
|
|
254
|
-
color={Colors.
|
|
254
|
+
color={Colors.text.h1}
|
|
255
255
|
/>
|
|
256
256
|
</View>
|
|
257
257
|
:<></>}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ActivityIndicator, ScrollView, Image } from "react-native";
|
|
3
3
|
import type { AthleteProps, BracketGroupProps, BracketProps, BracketRoundProps, CompetitionPlayerBracketProps, EventProps, MyPlayerProps, PlayerBracketPickProps, PlayerBracketProps, RoundEventProps, TeamProps } from '../../../types';
|
|
4
4
|
import { BracketApi, BracketComeptitionApi, BracketCompetitionHelpers } from '../../api';
|
|
5
|
-
import {
|
|
6
|
-
import Colors from '../../../constants/colors';
|
|
5
|
+
import { Icons } from '../../../Components';
|
|
7
6
|
import BracketRoundSection from './BracketRound';
|
|
8
7
|
import BracketNavigator from './BracketNavigator';
|
|
9
|
-
import {
|
|
8
|
+
import { Button, Text, View } from '../../../Components/Themed';
|
|
9
|
+
import { useColors } from '../../../constants/useColors';
|
|
10
10
|
|
|
11
11
|
type BracketPlayProps = {
|
|
12
12
|
visible: boolean,
|
|
@@ -22,6 +22,7 @@ type BracketPlayProps = {
|
|
|
22
22
|
const MIN_ROUND_WIDTH = 175
|
|
23
23
|
const MAX_ROUND_WIDTH = 200;
|
|
24
24
|
const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id, onClose, onPlayerBracketUpdate, onChangePlayerBracket, onRequestAuthenticate }:BracketPlayProps) => {
|
|
25
|
+
const Colors = useColors();
|
|
25
26
|
const [ round_event_loading, setRoundEventLoading ] = useState<string|undefined>(undefined);
|
|
26
27
|
const [ show_filter, setShowFilter ] = useState(false);
|
|
27
28
|
const [ play_data, setPlayData ] = useState<{
|
|
@@ -168,29 +169,28 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
|
|
|
168
169
|
|
|
169
170
|
if(!bracket || loading || play_loading){
|
|
170
171
|
return (
|
|
171
|
-
<View>
|
|
172
|
-
<ActivityIndicator size='large' style={{ padding:20, alignSelf:'center' }} color={Colors.
|
|
172
|
+
<View type='blur'>
|
|
173
|
+
<ActivityIndicator size='large' style={{ padding:20, alignSelf:'center' }} color={Colors.text.h1} />
|
|
173
174
|
</View>
|
|
174
175
|
)
|
|
175
176
|
}
|
|
176
177
|
return (
|
|
177
|
-
<View style={{
|
|
178
|
-
<View style={{ zIndex:10, flexDirection:'row', alignItems:'center', padding:20, borderBottomWidth:1, borderColor:Colors.
|
|
179
|
-
<
|
|
180
|
-
<Icons.ChevronIcon direction='left' size={12} color={Colors.
|
|
178
|
+
<View style={{ flexGrow:1 }}>
|
|
179
|
+
<View style={{ zIndex:10, flexDirection:'row', alignItems:'center', padding:20, borderBottomWidth:1, borderColor:Colors.borders.light }}>
|
|
180
|
+
<Button style={{ flex:1, flexDirection:'row', alignItems: 'center' }} onPress={() => onClose()}>
|
|
181
|
+
<Icons.ChevronIcon direction='left' size={12} color={Colors.text.h1} />
|
|
181
182
|
<View style={{ flex:1, marginLeft:20, marginRight:10 }}>
|
|
182
|
-
<Text size={18}
|
|
183
|
+
<Text size={18} theme='h1'>{bracket.bracket_name}</Text>
|
|
183
184
|
</View>
|
|
184
|
-
</
|
|
185
|
+
</Button>
|
|
185
186
|
<View style={{ zIndex:10 }}>
|
|
186
187
|
<Button
|
|
187
188
|
title='Filter'
|
|
188
|
-
|
|
189
|
-
title_color={Colors.shades.white}
|
|
189
|
+
type='info'
|
|
190
190
|
onPress={() => setShowFilter(true)}
|
|
191
191
|
/>
|
|
192
192
|
{show_filter ?
|
|
193
|
-
<View style={{ position:'absolute', top:5, right:5,
|
|
193
|
+
<View style={{ position:'absolute', top:5, right:5, borderRadius:8 }}>
|
|
194
194
|
<BracketNavigator
|
|
195
195
|
bracket_groups={bracket_groups}
|
|
196
196
|
bracket_rounds={bracket_rounds}
|
|
@@ -205,44 +205,44 @@ const BracketPlay = ({ visible, player, room_size, bracket_id, player_bracket_id
|
|
|
205
205
|
</View>
|
|
206
206
|
</View>
|
|
207
207
|
{player_bracket ?
|
|
208
|
-
<View style={{ padding:
|
|
208
|
+
<View float style={{ padding:10, borderRadius:0, flexDirection:'row', alignItems:'center' }}>
|
|
209
209
|
{champion_team ?
|
|
210
|
-
<View style={{ justifyContent:'center', alignItems:'center', marginRight:10 }}>
|
|
210
|
+
<View transparent style={{ justifyContent:'center', alignItems:'center', marginRight:10 }}>
|
|
211
211
|
<Image
|
|
212
212
|
source={{ uri: champion_team.image?.url }}
|
|
213
213
|
style={{ height:20, width:20, borderRadius:4 }}
|
|
214
214
|
resizeMode='cover'
|
|
215
215
|
/>
|
|
216
|
-
<Text style={{ marginTop:2 }} size={12}
|
|
216
|
+
<Text style={{ marginTop:2 }} size={12} theme='h1' textAlign='center'>{champion_team.abbr}</Text>
|
|
217
217
|
</View>
|
|
218
218
|
:champion_athlete ?
|
|
219
|
-
<View style={{ justifyContent:'center', alignItems:'center', marginRight:10 }}>
|
|
219
|
+
<View transparent style={{ justifyContent:'center', alignItems:'center', marginRight:10 }}>
|
|
220
220
|
<Image
|
|
221
221
|
source={{ uri: champion_athlete.image?.url }}
|
|
222
222
|
style={{ height:20, width:20, borderRadius:4 }}
|
|
223
223
|
resizeMode='cover'
|
|
224
224
|
/>
|
|
225
|
-
<Text style={{ marginTop:2 }} size={12}
|
|
225
|
+
<Text style={{ marginTop:2 }} size={12} theme='h1' textAlign='center'>{champion_athlete.abbr_name}</Text>
|
|
226
226
|
</View>
|
|
227
227
|
:<></>}
|
|
228
|
-
<View style={{ flex:1 }}>
|
|
229
|
-
<Text size={14}
|
|
230
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
228
|
+
<View transparent style={{ flex:1 }}>
|
|
229
|
+
<Text size={14} theme='h1'>{player_bracket.bracket_name}</Text>
|
|
230
|
+
<Text style={{ marginTop:3 }} size={12} theme='description'>{(player_bracket.completion_pct*100).toFixed(2)}% Complete</Text>
|
|
231
231
|
</View>
|
|
232
232
|
<Button
|
|
233
233
|
title='Change'
|
|
234
|
-
|
|
235
|
-
title_color={Colors.shades.white}
|
|
234
|
+
type='info'
|
|
236
235
|
onPress={() => onChangePlayerBracket(bracket.bracket_id)}
|
|
237
236
|
/>
|
|
238
237
|
</View>
|
|
239
238
|
:<></>}
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
|
|
240
|
+
<ScrollView>
|
|
241
|
+
<ScrollView horizontal style={{ flexDirection:'row', padding:10 }}>
|
|
242
242
|
{visible_rounds.sort((a,b) => a.round_number - b.round_number).map((br,i) => {
|
|
243
243
|
return renderBracketRounds({ item:br, index:i })
|
|
244
244
|
})}
|
|
245
|
-
</
|
|
245
|
+
</ScrollView>
|
|
246
246
|
</ScrollView>
|
|
247
247
|
</View>
|
|
248
248
|
)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { FlatList, Image, ScrollView } from "react-native"
|
|
3
3
|
import type { BracketProps, LeagueProps } from '../../types';
|
|
4
|
-
import
|
|
5
|
-
import { Button, Icons, Text } from '../../Components';
|
|
4
|
+
import { Icons } from '../../Components';
|
|
6
5
|
import moment from 'moment-mini';
|
|
6
|
+
import { Button, Text, View } from '../../Components/Themed';
|
|
7
|
+
import { useColors } from '../../constants/useColors';
|
|
7
8
|
|
|
8
9
|
type BracketSelectorProps = {
|
|
9
10
|
visible: boolean,
|
|
@@ -14,26 +15,25 @@ type BracketSelectorProps = {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
const BracketSelector = ({ visible, leagues, brackets, onSelectBracket, onClose }:BracketSelectorProps) => {
|
|
17
|
-
|
|
18
|
+
const Colors = useColors();
|
|
18
19
|
const unique_league_ids = [ ...new Set(brackets.map(b => b.league_id)) ]
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
const renderBrackets = (data: { item:BracketProps, index:number }) => {
|
|
22
23
|
const started = moment().isAfter(moment(data.item.scheduled_datetime)) ? true : false;
|
|
23
24
|
return (
|
|
24
|
-
<
|
|
25
|
+
<Button style={{ flexDirection:'row', alignItems:'center', padding:20, borderBottomColor:Colors.borders.light, borderBottomWidth:1 }} onPress={() => onSelectBracket(data.item)}>
|
|
25
26
|
<View style={{ flex:1 }}>
|
|
26
|
-
<Text size={14}
|
|
27
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
27
|
+
<Text size={14} theme='h1' weight='bold'>{data.item.bracket_name}</Text>
|
|
28
|
+
<Text style={{ marginTop:3 }} size={12} theme='light' weight='regular'>{started?'In Progress':`Starts at ${moment(data.item.scheduled_datetime).format('MMM DD YYYY hh:mm a')}`}</Text>
|
|
28
29
|
</View>
|
|
29
30
|
<Button
|
|
30
31
|
title='VIEW'
|
|
31
|
-
|
|
32
|
-
backgroundColor={Colors.brand.electric}
|
|
32
|
+
type='info'
|
|
33
33
|
disabled
|
|
34
34
|
onPress={() => console.log('')}
|
|
35
35
|
/>
|
|
36
|
-
</
|
|
36
|
+
</Button>
|
|
37
37
|
)
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -42,18 +42,18 @@ const BracketSelector = ({ visible, leagues, brackets, onSelectBracket, onClose
|
|
|
42
42
|
const league_brackets = brackets.filter(b => b.league_id == data.item);
|
|
43
43
|
if(!league){ return <></> }
|
|
44
44
|
return (
|
|
45
|
-
<View>
|
|
46
|
-
<View style={{ flexDirection:'row', alignItems:'center', padding:10
|
|
47
|
-
<View>
|
|
45
|
+
<View transparent>
|
|
46
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
47
|
+
<View transparent>
|
|
48
48
|
<Image
|
|
49
49
|
source={{ uri: league.league_image }}
|
|
50
50
|
style={{ height:30, width:30, borderRadius:4 }}
|
|
51
51
|
resizeMode='cover'
|
|
52
52
|
/>
|
|
53
53
|
</View>
|
|
54
|
-
<View style={{ flex:1, marginLeft:10 }}>
|
|
55
|
-
<Text size={14}
|
|
56
|
-
<Text style={{ marginTop:3 }} size={12}
|
|
54
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
55
|
+
<Text size={14} theme='h1' weight='bold'>{league.league_name}</Text>
|
|
56
|
+
<Text style={{ marginTop:3 }} size={12} theme='light'>{league_brackets.length} Brackets</Text>
|
|
57
57
|
</View>
|
|
58
58
|
</View>
|
|
59
59
|
<FlatList
|
|
@@ -68,13 +68,13 @@ const BracketSelector = ({ visible, leagues, brackets, onSelectBracket, onClose
|
|
|
68
68
|
if(!visible){ return <></> }
|
|
69
69
|
return (
|
|
70
70
|
<View style={{ flex:1 }}>
|
|
71
|
-
<
|
|
72
|
-
<Icons.ChevronIcon direction='left' size={12} color={Colors.
|
|
71
|
+
<Button style={{ flexDirection:'row', alignItems:'center', padding:20, borderBottomWidth:1, borderColor:Colors.borders.light }} onPress={() => onClose()}>
|
|
72
|
+
<Icons.ChevronIcon direction='left' size={12} color={Colors.text.h1} />
|
|
73
73
|
<View style={{ flex:1, marginLeft:20 }}>
|
|
74
|
-
<Text size={18}
|
|
75
|
-
<Text style={{ marginTop:4 }} size={14}
|
|
74
|
+
<Text size={18} theme='h1' weight='bold'>Active Brackets</Text>
|
|
75
|
+
<Text style={{ marginTop:4 }} size={14} theme='light' weight='regular'>Select a bracket below to make or edit picks</Text>
|
|
76
76
|
</View>
|
|
77
|
-
</
|
|
77
|
+
</Button>
|
|
78
78
|
<ScrollView style={{ flex:1 }}>
|
|
79
79
|
<FlatList
|
|
80
80
|
data={unique_league_ids}
|