be-components 7.3.5 → 7.3.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/CompetitionManager/api/index.js +9 -0
- package/lib/commonjs/CompetitionManager/api/index.js.map +1 -1
- package/lib/commonjs/CompetitionManager/components/ContestSelector.js +92 -2
- package/lib/commonjs/CompetitionManager/components/ContestSelector.js.map +1 -1
- package/lib/commonjs/EventComponents/api/index.js +90 -0
- package/lib/commonjs/EventComponents/api/index.js.map +1 -1
- package/lib/commonjs/FlashMarket/components/ManageFlashMarket.js +214 -4
- package/lib/commonjs/FlashMarket/components/ManageFlashMarket.js.map +1 -1
- package/lib/commonjs/Group/index.js +4 -1
- package/lib/commonjs/Group/index.js.map +1 -1
- package/lib/commonjs/MarketComponents/api/index.js +14 -7
- package/lib/commonjs/MarketComponents/api/index.js.map +1 -1
- package/lib/module/CompetitionManager/api/index.js +9 -0
- package/lib/module/CompetitionManager/api/index.js.map +1 -1
- package/lib/module/CompetitionManager/components/ContestSelector.js +93 -3
- package/lib/module/CompetitionManager/components/ContestSelector.js.map +1 -1
- package/lib/module/EventComponents/api/index.js +90 -0
- package/lib/module/EventComponents/api/index.js.map +1 -1
- package/lib/module/FlashMarket/components/ManageFlashMarket.js +214 -4
- package/lib/module/FlashMarket/components/ManageFlashMarket.js.map +1 -1
- package/lib/module/Group/index.js +4 -1
- package/lib/module/Group/index.js.map +1 -1
- package/lib/module/MarketComponents/api/index.js +14 -7
- package/lib/module/MarketComponents/api/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/CompetitionManager/api/index.d.ts +1 -0
- package/lib/typescript/lib/commonjs/CompetitionManager/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/CompetitionManager/components/ContestSelector.d.ts +4 -1
- package/lib/typescript/lib/commonjs/CompetitionManager/components/ContestSelector.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/EventComponents/api/index.d.ts +7 -0
- package/lib/typescript/lib/commonjs/EventComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Group/index.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/module/CompetitionManager/api/index.d.ts +1 -0
- package/lib/typescript/lib/module/CompetitionManager/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/CompetitionManager/components/ContestSelector.d.ts +4 -1
- package/lib/typescript/lib/module/CompetitionManager/components/ContestSelector.d.ts.map +1 -1
- package/lib/typescript/lib/module/EventComponents/api/index.d.ts +7 -0
- package/lib/typescript/lib/module/EventComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -1
- package/lib/typescript/lib/module/Group/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/MarketComponents/api/index.d.ts +2 -0
- package/lib/typescript/lib/module/MarketComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/src/CompetitionManager/api/index.d.ts +1 -0
- package/lib/typescript/src/CompetitionManager/api/index.d.ts.map +1 -1
- package/lib/typescript/src/CompetitionManager/components/ContestSelector.d.ts +6 -3
- package/lib/typescript/src/CompetitionManager/components/ContestSelector.d.ts.map +1 -1
- package/lib/typescript/src/EventComponents/api/index.d.ts +12 -1
- package/lib/typescript/src/EventComponents/api/index.d.ts.map +1 -1
- package/lib/typescript/src/FlashMarket/components/ManageFlashMarket.d.ts.map +1 -1
- package/lib/typescript/src/Group/index.d.ts.map +1 -1
- package/lib/typescript/src/MarketComponents/api/index.d.ts +2 -0
- package/lib/typescript/src/MarketComponents/api/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/CompetitionManager/api/index.ts +9 -0
- package/src/CompetitionManager/components/ContestSelector.tsx +109 -48
- package/src/EventComponents/api/index.ts +64 -1
- package/src/FlashMarket/components/ManageFlashMarket.tsx +119 -3
- package/src/Group/index.tsx +2 -1
- package/src/MarketComponents/api/index.ts +8 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { Button, Text, TextInput, View } from "../../Components/Themed"
|
|
3
3
|
import { FlatList, Image, type ViewStyle } from 'react-native';
|
|
4
|
-
import type { FocusPositionProps, MyPlayerProps, PollCampaignProps, PollOptionProps, PollProps, PollSummaryProps, PublicPlayerProps } from '../../types';
|
|
4
|
+
import type { EventProps, FocusPositionProps, LeagueProps, MatchProps, MyPlayerProps, PollCampaignProps, PollOptionProps, PollProps, PollSummaryProps, PublicPlayerProps, TournamentProps } from '../../types';
|
|
5
5
|
import { Icons, Switch, Toggle } from '../../Components';
|
|
6
6
|
import { PollApi, PollCampaignApi, PollOptionApi } from '../../Poll/api';
|
|
7
7
|
import ImageUploader from '../../Components/ImageUploader';
|
|
@@ -11,6 +11,9 @@ import moment from 'moment-mini';
|
|
|
11
11
|
import BETimePicker from '../../Components/BETimePicker';
|
|
12
12
|
import { FlashMarketHelpers } from '../api';
|
|
13
13
|
import { showConfirmAlert } from '../../Components/ConfirmAlert';
|
|
14
|
+
import { MarketComponentApi, MarketComponentHelpers } from '../../MarketComponents/api';
|
|
15
|
+
import ContestSelector from '../../CompetitionManager/components/ContestSelector';
|
|
16
|
+
import { ManageCompetitionApi } from '../../CompetitionManager/api';
|
|
14
17
|
|
|
15
18
|
type ManageFlashMarketProps = {
|
|
16
19
|
poll_id:string,
|
|
@@ -22,7 +25,7 @@ type ManageFlashMarketProps = {
|
|
|
22
25
|
onFocusPosition?:(pos:FocusPositionProps) => void
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
const sections = ['header','activate','pause_resume','closed','resolve','toggle', 'image','question','options','settings','results', 'danger']
|
|
28
|
+
const sections = ['header','activate','pause_resume','closed','resolve','toggle', 'image','question','options','settings', 'contest_selector','results', 'danger']
|
|
26
29
|
const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFocusPosition }:ManageFlashMarketProps) => {
|
|
27
30
|
const Colors = useColors();
|
|
28
31
|
const [ labels, setLabels ] = useState({
|
|
@@ -31,6 +34,17 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
31
34
|
max_stake: '0'
|
|
32
35
|
});
|
|
33
36
|
const { min_stake, max_stake, base_stake } = labels;
|
|
37
|
+
const [ contest_state, setContestState ] = useState<{
|
|
38
|
+
contest_selector:boolean,
|
|
39
|
+
leagues:LeagueProps[],
|
|
40
|
+
event?:EventProps,
|
|
41
|
+
tournament?:TournamentProps,
|
|
42
|
+
match?:MatchProps,
|
|
43
|
+
}>({
|
|
44
|
+
contest_selector: false,
|
|
45
|
+
leagues:[]
|
|
46
|
+
});
|
|
47
|
+
const { event, tournament, match, leagues } = contest_state;
|
|
34
48
|
const [ expand_participants, setExpandParticipants ] = useState(false);
|
|
35
49
|
const [ flash_state, setFlashState ] = useState<{
|
|
36
50
|
loading:boolean,
|
|
@@ -59,8 +73,10 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
59
73
|
const prob_locked = unlocked_options.length <= 1 ? true : false
|
|
60
74
|
const errors = FlashMarketHelpers.isNewValid(real_options, poll_summaries, poll);
|
|
61
75
|
const winning_option = real_options.find(o => o.poll_option_id == poll?.winning_option_id);
|
|
76
|
+
|
|
62
77
|
useEffect(() => {
|
|
63
78
|
PollCampaignApi.setEnvironment();
|
|
79
|
+
ManageCompetitionApi.setEnvironment();
|
|
64
80
|
if(!poll_id){ return }
|
|
65
81
|
getData(poll_id);
|
|
66
82
|
},[poll_id]);
|
|
@@ -74,6 +90,35 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
74
90
|
s.player_ids.map(id => id != '4985' ? player_ids.push(id) : console.log(''))
|
|
75
91
|
})
|
|
76
92
|
const server_players = await PollCampaignApi.getPlayersByPlayerIds([ ...new Set(player_ids.map(id => id))]);
|
|
93
|
+
const s_leagues = await MarketComponentApi.getLeagues();
|
|
94
|
+
let ev:EventProps|undefined = undefined
|
|
95
|
+
let tn:TournamentProps|undefined = undefined
|
|
96
|
+
let mt:MatchProps|undefined = undefined
|
|
97
|
+
switch(server_response.poll.contest_type){
|
|
98
|
+
case 'team':
|
|
99
|
+
if(!server_response.poll.contest_id){ break }
|
|
100
|
+
let evs = await MarketComponentApi.getEventsByEventIds([server_response.poll.contest_id]);
|
|
101
|
+
ev = evs[0]
|
|
102
|
+
break
|
|
103
|
+
case 'tournament':
|
|
104
|
+
if(!server_response.poll.contest_id){ break }
|
|
105
|
+
let tns = await MarketComponentApi.getTournamentsByTournamentIds([server_response.poll.contest_id]);
|
|
106
|
+
tn = tns[0]
|
|
107
|
+
break
|
|
108
|
+
case 'match':
|
|
109
|
+
if(!server_response.poll.contest_id){ break }
|
|
110
|
+
let mtchs = await MarketComponentApi.getMatchesByMatchIds([server_response.poll.contest_id]);
|
|
111
|
+
mt = mtchs[0]
|
|
112
|
+
break
|
|
113
|
+
default: break
|
|
114
|
+
}
|
|
115
|
+
setContestState({
|
|
116
|
+
...contest_state,
|
|
117
|
+
event: ev,
|
|
118
|
+
tournament: tn,
|
|
119
|
+
leagues: s_leagues.filter(l => l.status == 'active').sort((a,b) => a.priority - b.priority),
|
|
120
|
+
match: mt
|
|
121
|
+
})
|
|
77
122
|
setFlashState({
|
|
78
123
|
...flash_state,
|
|
79
124
|
poll: server_response.poll,
|
|
@@ -608,6 +653,40 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
608
653
|
:<></>}
|
|
609
654
|
</View>
|
|
610
655
|
)
|
|
656
|
+
case 'contest_selector':
|
|
657
|
+
if(!poll){ return <></> }
|
|
658
|
+
if(active_step != 'settings'){ return <></> }
|
|
659
|
+
const { contest_title, scheduled_datetime } = MarketComponentHelpers.getContestDetails(poll.contest_type ?? 'tean', event, tournament, match);
|
|
660
|
+
return (
|
|
661
|
+
<View transparent style={{ padding:20, borderBottomWidth:1, borderColor:Colors.borders.light }}>
|
|
662
|
+
<Text theme='h1'>Select Contest</Text>
|
|
663
|
+
<Text theme='description' style={{ marginTop:3 }}>Is this market associated with an existing contest?</Text>
|
|
664
|
+
<View transparent style={{ flexDirection:'row', alignItems:'center' }}>
|
|
665
|
+
<Button float style={{ flex:1, marginTop:10, padding:10 }} onPress={() => setContestState({ ...contest_state, contest_selector:!contest_state.contest_selector })}>
|
|
666
|
+
{contest_title ?
|
|
667
|
+
<View transparent>
|
|
668
|
+
<Text theme='h1'>{contest_title}</Text>
|
|
669
|
+
<Text theme='description' style={{ marginTop:3 }}>{scheduled_datetime.format('MMM DD hh:mm a')}</Text>
|
|
670
|
+
</View>
|
|
671
|
+
:
|
|
672
|
+
<Text theme='h1'>{'Select Contest'}</Text>
|
|
673
|
+
}
|
|
674
|
+
</Button>
|
|
675
|
+
{poll.contest_id ?
|
|
676
|
+
<Button
|
|
677
|
+
title='X'
|
|
678
|
+
transparent
|
|
679
|
+
style={{ padding:10 }}
|
|
680
|
+
title_color={Colors.text.error}
|
|
681
|
+
onPress={() => {
|
|
682
|
+
setContestState({ ...contest_state, event: undefined })
|
|
683
|
+
updatePoll({ ...poll, contest_type: undefined, contest_id: undefined });
|
|
684
|
+
}}
|
|
685
|
+
/>
|
|
686
|
+
:<></>}
|
|
687
|
+
</View>
|
|
688
|
+
</View>
|
|
689
|
+
)
|
|
611
690
|
case 'options':
|
|
612
691
|
if(!poll){ return <></> }
|
|
613
692
|
if(active_step != 'options'){ return <></> }
|
|
@@ -778,7 +857,7 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
778
857
|
</View>
|
|
779
858
|
<BETimePicker
|
|
780
859
|
selected_time={moment(poll?.end_datetime)}
|
|
781
|
-
disabled={settings_edit_allowed ? false : true}
|
|
860
|
+
//disabled={settings_edit_allowed ? false : true}
|
|
782
861
|
onSelectTime={(val) => {
|
|
783
862
|
updatePoll({ ...draft_poll, end_datetime: val })
|
|
784
863
|
}}
|
|
@@ -801,6 +880,43 @@ const ManageFlashMarket = ({ float, header_style, player, onClose, poll_id, onFo
|
|
|
801
880
|
renderItem={renderSections}
|
|
802
881
|
/>
|
|
803
882
|
</View>
|
|
883
|
+
{contest_state.contest_selector ?
|
|
884
|
+
<View type='blur' style={{ position:'absolute', top:0, left:0, right:0, bottom:0, padding:10 }}>
|
|
885
|
+
<ContestSelector
|
|
886
|
+
leagues={leagues}
|
|
887
|
+
action_loading={action_loading}
|
|
888
|
+
onClose={() => setContestState({ ...contest_state, contest_selector: false })}
|
|
889
|
+
onSelectTeamEvent={(event) => {
|
|
890
|
+
if(!poll){ return }
|
|
891
|
+
let new_end_time = moment(event.scheduled_datetime)
|
|
892
|
+
let new_poll:PollProps = { ...poll, contest_type: 'team', contest_id: event.event_id }
|
|
893
|
+
if(moment().isBefore(new_end_time)){ new_poll.end_datetime = new_end_time }
|
|
894
|
+
updatePoll(new_poll)
|
|
895
|
+
setContestState({ ...contest_state, event: event })
|
|
896
|
+
}}
|
|
897
|
+
onDeSelectTournament={(_) => {
|
|
898
|
+
if(!poll){ return }
|
|
899
|
+
setContestState({ ...contest_state, event: undefined, tournament: undefined })
|
|
900
|
+
updatePoll({ ...poll, contest_type: undefined, contest_id: undefined });
|
|
901
|
+
}}
|
|
902
|
+
onSelectTournament={(t) => {
|
|
903
|
+
if(!poll){ return }
|
|
904
|
+
let new_end_time = moment(t.scheduled_datetime)
|
|
905
|
+
let new_poll:PollProps = { ...poll, contest_type: 'tournament', contest_id: t.tournament_id }
|
|
906
|
+
if(moment().isBefore(new_end_time)){ new_poll.end_datetime = new_end_time }
|
|
907
|
+
updatePoll(new_poll)
|
|
908
|
+
setContestState({ ...contest_state, tournament: t, event:undefined })
|
|
909
|
+
}}
|
|
910
|
+
onDeselectTeamEvent={(_) => {
|
|
911
|
+
if(!poll){ return }
|
|
912
|
+
setContestState({ ...contest_state, event: undefined })
|
|
913
|
+
updatePoll({ ...poll, contest_type: undefined, contest_id: undefined });
|
|
914
|
+
}}
|
|
915
|
+
selected_tournaments={tournament ? [tournament] : []}
|
|
916
|
+
selected_team_events={event ? [event] : []}
|
|
917
|
+
/>
|
|
918
|
+
</View>
|
|
919
|
+
:<></>}
|
|
804
920
|
{poll && poll.status == 'inactive' ?
|
|
805
921
|
<View type='blur' style={{ position:'absolute', top:0, left:0, right:0, bottom:0, justifyContent:'center', alignItems:'center' }}>
|
|
806
922
|
<View float style={{ width: '70%' }}>
|
package/src/Group/index.tsx
CHANGED
|
@@ -262,7 +262,7 @@ const GroupComponent = ({ refresh_key, group_id, player, mode, init_invite_code,
|
|
|
262
262
|
let my_gp = g_data.my_group_player && g_data.my_group_player.status == 'inactive' ? undefined : g_data.my_group_player
|
|
263
263
|
|
|
264
264
|
let server_flash = await GroupApi.getActivePolls(group_id);
|
|
265
|
-
setFlashData({ flash_campaigns: server_flash.poll_campaigns, flash_markets: server_flash.polls.filter(p => p.status
|
|
265
|
+
setFlashData({ flash_campaigns: server_flash.poll_campaigns, flash_markets: server_flash.polls.filter(p => !['pending','closed'].includes(p.status)) });
|
|
266
266
|
|
|
267
267
|
setGroupData({
|
|
268
268
|
...group_data,
|
|
@@ -546,6 +546,7 @@ const GroupComponent = ({ refresh_key, group_id, player, mode, init_invite_code,
|
|
|
546
546
|
)
|
|
547
547
|
case 'flash':
|
|
548
548
|
if(flash_campaigns.length == 0){ return <></> }
|
|
549
|
+
if(flash_markets.length == 0){ return <></> }
|
|
549
550
|
return (
|
|
550
551
|
<View float style={{ margin:10 }}>
|
|
551
552
|
<Button style={{ backgroundColor:Colors.views.header, flexDirection:'row', alignItems:'center', padding:10, borderBottomLeftRadius:expanded?0:8, borderBottomRightRadius:expanded?0:8 }} onPress={() => setFlashData({ ...flash_data, expanded: !expanded })}>
|
|
@@ -486,18 +486,18 @@ const MarketComponentHelpers = {
|
|
|
486
486
|
});
|
|
487
487
|
return order_ids
|
|
488
488
|
},
|
|
489
|
-
getContestDetails: (contest_type:string, event?:EventProps, tournament?:TournamentProps, match?:MatchProps):{ contest_title:string } => {
|
|
489
|
+
getContestDetails: (contest_type:string, event?:EventProps, tournament?:TournamentProps, match?:MatchProps):{ contest_title:string, scheduled_datetime:Moment } => {
|
|
490
490
|
switch(contest_type){
|
|
491
491
|
case 'team':
|
|
492
|
-
if(!event){ return { contest_title: '' } }
|
|
493
|
-
return { contest_title: event.event_title }
|
|
492
|
+
if(!event){ return { contest_title: '', scheduled_datetime: moment() } }
|
|
493
|
+
return { contest_title: event.event_title, scheduled_datetime: moment(event.scheduled_datetime) }
|
|
494
494
|
case 'tournament':
|
|
495
|
-
if(!tournament){ return { contest_title: '' } }
|
|
496
|
-
return { contest_title: tournament.tournament_name }
|
|
495
|
+
if(!tournament){ return { contest_title: '', scheduled_datetime: moment() } }
|
|
496
|
+
return { contest_title: tournament.tournament_name, scheduled_datetime: moment(tournament.scheduled_datetime) }
|
|
497
497
|
case 'match':
|
|
498
|
-
if(!match){ return { contest_title: '' } }
|
|
499
|
-
return { contest_title: match.match_title }
|
|
500
|
-
default: return { contest_title: '' }
|
|
498
|
+
if(!match){ return { contest_title: '', scheduled_datetime: moment() } }
|
|
499
|
+
return { contest_title: match.match_title, scheduled_datetime: moment(match.scheduled_datetime) }
|
|
500
|
+
default: return { contest_title: '', scheduled_datetime: moment() }
|
|
501
501
|
}
|
|
502
502
|
},
|
|
503
503
|
getReconFromMarketStats: (ms:MarketStatsProps[]) => {
|