be-components 5.8.0 → 5.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/Campaign/api/index.js +124 -0
- package/lib/commonjs/Campaign/api/index.js.map +1 -1
- package/lib/commonjs/Campaign/components/ActionList.js +46 -9
- package/lib/commonjs/Campaign/components/ActionList.js.map +1 -1
- package/lib/commonjs/Campaign/components/BetAlert.js +22 -10
- package/lib/commonjs/Campaign/components/BetAlert.js.map +1 -1
- package/lib/commonjs/Campaign/components/CampaignAnalytics.js +142 -11
- package/lib/commonjs/Campaign/components/CampaignAnalytics.js.map +1 -1
- package/lib/commonjs/Campaign/components/NewPlayerAlert.js +139 -0
- package/lib/commonjs/Campaign/components/NewPlayerAlert.js.map +1 -0
- package/lib/commonjs/Campaign/components/ParticipantCard.js +5 -0
- package/lib/commonjs/Campaign/components/ParticipantCard.js.map +1 -1
- package/lib/commonjs/Campaign/components/ParticipantsList.js +0 -1
- package/lib/commonjs/Campaign/components/ParticipantsList.js.map +1 -1
- package/lib/commonjs/Campaign/index.js +564 -222
- package/lib/commonjs/Campaign/index.js.map +1 -1
- package/lib/commonjs/FlashMarket/FlashHolder.js +29 -8
- package/lib/commonjs/FlashMarket/FlashHolder.js.map +1 -1
- package/lib/commonjs/FlashMarket/index.js +4 -4
- package/lib/commonjs/FlashMarket/index.js.map +1 -1
- package/lib/commonjs/MarketComponents/api/index.js +21 -0
- package/lib/commonjs/MarketComponents/api/index.js.map +1 -1
- package/lib/commonjs/Ticker/index.js +112 -26
- package/lib/commonjs/Ticker/index.js.map +1 -1
- package/lib/module/Campaign/api/index.js +124 -0
- package/lib/module/Campaign/api/index.js.map +1 -1
- package/lib/module/Campaign/components/ActionList.js +46 -9
- package/lib/module/Campaign/components/ActionList.js.map +1 -1
- package/lib/module/Campaign/components/BetAlert.js +22 -10
- package/lib/module/Campaign/components/BetAlert.js.map +1 -1
- package/lib/module/Campaign/components/CampaignAnalytics.js +144 -13
- package/lib/module/Campaign/components/CampaignAnalytics.js.map +1 -1
- package/lib/module/Campaign/components/NewPlayerAlert.js +132 -0
- package/lib/module/Campaign/components/NewPlayerAlert.js.map +1 -0
- package/lib/module/Campaign/components/ParticipantCard.js +5 -0
- package/lib/module/Campaign/components/ParticipantCard.js.map +1 -1
- package/lib/module/Campaign/components/ParticipantsList.js +0 -1
- package/lib/module/Campaign/components/ParticipantsList.js.map +1 -1
- package/lib/module/Campaign/index.js +564 -222
- package/lib/module/Campaign/index.js.map +1 -1
- package/lib/module/FlashMarket/FlashHolder.js +29 -8
- package/lib/module/FlashMarket/FlashHolder.js.map +1 -1
- package/lib/module/FlashMarket/index.js +4 -4
- package/lib/module/FlashMarket/index.js.map +1 -1
- package/lib/module/MarketComponents/api/index.js +21 -0
- package/lib/module/MarketComponents/api/index.js.map +1 -1
- package/lib/module/Ticker/index.js +115 -29
- package/lib/module/Ticker/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/api/index.d.ts +11 -0
- package/lib/typescript/lib/commonjs/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/ActionList.d.ts +4 -1
- package/lib/typescript/lib/commonjs/Campaign/components/ActionList.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/BetAlert.d.ts +3 -1
- package/lib/typescript/lib/commonjs/Campaign/components/BetAlert.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/CampaignAnalytics.d.ts +4 -2
- package/lib/typescript/lib/commonjs/Campaign/components/CampaignAnalytics.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/NewPlayerAlert.d.ts +10 -0
- package/lib/typescript/lib/commonjs/Campaign/components/NewPlayerAlert.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/Campaign/components/ParticipantCard.d.ts +3 -1
- package/lib/typescript/lib/commonjs/Campaign/components/ParticipantCard.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/ParticipantsList.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/index.d.ts +8 -5
- package/lib/typescript/lib/commonjs/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts +1 -0
- package/lib/typescript/lib/commonjs/MarketComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Ticker/index.d.ts +2 -1
- package/lib/typescript/lib/commonjs/Ticker/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/api/index.d.ts +11 -0
- package/lib/typescript/lib/module/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/ActionList.d.ts +4 -1
- package/lib/typescript/lib/module/Campaign/components/ActionList.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/BetAlert.d.ts +3 -1
- package/lib/typescript/lib/module/Campaign/components/BetAlert.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/CampaignAnalytics.d.ts +4 -2
- package/lib/typescript/lib/module/Campaign/components/CampaignAnalytics.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/NewPlayerAlert.d.ts +10 -0
- package/lib/typescript/lib/module/Campaign/components/NewPlayerAlert.d.ts.map +1 -0
- package/lib/typescript/lib/module/Campaign/components/ParticipantCard.d.ts +3 -1
- package/lib/typescript/lib/module/Campaign/components/ParticipantCard.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/ParticipantsList.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/index.d.ts +8 -5
- package/lib/typescript/lib/module/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/lib/module/MarketComponents/api/index.d.ts +1 -0
- package/lib/typescript/lib/module/MarketComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Ticker/index.d.ts +2 -1
- package/lib/typescript/lib/module/Ticker/index.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/api/index.d.ts +21 -6
- package/lib/typescript/src/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/components/ActionList.d.ts +5 -2
- package/lib/typescript/src/Campaign/components/ActionList.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/components/BetAlert.d.ts +4 -2
- package/lib/typescript/src/Campaign/components/BetAlert.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/components/CampaignAnalytics.d.ts +6 -3
- package/lib/typescript/src/Campaign/components/CampaignAnalytics.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/components/NewPlayerAlert.d.ts +12 -0
- package/lib/typescript/src/Campaign/components/NewPlayerAlert.d.ts.map +1 -0
- package/lib/typescript/src/Campaign/components/ParticipantCard.d.ts +4 -2
- package/lib/typescript/src/Campaign/components/ParticipantCard.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/index.d.ts +7 -4
- package/lib/typescript/src/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/src/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/src/FlashMarket/index.d.ts.map +1 -1
- package/lib/typescript/src/MarketComponents/api/index.d.ts +3 -2
- package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/src/Ticker/index.d.ts +2 -1
- package/lib/typescript/src/Ticker/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Campaign/api/index.ts +86 -4
- package/src/Campaign/components/ActionList.tsx +38 -13
- package/src/Campaign/components/BetAlert.tsx +15 -6
- package/src/Campaign/components/CampaignAnalytics.tsx +76 -13
- package/src/Campaign/components/NewPlayerAlert.tsx +81 -0
- package/src/Campaign/components/ParticipantCard.tsx +7 -2
- package/src/Campaign/components/ParticipantsList.tsx +1 -1
- package/src/Campaign/index.tsx +421 -188
- package/src/FlashMarket/FlashHolder.tsx +17 -6
- package/src/FlashMarket/index.tsx +3 -1
- package/src/MarketComponents/api/index.ts +16 -2
- package/src/Ticker/index.tsx +64 -32
- package/src/types.d.ts +3 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Image } from "react-native";
|
|
2
2
|
import { Icons } from "../../Components";
|
|
3
3
|
import { Text, View } from "../../Components/Themed";
|
|
4
|
-
import type { AthleteProps, EventProps, OrderProps, PublicPlayerProps, TeamProps } from "../../types"
|
|
4
|
+
import type { AthleteProps, EventProps, LeagueProps, OrderProps, PublicPlayerProps, TeamProps, TournamentProps } from "../../types"
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import OrderGradeBar from "../../MarketComponents/components/OrderGradeBar";
|
|
7
7
|
import { MarketComponentHelpers } from "../../MarketComponents/api";
|
|
@@ -9,19 +9,22 @@ import QRCode from "react-qr-code";
|
|
|
9
9
|
import { useColors } from "../../constants/useColors";
|
|
10
10
|
import moment from "moment-mini";
|
|
11
11
|
import ProgressTimer from "./ProgressTimer";
|
|
12
|
+
import { AthleteImage } from "../../Components/Jerseys";
|
|
12
13
|
|
|
13
14
|
type BetAlertProps = {
|
|
14
15
|
order:OrderProps,
|
|
16
|
+
league?:LeagueProps,
|
|
15
17
|
team?:TeamProps,
|
|
16
18
|
athlete?:AthleteProps,
|
|
17
19
|
event?:EventProps,
|
|
20
|
+
tournament?:TournamentProps,
|
|
18
21
|
player?:PublicPlayerProps,
|
|
19
22
|
color_mode?:'light'|'dark'
|
|
20
23
|
|
|
21
24
|
onClose:() => void
|
|
22
25
|
}
|
|
23
26
|
|
|
24
|
-
const BetAlert = ({ player, order, team, athlete, event, color_mode, onClose }:BetAlertProps) => {
|
|
27
|
+
const BetAlert = ({ player, order, league, team, athlete, event, tournament, color_mode, onClose }:BetAlertProps) => {
|
|
25
28
|
const Colors = useColors({ mode: color_mode });
|
|
26
29
|
|
|
27
30
|
return (
|
|
@@ -52,6 +55,11 @@ const BetAlert = ({ player, order, team, athlete, event, color_mode, onClose }:B
|
|
|
52
55
|
<Text theme='h2'>{event.home?.market_name}</Text>
|
|
53
56
|
</View>
|
|
54
57
|
:<></>}
|
|
58
|
+
{tournament ?
|
|
59
|
+
<View style={{ flexDirection:'row', alignItems:'center', justifyContent:'center', padding:10 }}>
|
|
60
|
+
<Text theme='h1' style={{ marginRight:20, marginLeft:20 }}>{tournament.tournament_name}</Text>
|
|
61
|
+
</View>
|
|
62
|
+
:<></>}
|
|
55
63
|
{player ?
|
|
56
64
|
<View>
|
|
57
65
|
<Image
|
|
@@ -68,10 +76,11 @@ const BetAlert = ({ player, order, team, athlete, event, color_mode, onClose }:B
|
|
|
68
76
|
resizeMode='cover'
|
|
69
77
|
/>
|
|
70
78
|
:athlete ?
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
<AthleteImage
|
|
80
|
+
athlete={athlete}
|
|
81
|
+
size={40}
|
|
82
|
+
number_size={18}
|
|
83
|
+
league={league}
|
|
75
84
|
/>
|
|
76
85
|
:<></>}
|
|
77
86
|
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { View } from "../../Components/Themed"
|
|
2
|
+
import { Text, View } from "../../Components/Themed"
|
|
3
3
|
import moment from 'moment-mini';
|
|
4
|
-
import { CampaignApi } from '../api';
|
|
5
|
-
import type { OrderAnalyticsProps } from '../../types';
|
|
4
|
+
import { CampaignApi, CampaignHelpers } from '../api';
|
|
5
|
+
import type { CampaignParticipantProps, NewOverallAnalytics, OrderAnalyticsProps, PublicPlayerProps } from '../../types';
|
|
6
|
+
import { ActivityIndicator, FlatList, Image } from 'react-native';
|
|
7
|
+
import { useColors } from '../../constants/useColors';
|
|
8
|
+
import { Icons } from '../../Components';
|
|
9
|
+
import { CompetitionHelpers } from '../../Competition/api';
|
|
6
10
|
|
|
7
11
|
|
|
8
|
-
type
|
|
9
|
-
campaign_id:string
|
|
12
|
+
type CampaignLeaderboardProps = {
|
|
13
|
+
campaign_id:string,
|
|
14
|
+
players:PublicPlayerProps[],
|
|
15
|
+
campaign_participants:CampaignParticipantProps[]
|
|
10
16
|
}
|
|
11
17
|
|
|
12
|
-
const
|
|
13
|
-
|
|
18
|
+
const CampaignLeaderboard = ({ campaign_id, players, campaign_participants }:CampaignLeaderboardProps) => {
|
|
19
|
+
const Colors = useColors();
|
|
14
20
|
const time_options = [
|
|
15
|
-
{ label: 'Last
|
|
21
|
+
{ label: 'Last Year', to: moment().unix(), from: moment().subtract(365, 'days').unix() }
|
|
16
22
|
]
|
|
17
23
|
|
|
18
24
|
const [ module_state, setModuleState ] = useState<{
|
|
@@ -20,11 +26,11 @@ const CampaignAnalytics = ({ campaign_id }:CampaignAnalyticsProps) => {
|
|
|
20
26
|
time_option: any,
|
|
21
27
|
analytics:OrderAnalyticsProps[]
|
|
22
28
|
}>({
|
|
23
|
-
loading:
|
|
29
|
+
loading:true,
|
|
24
30
|
time_option: time_options[0],
|
|
25
31
|
analytics: []
|
|
26
32
|
});
|
|
27
|
-
|
|
33
|
+
const { loading, analytics } = module_state;
|
|
28
34
|
|
|
29
35
|
useEffect(() => {
|
|
30
36
|
let option = time_options[0]
|
|
@@ -34,20 +40,77 @@ const CampaignAnalytics = ({ campaign_id }:CampaignAnalyticsProps) => {
|
|
|
34
40
|
|
|
35
41
|
const handleLoadAnalytics = async(option:{ label:string, to:number, from:number }) => {
|
|
36
42
|
CampaignApi.setEnvironment();
|
|
43
|
+
setModuleState({ ...module_state, loading:true });
|
|
37
44
|
const analytics = await CampaignApi.getCampaignAnalytics(campaign_id, option.to, option.from);
|
|
38
45
|
setModuleState({
|
|
39
46
|
...module_state,
|
|
47
|
+
loading:false,
|
|
40
48
|
time_option: option,
|
|
41
49
|
analytics
|
|
42
50
|
})
|
|
43
51
|
}
|
|
44
52
|
|
|
45
|
-
|
|
53
|
+
const renderLeaders = (data:{ item:NewOverallAnalytics, index:number }) => {
|
|
54
|
+
const player = players.find(p => p.player_id == data.item.player_id);
|
|
55
|
+
if(!player){ return <></> }
|
|
56
|
+
const participant = campaign_participants.find(cp => cp.player_id == data.item.player_id);
|
|
57
|
+
return (
|
|
58
|
+
<View style={{ flexDirection:'row', alignItems:'center', padding:10, borderBottomWidth:1, borderColor:Colors.borders.light }}>
|
|
59
|
+
<View transparent style={{ paddingRight:10, borderRightWidth:1, borderColor:Colors.borders.light }}>
|
|
60
|
+
<Text theme='h1'>{CompetitionHelpers.formatPlace(data.index + 1)}</Text>
|
|
61
|
+
</View>
|
|
62
|
+
<Image
|
|
63
|
+
source={{ uri: player.profile_pic && player.profile_pic != '' ? player.profile_pic : 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
64
|
+
style={{ height:40, width:40, borderRadius:100, marginLeft:10 }}
|
|
65
|
+
/>
|
|
66
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
67
|
+
<Text theme='h1'>@{player.username}</Text>
|
|
68
|
+
{participant ?
|
|
69
|
+
<Text theme='description' style={{ marginTop:3 }}>First checked in {moment(participant.create_datetime).fromNow()}</Text>
|
|
70
|
+
:<></>}
|
|
71
|
+
</View>
|
|
72
|
+
<View>
|
|
73
|
+
<Text theme='description' color={data.item.roi_pct >= 0 ? Colors.text.success : Colors.text.error}>{(data.item.roi_pct * 100).toFixed(2)}%</Text>
|
|
74
|
+
</View>
|
|
75
|
+
</View>
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const leaders = CampaignHelpers.getCampaignLeaderboard(analytics);
|
|
46
80
|
return (
|
|
47
81
|
<View>
|
|
48
|
-
|
|
82
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
83
|
+
<Icons.LeaderboardIcon size={28} color={Colors.text.h1} />
|
|
84
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
85
|
+
<Text theme='h1'>Leaderboard</Text>
|
|
86
|
+
<Text theme='description' style={{ marginTop:3 }}>Leaders based on action placed while checked in</Text>
|
|
87
|
+
</View>
|
|
88
|
+
<View transparent style={{ marginLeft:5 }}>
|
|
89
|
+
<Text theme='action'>ROI %</Text>
|
|
90
|
+
</View>
|
|
91
|
+
</View>
|
|
92
|
+
<View transparent>
|
|
93
|
+
{loading ?
|
|
94
|
+
<ActivityIndicator style={{ margin:20 }} size='large' color={Colors.text.h1} />
|
|
95
|
+
:<></>}
|
|
96
|
+
{leaders.length > 0 ?
|
|
97
|
+
<FlatList
|
|
98
|
+
data={leaders}
|
|
99
|
+
key={'campaign_leaders'}
|
|
100
|
+
keyExtractor={(item) => item.player_id.toString()}
|
|
101
|
+
renderItem={renderLeaders}
|
|
102
|
+
/>
|
|
103
|
+
: !loading ?
|
|
104
|
+
<View style={{ alignItems:'center', padding:10 }}>
|
|
105
|
+
<View float style={{ height:120, width:120, borderRadius:8, padding:10, justifyContent:'center', alignItems:'center' }}>
|
|
106
|
+
<Icons.LeaderboardIcon size={36} color={Colors.text.h1} />
|
|
107
|
+
<Text theme='h1' style={{ marginTop:10 }} textAlign='center'>No Data Yet!</Text>
|
|
108
|
+
</View>
|
|
109
|
+
</View>
|
|
110
|
+
:<></>}
|
|
111
|
+
</View>
|
|
49
112
|
</View>
|
|
50
113
|
)
|
|
51
114
|
}
|
|
52
115
|
|
|
53
|
-
export default
|
|
116
|
+
export default CampaignLeaderboard
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button, Text, View } from "../../Components/Themed"
|
|
3
|
+
import type { CampaignParticipantProps, PublicPlayerProps } from "../../types"
|
|
4
|
+
import { Icons } from '../../Components';
|
|
5
|
+
import { useColors } from '../../constants/useColors';
|
|
6
|
+
import moment from 'moment-mini';
|
|
7
|
+
import { Image } from 'react-native';
|
|
8
|
+
import ProgressTimer from './ProgressTimer';
|
|
9
|
+
import QRCode from 'react-qr-code';
|
|
10
|
+
|
|
11
|
+
type NewPlayerAlertProps = {
|
|
12
|
+
view_mode:'desktop'|'mobile',
|
|
13
|
+
player:PublicPlayerProps,
|
|
14
|
+
campaign_participant:CampaignParticipantProps,
|
|
15
|
+
onViewProfile?:(player:PublicPlayerProps) => void
|
|
16
|
+
onClose:() => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const NewPlayerAlert = ({ player, view_mode, campaign_participant, onClose, onViewProfile }:NewPlayerAlertProps) => {
|
|
20
|
+
const Colors = useColors();
|
|
21
|
+
return (
|
|
22
|
+
<View float style={{ width:350 }}>
|
|
23
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:18, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
|
|
24
|
+
<Icons.BettorEdgeIcon size={18} color={Colors.text.h1} />
|
|
25
|
+
<View transparent style={{ flex:1, marginLeft:20, marginRight:10 }}>
|
|
26
|
+
<Text theme='h1'>NEW PLAYER ALERT!</Text>
|
|
27
|
+
<Text theme='description' style={{ marginTop:5 }}>@{player?.username} {`\u2022`} First Checked In {moment(campaign_participant.create_datetime).fromNow()}</Text>
|
|
28
|
+
</View>
|
|
29
|
+
</View>
|
|
30
|
+
<View type='body'>
|
|
31
|
+
<Image
|
|
32
|
+
source={{ uri: player.profile_pic && player.profile_pic != '' ? player.profile_pic : 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
33
|
+
style={{ height:200, width:350 }}
|
|
34
|
+
resizeMode='cover'
|
|
35
|
+
/>
|
|
36
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
37
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
38
|
+
<Text theme='h1'>@{player.username}</Text>
|
|
39
|
+
<Text style={{ marginTop:3 }} theme='description'>Joined BettorEdge {moment(player.create_datetime).fromNow()}</Text>
|
|
40
|
+
</View>
|
|
41
|
+
</View>
|
|
42
|
+
{view_mode == 'desktop' ?
|
|
43
|
+
<View type='header' style={{alignItems:'center', padding:10}}>
|
|
44
|
+
<QRCode
|
|
45
|
+
size={100}
|
|
46
|
+
value={`https://play.bettoredge.com/social/player/${campaign_participant.player_id}`}
|
|
47
|
+
/>
|
|
48
|
+
<Text textAlign='center' theme='h2' style={{ marginTop:4 }}>CHECK OUT MY PROFILE</Text>
|
|
49
|
+
</View>
|
|
50
|
+
:<></>}
|
|
51
|
+
</View>
|
|
52
|
+
<View type='footer' style={{ borderBottomRightRadius:view_mode == 'desktop' ? 8: 0, borderBottomLeftRadius:view_mode == 'desktop'?8:0 }}>
|
|
53
|
+
<ProgressTimer
|
|
54
|
+
onTimesUp={() => onClose()}
|
|
55
|
+
time_id={campaign_participant.campaign_participant_id.toString()}
|
|
56
|
+
total_time={15}
|
|
57
|
+
/>
|
|
58
|
+
</View>
|
|
59
|
+
{view_mode == 'mobile' ?
|
|
60
|
+
<View type='footer' style={{ flexDirection:'row', alignItems:'center', borderBottomRightRadius:8, borderBottomLeftRadius:8, padding:10 }}>
|
|
61
|
+
{onViewProfile ?
|
|
62
|
+
<Button
|
|
63
|
+
title='View Profile'
|
|
64
|
+
type='success'
|
|
65
|
+
style={{ flex:1, marginRight:3 }}
|
|
66
|
+
onPress={() => onViewProfile(player)}
|
|
67
|
+
/>
|
|
68
|
+
:<></>}
|
|
69
|
+
<Button
|
|
70
|
+
title='CLOSE'
|
|
71
|
+
type='error'
|
|
72
|
+
style={{ flex:1, marginLeft:3 }}
|
|
73
|
+
onPress={() => onClose()}
|
|
74
|
+
/>
|
|
75
|
+
</View>
|
|
76
|
+
:<></>}
|
|
77
|
+
</View>
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export default NewPlayerAlert
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Text, View } from "../../Components/Themed"
|
|
3
|
-
import type { CampaignParticipantProps, EventProps, OrderAnalyticsProps, OrderProps, PublicPlayerProps } from "../../types"
|
|
3
|
+
import type { CampaignParticipantProps, EventProps, MatchProps, OrderAnalyticsProps, OrderProps, PublicPlayerProps, TournamentProps } from "../../types"
|
|
4
4
|
import { Image } from 'react-native';
|
|
5
5
|
import moment from 'moment-mini';
|
|
6
6
|
import ActionList from './ActionList';
|
|
@@ -11,10 +11,12 @@ type ParticipantCardProps = {
|
|
|
11
11
|
campaign_participant:CampaignParticipantProps,
|
|
12
12
|
player:PublicPlayerProps,
|
|
13
13
|
orders:OrderProps[],
|
|
14
|
+
tournaments:TournamentProps[],
|
|
15
|
+
matches:MatchProps[],
|
|
14
16
|
analytics:OrderAnalyticsProps[],
|
|
15
17
|
events:EventProps[]
|
|
16
18
|
}
|
|
17
|
-
const ParticipantCard = ({ player, campaign_participant, orders, events, analytics }:ParticipantCardProps) => {
|
|
19
|
+
const ParticipantCard = ({ player, campaign_participant, orders, events, tournaments, matches, analytics }:ParticipantCardProps) => {
|
|
18
20
|
const agg = CampaignHelpers.aggregateAnalytics(analytics);
|
|
19
21
|
|
|
20
22
|
return (
|
|
@@ -67,6 +69,9 @@ const ParticipantCard = ({ player, campaign_participant, orders, events, analyti
|
|
|
67
69
|
</View>
|
|
68
70
|
<ActionList
|
|
69
71
|
orders={orders}
|
|
72
|
+
hide_header
|
|
73
|
+
tournaments={tournaments}
|
|
74
|
+
matches={matches}
|
|
70
75
|
players={[player]}
|
|
71
76
|
events={events}
|
|
72
77
|
/>
|
|
@@ -44,7 +44,7 @@ const ParticipantsList = ({ campaign_participants, players, selected_participant
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
|
-
<View
|
|
47
|
+
<View style={{ flex:1 }}>
|
|
48
48
|
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
49
49
|
<View transparent style={{ flex:1, marginRight:10 }}>
|
|
50
50
|
<Text theme='h1'>Participants</Text>
|