be-components 6.3.1 → 6.3.3
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 +13 -0
- package/lib/commonjs/Campaign/api/index.js.map +1 -1
- package/lib/commonjs/Campaign/components/GolferAlert.js +135 -0
- package/lib/commonjs/Campaign/components/GolferAlert.js.map +1 -0
- package/lib/commonjs/Campaign/index.js +798 -2
- package/lib/commonjs/Campaign/index.js.map +1 -1
- package/lib/commonjs/Components/Jerseys.js +0 -1
- package/lib/commonjs/Components/Jerseys.js.map +1 -1
- package/lib/commonjs/FlashMarket/FlashHolder.js +12 -3
- package/lib/commonjs/FlashMarket/FlashHolder.js.map +1 -1
- package/lib/commonjs/FlashMarket/index.js +4 -2
- package/lib/commonjs/FlashMarket/index.js.map +1 -1
- package/lib/commonjs/Poll/api/index.js +10 -0
- package/lib/commonjs/Poll/api/index.js.map +1 -1
- package/lib/commonjs/Poll/index.js +4 -0
- package/lib/commonjs/Poll/index.js.map +1 -1
- package/lib/module/Campaign/api/index.js +13 -0
- package/lib/module/Campaign/api/index.js.map +1 -1
- package/lib/module/Campaign/components/GolferAlert.js +128 -0
- package/lib/module/Campaign/components/GolferAlert.js.map +1 -0
- package/lib/module/Campaign/index.js +800 -4
- package/lib/module/Campaign/index.js.map +1 -1
- package/lib/module/Components/Jerseys.js +0 -1
- package/lib/module/Components/Jerseys.js.map +1 -1
- package/lib/module/FlashMarket/FlashHolder.js +12 -3
- package/lib/module/FlashMarket/FlashHolder.js.map +1 -1
- package/lib/module/FlashMarket/index.js +4 -2
- package/lib/module/FlashMarket/index.js.map +1 -1
- package/lib/module/Poll/api/index.js +10 -0
- package/lib/module/Poll/api/index.js.map +1 -1
- package/lib/module/Poll/index.js +4 -0
- package/lib/module/Poll/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/api/index.d.ts +1 -0
- package/lib/typescript/lib/commonjs/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Campaign/components/GolferAlert.d.ts +10 -0
- package/lib/typescript/lib/commonjs/Campaign/components/GolferAlert.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/Campaign/index.d.ts +2 -1
- package/lib/typescript/lib/commonjs/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Components/Jerseys.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/FlashMarket/FlashHolder.d.ts +5 -1
- package/lib/typescript/lib/commonjs/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/FlashMarket/index.d.ts +3 -1
- package/lib/typescript/lib/commonjs/FlashMarket/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Poll/api/index.d.ts +1 -0
- package/lib/typescript/lib/commonjs/Poll/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/Poll/index.d.ts +2 -1
- package/lib/typescript/lib/commonjs/Poll/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/api/index.d.ts +1 -0
- package/lib/typescript/lib/module/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Campaign/components/GolferAlert.d.ts +10 -0
- package/lib/typescript/lib/module/Campaign/components/GolferAlert.d.ts.map +1 -0
- package/lib/typescript/lib/module/Campaign/index.d.ts +2 -1
- package/lib/typescript/lib/module/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Components/Jerseys.d.ts.map +1 -1
- package/lib/typescript/lib/module/FlashMarket/FlashHolder.d.ts +5 -1
- package/lib/typescript/lib/module/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/lib/module/FlashMarket/index.d.ts +3 -1
- package/lib/typescript/lib/module/FlashMarket/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Poll/api/index.d.ts +1 -0
- package/lib/typescript/lib/module/Poll/api/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/Poll/index.d.ts +2 -1
- package/lib/typescript/lib/module/Poll/index.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/api/index.d.ts +2 -1
- package/lib/typescript/src/Campaign/api/index.d.ts.map +1 -1
- package/lib/typescript/src/Campaign/components/GolferAlert.d.ts +12 -0
- package/lib/typescript/src/Campaign/components/GolferAlert.d.ts.map +1 -0
- package/lib/typescript/src/Campaign/index.d.ts +2 -1
- package/lib/typescript/src/Campaign/index.d.ts.map +1 -1
- package/lib/typescript/src/FlashMarket/FlashHolder.d.ts +5 -1
- package/lib/typescript/src/FlashMarket/FlashHolder.d.ts.map +1 -1
- package/lib/typescript/src/FlashMarket/index.d.ts +3 -1
- package/lib/typescript/src/FlashMarket/index.d.ts.map +1 -1
- package/lib/typescript/src/Poll/api/index.d.ts +1 -0
- package/lib/typescript/src/Poll/api/index.d.ts.map +1 -1
- package/lib/typescript/src/Poll/index.d.ts +2 -1
- package/lib/typescript/src/Poll/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Campaign/api/index.ts +10 -1
- package/src/Campaign/components/GolferAlert.tsx +74 -0
- package/src/Campaign/index.tsx +425 -9
- package/src/Components/Jerseys.tsx +1 -1
- package/src/FlashMarket/FlashHolder.tsx +10 -4
- package/src/FlashMarket/index.tsx +5 -3
- package/src/Poll/api/index.ts +8 -0
- package/src/Poll/index.tsx +5 -1
- package/src/types.d.ts +1 -1
package/src/Campaign/index.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { FlatList, Image, useWindowDimensions } from "react-native"
|
|
2
|
+
import { FlatList, Image, ImageBackground, useWindowDimensions } from "react-native"
|
|
3
3
|
import { Button, Text, View } from '../Components/Themed';
|
|
4
|
-
import type { AthleteProps, CampaignParticipantProps, CampaignProps, CompetitionProps, EventProps, LeagueProps, MarketProps, MatchProps, OrderAnalyticsProps, OrderProps, PollCampaignProps, PublicPlayerProps, TeamProps, TournamentProps } from '../types';
|
|
4
|
+
import type { AthleteProps, CampaignParticipantProps, CampaignProps, CompanyProps, CompetitionProps, EventProps, LeagueProps, MarketProps, MatchProps, OrderAnalyticsProps, OrderProps, PollCampaignProps, PollOptionProps, PollProps, PublicPlayerProps, TeamProps, TournamentProps } from '../types';
|
|
5
5
|
import { CampaignApi, CampaignHelpers } from '../Campaign/api';
|
|
6
6
|
import { MarketComponentApi } from '../MarketComponents/api';
|
|
7
7
|
import { useColors } from '../constants/useColors';
|
|
@@ -15,12 +15,16 @@ import CampaignAnalytics from './components/CampaignAnalytics';
|
|
|
15
15
|
import SocketManager from '../Socket';
|
|
16
16
|
import NewPlayerAlert from './components/NewPlayerAlert';
|
|
17
17
|
import ActionList from './components/ActionList';
|
|
18
|
-
import { Icons, Toggle } from '../Components';
|
|
18
|
+
import { AutoScrollingFlatList, Icons, Toggle } from '../Components';
|
|
19
|
+
import { PollApi, PollCampaignApi, PollOptionApi } from '../Poll/api';
|
|
20
|
+
import FlashHolder from '../FlashMarket/FlashHolder';
|
|
21
|
+
import GolferAlert from './components/GolferAlert';
|
|
19
22
|
|
|
20
23
|
type CampaignAppProps = {
|
|
21
24
|
player_id?:string,
|
|
22
25
|
campaign_id:string,
|
|
23
26
|
distinct_id:string,
|
|
27
|
+
mode?:'golf',
|
|
24
28
|
color_mode?:'light'|'dark',
|
|
25
29
|
onCreateOrder?:(order:OrderProps) => void,
|
|
26
30
|
action_loading?:boolean,
|
|
@@ -37,9 +41,11 @@ type CampaignAppProps = {
|
|
|
37
41
|
|
|
38
42
|
const HEADER_HEIGHT = 75
|
|
39
43
|
const sections = ['header', 'prize', 'participants', 'toggle', 'desktop_data', 'mobile_ticker', 'mobile_player', 'mobile_leaderboard', 'engagements']
|
|
40
|
-
const
|
|
44
|
+
//const golf_sections = ['header', 'closest_pin', 'sponsors']
|
|
45
|
+
const Campaign = ({ player_id, campaign_id, insets, color_mode, mode, distinct_id, onSelectCompetition, onSelectPollCampaign, onCreateOrder, onViewProfile, onCheckedIn, onCheckedOut, onBetNow }:CampaignAppProps) => {
|
|
41
46
|
const Colors = useColors();
|
|
42
47
|
const [ needs_reload, setNeedsReload ] = useState(false);
|
|
48
|
+
const [ golf_leader_size, setGolfLeaderSize ] = useState({ height:0, width:0 })
|
|
43
49
|
const [ new_player_alert, setNewPlayerAlert ] = useState<CampaignParticipantProps|undefined>(undefined);
|
|
44
50
|
const [ new_bet_alert, setNewBetAlert ] = useState<OrderProps | undefined>(undefined);
|
|
45
51
|
//const [ refresh, setRefresh ] = useState(0);
|
|
@@ -68,12 +74,15 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
68
74
|
action_page:number,
|
|
69
75
|
campaign_participants:CampaignParticipantProps[],
|
|
70
76
|
teams:TeamProps[],
|
|
77
|
+
sponsors:CompanyProps[],
|
|
71
78
|
athletes:AthleteProps[],
|
|
72
79
|
leagues:LeagueProps[],
|
|
73
80
|
tournaments:TournamentProps[],
|
|
74
81
|
matches:MatchProps[],
|
|
75
82
|
markets:MarketProps[],
|
|
76
83
|
poll_campaigns:PollCampaignProps[],
|
|
84
|
+
flash_markets:PollProps[],
|
|
85
|
+
flash_options:PollOptionProps[],
|
|
77
86
|
competitions:CompetitionProps[],
|
|
78
87
|
orders:OrderProps[],
|
|
79
88
|
events:EventProps[],
|
|
@@ -85,6 +94,9 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
85
94
|
leagues:[],
|
|
86
95
|
tournaments:[],
|
|
87
96
|
poll_campaigns: [],
|
|
97
|
+
flash_options: [],
|
|
98
|
+
flash_markets:[],
|
|
99
|
+
sponsors: [],
|
|
88
100
|
competitions: [],
|
|
89
101
|
matches:[],
|
|
90
102
|
athletes:[],
|
|
@@ -95,7 +107,7 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
95
107
|
players:[],
|
|
96
108
|
teams:[]
|
|
97
109
|
});
|
|
98
|
-
const { orders, events, tournaments, athletes, competitions, poll_campaigns, campaign, participant_page, action_page, leagues, campaign_participants, players, teams, } = embed_state;
|
|
110
|
+
const { orders, events, tournaments, flash_options, sponsors, athletes, competitions, flash_markets, poll_campaigns, campaign, participant_page, action_page, leagues, campaign_participants, players, teams, } = embed_state;
|
|
99
111
|
//const visible_orders = orders.sort((a,b) => moment(b.create_datetime).unix() - moment(a.create_datetime).unix()).slice((action_page-1) * 5, ((action_page-1) * 5) + 5)
|
|
100
112
|
useEffect(() => {
|
|
101
113
|
if(!campaign_id){ return }
|
|
@@ -142,7 +154,16 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
142
154
|
plsers = plsers.concat(await CampaignApi.getPlayersByPlayerIds(needed_player_ids));
|
|
143
155
|
//Set new bettor!!
|
|
144
156
|
let new_player = cps.filter(cp => cp.status == 'active')[0]
|
|
145
|
-
if(new_player && new_player.player_id != player_id){ setNewPlayerAlert(new_player) }
|
|
157
|
+
if(mode != 'golf' && new_player && new_player.player_id != player_id){ setNewPlayerAlert(new_player) }
|
|
158
|
+
|
|
159
|
+
if(mode == 'golf'){
|
|
160
|
+
//Old player
|
|
161
|
+
let exist = campaign_participants.find(cp => cp.campaign_participant_id == socket_participants[0]?.campaign_participant_id);
|
|
162
|
+
if(exist?.payload?.status == 'active' && campaign_participants[0]?.payload.status == 'closed'){
|
|
163
|
+
setNewPlayerAlert(new_player);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
146
167
|
//Ok! Now lets update the participants
|
|
147
168
|
setEmbedState({
|
|
148
169
|
...embed_state,
|
|
@@ -197,7 +218,19 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
197
218
|
if(next_participant_page > participant_pages){ next_participant_page = 1 }
|
|
198
219
|
let comps:CompetitionProps[] = []
|
|
199
220
|
let pcs: PollCampaignProps[] = []
|
|
200
|
-
|
|
221
|
+
let fls: PollProps[] = []
|
|
222
|
+
let opts: PollOptionProps[] = []
|
|
223
|
+
if(c_resp.campaign && c_resp.campaign.poll_campaign_ids){
|
|
224
|
+
pcs = await CampaignApi.getPollCampaignsByIds(c_resp.campaign.poll_campaign_ids)
|
|
225
|
+
let campaign_id = pcs[0]?.poll_campaign_id
|
|
226
|
+
if(campaign_id){
|
|
227
|
+
PollCampaignApi.setEnvironment();
|
|
228
|
+
let flash_resp = await PollApi.getPollsByCampaignId(campaign_id);
|
|
229
|
+
fls = flash_resp.polls
|
|
230
|
+
let poll_ids = [ ...new Set(fls.map(p => p.poll_id)) ]
|
|
231
|
+
opts = await PollOptionApi.getPollOptionsByPollIds(poll_ids);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
201
234
|
if(c_resp.campaign && c_resp.campaign.competition_ids){ comps = await CampaignApi.getCompetitionsByIds(c_resp.campaign.competition_ids) }
|
|
202
235
|
|
|
203
236
|
let next_action_page = action_page + 1
|
|
@@ -219,13 +252,16 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
219
252
|
const tms = await MarketComponentApi.getTeamsByIds(tm_ids);
|
|
220
253
|
const aths = await MarketComponentApi.getAthletesByIds(aths_ids);
|
|
221
254
|
const lgs = await MarketComponentApi.getLeagues();
|
|
222
|
-
|
|
255
|
+
const spnsrs = await CampaignApi.getCompaniesByIds(c_resp.campaign?.sponsors ?? [])
|
|
223
256
|
setEmbedState({
|
|
224
257
|
...embed_state,
|
|
225
258
|
players:pls,
|
|
226
259
|
campaign: c_resp.campaign,
|
|
227
260
|
campaign_participants: c_resp.campaign_participants,
|
|
228
261
|
teams: tms,
|
|
262
|
+
sponsors: spnsrs,
|
|
263
|
+
flash_markets: fls,
|
|
264
|
+
flash_options: opts,
|
|
229
265
|
leagues: lgs,
|
|
230
266
|
competitions:comps,
|
|
231
267
|
poll_campaigns: pcs,
|
|
@@ -311,6 +347,33 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
311
347
|
)
|
|
312
348
|
}
|
|
313
349
|
|
|
350
|
+
const renderGolfers = (data:{ item:CampaignParticipantProps, index:number }) => {
|
|
351
|
+
const player = players.find(p => p.player_id == data.item.player_id);
|
|
352
|
+
if(!player){ return <></> }
|
|
353
|
+
return (
|
|
354
|
+
<View type='row' style={{ padding:10, borderBottomWidth:1, borderColor:Colors.borders.light }}>
|
|
355
|
+
{data.item.payload.status == 'active' ?
|
|
356
|
+
<Icons.GolferIcon size={16} color={Colors.text.h1} />
|
|
357
|
+
: data.item.payload.status == 'pending' ?
|
|
358
|
+
<Icons.InProgressIcon size={16} color={Colors.text.h1} />
|
|
359
|
+
:
|
|
360
|
+
<Icons.LockClosedIcon size={16} color={Colors.text.h1} />
|
|
361
|
+
}
|
|
362
|
+
<View style={{ flex:1, flexDirection:'row', marginLeft:15 }}>
|
|
363
|
+
<Image
|
|
364
|
+
source={{ uri: player.profile_pic && player.profile_pic != '' ? player.profile_pic : 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
365
|
+
style={{ height:35, width:35, borderRadius:100}}
|
|
366
|
+
/>
|
|
367
|
+
<View style={{ flex:1, marginLeft:10 }}>
|
|
368
|
+
<Text theme='h1'>{player.first_name} {player.last_name}</Text>
|
|
369
|
+
<Text theme='description' style={{ marginTop:3 }}>@{player.username}</Text>
|
|
370
|
+
</View>
|
|
371
|
+
</View>
|
|
372
|
+
<Text theme='h1'>{data.item.payload.pin_distance}</Text>
|
|
373
|
+
</View>
|
|
374
|
+
)
|
|
375
|
+
}
|
|
376
|
+
|
|
314
377
|
const renderEngagements = (data:{ item:{ id:string, type:string, scheduled_datetime:Moment }, index:number }) => {
|
|
315
378
|
|
|
316
379
|
switch(data.item.type){
|
|
@@ -360,6 +423,79 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
360
423
|
}
|
|
361
424
|
}
|
|
362
425
|
|
|
426
|
+
const renderUpcomingGolfers = (data: { item:PollProps, index:number }) => {
|
|
427
|
+
const options = flash_options.filter(o => o.poll_id == data.item.poll_id);
|
|
428
|
+
return (
|
|
429
|
+
<View transparent style={{ flexDirection:'row', borderBottomWidth:1, borderColor:Colors.borders.light, borderBottomLeftRadius: 8 }}>
|
|
430
|
+
<View type='header' style={{ padding:20, justifyContent:'center', alignItems:'center', borderRightWidth:1, borderColor:Colors.borders.light }}>
|
|
431
|
+
<Text theme='description' style={{ marginBottom:4 }}>Group</Text>
|
|
432
|
+
<Text theme='h1'>{data.item.priority}</Text>
|
|
433
|
+
</View>
|
|
434
|
+
{options.sort((a,b) => a.priority - b.priority).map(o => {
|
|
435
|
+
return (
|
|
436
|
+
<View transparent style={{ flex:1, justifyContent:'center', alignItems:'center', padding:10, borderRightWidth:1, borderColor:Colors.borders.light }}>
|
|
437
|
+
<Image
|
|
438
|
+
source={{ uri: 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
439
|
+
style={{ height:40, width:40 }}
|
|
440
|
+
resizeMode='cover'
|
|
441
|
+
/>
|
|
442
|
+
<Text theme='h2' style={{ marginTop:4 }} textAlign='center'>{o.option_name}</Text>
|
|
443
|
+
</View>
|
|
444
|
+
)
|
|
445
|
+
})}
|
|
446
|
+
</View>
|
|
447
|
+
)
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
const renderClosedGolfers = (data: { item:PollProps, index:number }) => {
|
|
451
|
+
const options = flash_options.filter(o => o.poll_id == data.item.poll_id);
|
|
452
|
+
return (
|
|
453
|
+
<View transparent style={{ flexDirection:'row', borderBottomWidth:1, borderColor:Colors.borders.light, borderBottomLeftRadius: 8 }}>
|
|
454
|
+
<View type='header' style={{ padding:20, justifyContent:'center', alignItems:'center', borderRightWidth:1, borderColor:Colors.borders.light }}>
|
|
455
|
+
<Text theme='description' style={{ marginBottom:4 }}>Group</Text>
|
|
456
|
+
<Text theme='h1'>{data.item.priority}</Text>
|
|
457
|
+
</View>
|
|
458
|
+
{options.sort((a,b) => a.priority - b.priority).map(o => {
|
|
459
|
+
return (
|
|
460
|
+
<View transparent style={{ flex:1, justifyContent:'center', alignItems:'center', padding:10, borderWidth:1, borderColor:o.result_ind=='win' ? Colors.text.success : Colors.borders.light }}>
|
|
461
|
+
<Image
|
|
462
|
+
source={{ uri: 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
463
|
+
style={{ height:50, width:50 }}
|
|
464
|
+
resizeMode='cover'
|
|
465
|
+
/>
|
|
466
|
+
<Text theme='h2' style={{ marginTop:4 }} textAlign='center'>{o.option_name}</Text>
|
|
467
|
+
|
|
468
|
+
</View>
|
|
469
|
+
)
|
|
470
|
+
})}
|
|
471
|
+
</View>
|
|
472
|
+
)
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
const renderPastPoll = (data: { item:PollProps, index:number }) => {
|
|
476
|
+
return (
|
|
477
|
+
<View style={{ flexGrow:1, padding:10, flexDirection:'row', alignItems:'center' }}>
|
|
478
|
+
<Text theme='h1'>{data.item.poll_question}</Text>
|
|
479
|
+
</View>
|
|
480
|
+
)
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
const renderSponsors = (data: { item:CompanyProps, index:number }) => {
|
|
484
|
+
return (
|
|
485
|
+
<View float style={{ flexDirection:'row', alignItems:'center', minWidth:300, maxWidth:350, margin:10, padding:10 }}>
|
|
486
|
+
<Image
|
|
487
|
+
source={{ uri: data.item.company_image?.url }}
|
|
488
|
+
style={{ height:60, width:60, backgroundColor:Colors.text.white, borderRadius:8 }}
|
|
489
|
+
resizeMode='center'
|
|
490
|
+
/>
|
|
491
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
492
|
+
<Text theme='h1'>{data.item.company_name}</Text>
|
|
493
|
+
<Text theme='description' style={{ marginTop:4 }}>{data.item.company_description}</Text>
|
|
494
|
+
</View>
|
|
495
|
+
</View>
|
|
496
|
+
)
|
|
497
|
+
}
|
|
498
|
+
|
|
363
499
|
const renderSections = (data:{ item:string, index:number }) => {
|
|
364
500
|
switch(data.item){
|
|
365
501
|
case 'header':
|
|
@@ -389,6 +525,92 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
389
525
|
:<></>}
|
|
390
526
|
</View>
|
|
391
527
|
)
|
|
528
|
+
case 'closest_pin':
|
|
529
|
+
const active_poll = flash_markets[0]//.find(m => m.flash_active);
|
|
530
|
+
const next_three = flash_markets.filter(m => m.priority > (active_poll?.priority??0)).sort((a,b) => a.priority - b.priority).slice(0,3);
|
|
531
|
+
return (
|
|
532
|
+
<View style={{ flexDirection:'row', flexWrap:'wrap' }}>
|
|
533
|
+
<View nativeID='pin_leaderboard' style={{ flex:1, minWidth:400 }}>
|
|
534
|
+
<View>
|
|
535
|
+
<Image
|
|
536
|
+
source={{ uri: 'https://res.cloudinary.com/hoabts6mc/image/upload/v1752434537/a95a5b63614b60844f9612cce6cc985a2ed2879c-1600x1067_bfgn61.jpg' }}
|
|
537
|
+
style={{ height:400*0.6725, width:400 }}
|
|
538
|
+
resizeMode='cover'
|
|
539
|
+
/>
|
|
540
|
+
</View>
|
|
541
|
+
</View>
|
|
542
|
+
<View style={{ minWidth:400 }}>
|
|
543
|
+
<FlatList
|
|
544
|
+
data={campaign_participants.sort((a,b) => parseFloat((a.payload.pin_distance ?? 9999)) - parseFloat((b.payload.pin_distance ?? 9999)))}
|
|
545
|
+
key={'closed_pin_leaders'}
|
|
546
|
+
keyExtractor={(item) => item.campaign_participant_id}
|
|
547
|
+
renderItem={renderGolfers}
|
|
548
|
+
/>
|
|
549
|
+
</View>
|
|
550
|
+
<View nativeID='flash' style={{ flex:4, borderLeftWidth:1, borderColor:Colors.borders.light }}>
|
|
551
|
+
<View type='body' style={{ flex:1 }}>
|
|
552
|
+
<View style={{ flexDirection:'row', flex:1 }}>
|
|
553
|
+
<View style={{ flex:1 }}>
|
|
554
|
+
|
|
555
|
+
{active_poll ?
|
|
556
|
+
<FlashHolder
|
|
557
|
+
poll_id={active_poll?.poll_id}
|
|
558
|
+
init_expanded
|
|
559
|
+
hide_tabs
|
|
560
|
+
onRequestAuthenticate={() => console.log('')}
|
|
561
|
+
onRequestLocation={() => console.log('')}
|
|
562
|
+
onFocusPosition={() => console.log('')}
|
|
563
|
+
/>
|
|
564
|
+
:<></>}
|
|
565
|
+
</View>
|
|
566
|
+
<View style={{ flex:1, borderLeftWidth:1, borderColor:Colors.borders.light }}>
|
|
567
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
568
|
+
<View transparent style={{ flex:1 }}>
|
|
569
|
+
<Text theme='h1'>Upcoming Groups</Text>
|
|
570
|
+
<Text theme='description' style={{ marginTop:8 }}>Bet on who will get closest to the pin!</Text>
|
|
571
|
+
</View>
|
|
572
|
+
</View>
|
|
573
|
+
<View>
|
|
574
|
+
{next_three.map((p,i) => {
|
|
575
|
+
return renderUpcomingGolfers({ item: p, index:i })
|
|
576
|
+
})}
|
|
577
|
+
</View>
|
|
578
|
+
</View>
|
|
579
|
+
</View>
|
|
580
|
+
</View>
|
|
581
|
+
</View>
|
|
582
|
+
</View>
|
|
583
|
+
)
|
|
584
|
+
case 'last_ones':
|
|
585
|
+
const past_three = flash_markets.filter(m => m.priority > (active_poll?.priority??0)).sort((a,b) => b.priority - a.priority).slice(0,5);
|
|
586
|
+
return (
|
|
587
|
+
<View style={{ flex:1, borderLeftWidth:1, borderColor:Colors.borders.light }}>
|
|
588
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
|
|
589
|
+
<View transparent style={{ flex:1 }}>
|
|
590
|
+
<Text theme='h1'>Upcoming Groups</Text>
|
|
591
|
+
<Text theme='description' style={{ marginTop:8 }}>Bet on who will get closest to the pin!</Text>
|
|
592
|
+
</View>
|
|
593
|
+
</View>
|
|
594
|
+
{past_three.map((p,i) => {
|
|
595
|
+
return renderPastPoll({ item: p, index:i })
|
|
596
|
+
})}
|
|
597
|
+
</View>
|
|
598
|
+
)
|
|
599
|
+
case 'sponsors':
|
|
600
|
+
return (
|
|
601
|
+
<View style={{ padding:10, borderTopWidth:1, borderColor:Colors.borders.light }}>
|
|
602
|
+
<View>
|
|
603
|
+
<Text theme='h1'>Sponsors</Text>
|
|
604
|
+
<Text theme='description' style={{ marginTop:4 }}>A massive thank you to all the amazing sponsors</Text>
|
|
605
|
+
</View>
|
|
606
|
+
<AutoScrollingFlatList
|
|
607
|
+
data={sponsors}
|
|
608
|
+
renderItem={renderSponsors}
|
|
609
|
+
horizontal
|
|
610
|
+
speed={50}
|
|
611
|
+
/>
|
|
612
|
+
</View>
|
|
613
|
+
)
|
|
392
614
|
case 'prize':
|
|
393
615
|
if(!campaign?.prize_description){ return <></> }
|
|
394
616
|
return (
|
|
@@ -528,6 +750,201 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
528
750
|
const new_bet_event = events.find(e => e.event_id == new_bet_alert?.event_id);
|
|
529
751
|
const new_bet_tournament = tournaments.find(t => t.tournament_id == new_bet_alert?.event_id);
|
|
530
752
|
const new_bet_league = new_bet_event ? leagues.find(l => l.league_id == new_bet_event.league_id) : leagues.find(l => l.league_id == new_bet_tournament?.league_id);
|
|
753
|
+
|
|
754
|
+
if(mode == 'golf'){
|
|
755
|
+
const active_poll = flash_markets.filter(m => ['paused','active'].includes(m.status)).sort((a,b) => a.priority - b.priority)[0]
|
|
756
|
+
const next_three = flash_markets.filter(m => m.priority > (active_poll?.priority??0)).sort((a,b) => a.priority - b.priority).slice(0,3);
|
|
757
|
+
const past_three = flash_markets.filter(m => m.status == 'closed').sort((a,b) => b.priority - a.priority).slice(0,3)
|
|
758
|
+
const active_participant = campaign_participants.find(cp => cp.payload.status == 'active');
|
|
759
|
+
const active_golfer = players.find(p => p.player_id == active_participant?.player_id);
|
|
760
|
+
return (
|
|
761
|
+
<View style={{ flex:1 }}>
|
|
762
|
+
<ImageBackground
|
|
763
|
+
style={{ flex:1 }}
|
|
764
|
+
source={{ uri: 'https://res.cloudinary.com/hoabts6mc/image/upload/v1752434537/a95a5b63614b60844f9612cce6cc985a2ed2879c-1600x1067_bfgn61.jpg' }}
|
|
765
|
+
>
|
|
766
|
+
<View type='blur' style={{ position:'absolute', top:0, left:0, right:0, bottom:0 }} />
|
|
767
|
+
<View transparent style={{flex:1, flexDirection:'row' }}>
|
|
768
|
+
<View transparent style={{ flex:2, margin:10, minWidth:350 }} onLayout={(ev) => {
|
|
769
|
+
const { height, width } = ev.nativeEvent.layout;
|
|
770
|
+
setGolfLeaderSize({ height, width: width -2 });
|
|
771
|
+
}}>
|
|
772
|
+
<View float style={{ flex:1 }}>
|
|
773
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
|
|
774
|
+
<View transparent style={{ flex:1 }}>
|
|
775
|
+
<Text theme='h1'>On the Tee Now!</Text>
|
|
776
|
+
<Text theme='description'>Below are the current betting probabilities for the group on the tee!</Text>
|
|
777
|
+
</View>
|
|
778
|
+
</View>
|
|
779
|
+
<View style={{ flex:1 }}>
|
|
780
|
+
{active_poll ?
|
|
781
|
+
<FlashHolder
|
|
782
|
+
poll_id={active_poll?.poll_id}
|
|
783
|
+
init_expanded
|
|
784
|
+
hide_tabs
|
|
785
|
+
hide_timer
|
|
786
|
+
hide_footer
|
|
787
|
+
no_highlight
|
|
788
|
+
onRequestAuthenticate={() => console.log('')}
|
|
789
|
+
onRequestLocation={() => console.log('')}
|
|
790
|
+
onFocusPosition={() => console.log('')}
|
|
791
|
+
/>
|
|
792
|
+
:<></>}
|
|
793
|
+
</View>
|
|
794
|
+
<View transparent>
|
|
795
|
+
<Image
|
|
796
|
+
source={{ uri: 'https://res.cloudinary.com/hoabts6mc/image/upload/v1752434537/a95a5b63614b60844f9612cce6cc985a2ed2879c-1600x1067_bfgn61.jpg' }}
|
|
797
|
+
style={{ height:golf_leader_size.width*0.6725, width:golf_leader_size.width, alignSelf:'center', borderBottomRightRadius:8, borderBottomLeftRadius:8 }}
|
|
798
|
+
/>
|
|
799
|
+
<View transparent style={{ position:'absolute', top:0, left:0, right:0, bottom:0, justifyContent:'center', alignItems:'center' }}>
|
|
800
|
+
<View float style={{ padding:20 }}>
|
|
801
|
+
<Text theme='h2' textAlign='center'>Windsong Farm South Course</Text>
|
|
802
|
+
<Text theme='h1' style={{ marginTop:10 }} textAlign='center'>Hole 16</Text>
|
|
803
|
+
<View transparent style={{ marginTop:10, padding:10, justifyContent:'center', alignItems:'center' }}>
|
|
804
|
+
<QRCode
|
|
805
|
+
value={`https://play.bettoredge.com/social/campaign/${campaign_id}`}
|
|
806
|
+
size={100}
|
|
807
|
+
style={{ backgroundColor:'transparent' }}
|
|
808
|
+
/>
|
|
809
|
+
</View>
|
|
810
|
+
</View>
|
|
811
|
+
|
|
812
|
+
</View>
|
|
813
|
+
</View>
|
|
814
|
+
</View>
|
|
815
|
+
</View>
|
|
816
|
+
<View float style={{ flex:3, minWidth:350, margin:10 }}>
|
|
817
|
+
<View type='header' style={{ padding:10, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
|
|
818
|
+
<View transparent style={{ flex:1 }}>
|
|
819
|
+
<Text theme='h1'>Closest to the hole #16</Text>
|
|
820
|
+
</View>
|
|
821
|
+
</View>
|
|
822
|
+
{active_golfer ?
|
|
823
|
+
<View style={{ backgroundColor:Colors.views.gold, padding:10 }}>
|
|
824
|
+
<Text theme='h2'>Now On The Tee</Text>
|
|
825
|
+
<View transparent style={{ flexDirection:'row', marginTop:5}}>
|
|
826
|
+
<Image
|
|
827
|
+
source={{ uri: active_golfer.profile_pic && active_golfer.profile_pic != '' ? active_golfer.profile_pic : 'https://res.cloudinary.com/hoabts6mc/image/upload/v1722453927/default_man_n96ofq.webp' }}
|
|
828
|
+
style={{ height:35, width:35, borderRadius:100}}
|
|
829
|
+
/>
|
|
830
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
831
|
+
<Text theme='h1' color={Colors.text.white}>{active_golfer.first_name} {active_golfer.last_name}</Text>
|
|
832
|
+
<Text theme='description' style={{ marginTop:3 }}>@{active_golfer.username}</Text>
|
|
833
|
+
</View>
|
|
834
|
+
<Icons.GolferIcon size={28} color={Colors.text.white} />
|
|
835
|
+
</View>
|
|
836
|
+
</View>
|
|
837
|
+
:<></>}
|
|
838
|
+
<View style={{ flex:1, borderBottomRightRadius:8, borderBottomLeftRadius:8 }}>
|
|
839
|
+
<View style={{ padding:10 }}>
|
|
840
|
+
<Text theme='h1'>LEADERBOARD</Text>
|
|
841
|
+
<Text theme='description' style={{ marginTop:4 }}>Closest to the pin - distance in feet from the pin</Text>
|
|
842
|
+
</View>
|
|
843
|
+
<FlatList
|
|
844
|
+
data={campaign_participants.sort((a,b) => parseFloat((a.payload.pin_distance ? a.payload.pin_distance : 9999)) - parseFloat((b.payload.pin_distance ? b.payload.pin_distance : 9999)))}
|
|
845
|
+
key={'closed_pin_leaders'}
|
|
846
|
+
keyExtractor={(item) => item.campaign_participant_id}
|
|
847
|
+
renderItem={renderGolfers}
|
|
848
|
+
/>
|
|
849
|
+
</View>
|
|
850
|
+
<View type='header' style={{ padding:10, borderTopWidth:1, borderColor:Colors.borders.light, overflow:'hidden', borderBottomRightRadius:8, borderBottomLeftRadius:8 }}>
|
|
851
|
+
<View transparent>
|
|
852
|
+
<Text theme='h1'>Sponsors</Text>
|
|
853
|
+
<Text theme='h2' style={{ marginTop:4 }}>A massive thank you to all the amazing sponsors</Text>
|
|
854
|
+
</View>
|
|
855
|
+
<AutoScrollingFlatList
|
|
856
|
+
data={sponsors}
|
|
857
|
+
renderItem={renderSponsors}
|
|
858
|
+
horizontal
|
|
859
|
+
speed={20}
|
|
860
|
+
/>
|
|
861
|
+
</View>
|
|
862
|
+
</View>
|
|
863
|
+
<View transparent style={{ flex:4 }}>
|
|
864
|
+
<View float nativeID='next_up' style={{ flexGrow:1, margin:10 }}>
|
|
865
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
|
|
866
|
+
<Icons.GolferIcon size={28} color={Colors.text.h1} />
|
|
867
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
868
|
+
<Text theme='h1'>Upcoming Groups</Text>
|
|
869
|
+
<Text theme='description' style={{ marginTop:3 }}>Groups that are soon to be up!</Text>
|
|
870
|
+
</View>
|
|
871
|
+
</View>
|
|
872
|
+
<View style={{ borderBottomRightRadius:8, borderBottomLeftRadius:8 }}>
|
|
873
|
+
<FlatList
|
|
874
|
+
data={next_three.sort((a,b) => a.priority - b.priority)}
|
|
875
|
+
renderItem={renderUpcomingGolfers}
|
|
876
|
+
key={'next_up'}
|
|
877
|
+
keyExtractor={(item) => item.poll_id.toString()}
|
|
878
|
+
/>
|
|
879
|
+
</View>
|
|
880
|
+
</View>
|
|
881
|
+
<View float nativeID='past' style={{ flexGrow:1, margin:10 }}>
|
|
882
|
+
<View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10, borderTopRightRadius:8, borderTopLeftRadius:8 }}>
|
|
883
|
+
<Icons.GolferIcon size={28} color={Colors.text.h1} />
|
|
884
|
+
<View transparent style={{ flex:1, marginLeft:10 }}>
|
|
885
|
+
<Text theme='h1'>Recently Completed Groups</Text>
|
|
886
|
+
<Text theme='description' style={{ marginTop:3 }}>Winners from past groups!</Text>
|
|
887
|
+
</View>
|
|
888
|
+
</View>
|
|
889
|
+
<View style={{ borderBottomRightRadius:8, borderBottomLeftRadius:8 }}>
|
|
890
|
+
<FlatList
|
|
891
|
+
data={past_three.sort((a,b) => b.priority - a.priority)}
|
|
892
|
+
renderItem={renderClosedGolfers}
|
|
893
|
+
key={'past_up'}
|
|
894
|
+
keyExtractor={(item) => item.poll_id.toString()}
|
|
895
|
+
/>
|
|
896
|
+
</View>
|
|
897
|
+
</View>
|
|
898
|
+
{campaign ?
|
|
899
|
+
<View type='header' style={{ margin:10, flexDirection:'row', alignItems:'center', padding:10, borderRadius:8 }}>
|
|
900
|
+
|
|
901
|
+
<Image
|
|
902
|
+
source={{ uri: campaign.campaign_image?.url }}
|
|
903
|
+
style={{ height:80, width:80, borderRadius:8 }}
|
|
904
|
+
resizeMode='center'
|
|
905
|
+
/>
|
|
906
|
+
<View transparent style={{ flex:1, marginLeft:20 }}>
|
|
907
|
+
<Text theme='h1' size={18}>{campaign.campaign_name}</Text>
|
|
908
|
+
<Text theme='description' style={{ marginTop:4 }}>{campaign.description}</Text>
|
|
909
|
+
</View>
|
|
910
|
+
|
|
911
|
+
</View>
|
|
912
|
+
:<></>}
|
|
913
|
+
</View>
|
|
914
|
+
|
|
915
|
+
</View>
|
|
916
|
+
</ImageBackground>
|
|
917
|
+
{new_player_alert && new_player ?
|
|
918
|
+
<View type='blur' style={{ position:'absolute', top:0, left:0, right:0, bottom:0, alignItems:'center', paddingTop:100 }}>
|
|
919
|
+
<GolferAlert
|
|
920
|
+
campaign_participant={new_player_alert}
|
|
921
|
+
player={new_player}
|
|
922
|
+
view_mode={view_mode}
|
|
923
|
+
onViewProfile={onViewProfile}
|
|
924
|
+
onClose={() => setNewPlayerAlert(undefined)}
|
|
925
|
+
/>
|
|
926
|
+
</View>
|
|
927
|
+
:<></>}
|
|
928
|
+
<SocketManager
|
|
929
|
+
onConnect={() => {
|
|
930
|
+
if(!needs_reload){ return }
|
|
931
|
+
}}
|
|
932
|
+
onDisconnect={() => setNeedsReload(true)}
|
|
933
|
+
subscribed_events={['UPDATE_CAMPAIGN_PARTICIPANTS']}
|
|
934
|
+
onSocketEvent={(event) => {
|
|
935
|
+
switch(event.type){
|
|
936
|
+
case 'UPDATE_CAMPAIGN_PARTICIPANTS':
|
|
937
|
+
let this_participants = event.campaign_participants.filter((cp:CampaignParticipantProps) => cp.campaign_id == campaign_id);
|
|
938
|
+
if(this_participants.length == 0){ return }
|
|
939
|
+
return setSocketParticipants(event.campaign_participants);
|
|
940
|
+
default: return
|
|
941
|
+
}
|
|
942
|
+
}}
|
|
943
|
+
/>
|
|
944
|
+
</View>
|
|
945
|
+
)
|
|
946
|
+
}
|
|
947
|
+
|
|
531
948
|
return (
|
|
532
949
|
<View style={{ flex:1 }}>
|
|
533
950
|
<View style={{ flex:1 }}>
|
|
@@ -597,7 +1014,6 @@ const Campaign = ({ player_id, campaign_id, insets, color_mode, distinct_id, onS
|
|
|
597
1014
|
<SocketManager
|
|
598
1015
|
onConnect={() => {
|
|
599
1016
|
if(!needs_reload){ return }
|
|
600
|
-
console.log('GET DATA!!!`')
|
|
601
1017
|
}}
|
|
602
1018
|
onDisconnect={() => setNeedsReload(true)}
|
|
603
1019
|
subscribed_events={['UPDATE_CAMPAIGN_PARTICIPANTS']}
|
|
@@ -71,7 +71,7 @@ const TeamImage = ({ team, league , size} : TeamImageProps) => {
|
|
|
71
71
|
let image_size = size ?? 20
|
|
72
72
|
|
|
73
73
|
return (
|
|
74
|
-
<View style={{
|
|
74
|
+
<View style={{ alignSelf:'center', justifyContent:'center', alignItems:'center', borderRadius:100, backgroundColor:Colors.shades.white }}>
|
|
75
75
|
{team.image?.url ?
|
|
76
76
|
<RN_Image source={{ uri: team.image.url }} style={{ height:image_size * 2, width:image_size * 2, borderRadius:100 }} resizeMode='center'/>
|
|
77
77
|
|
|
@@ -18,10 +18,14 @@ type FlashHolderProps = {
|
|
|
18
18
|
player?:MyPlayerProps,
|
|
19
19
|
init_expanded?:boolean,
|
|
20
20
|
contest_type?:string,
|
|
21
|
+
parent_style?:ViewStyle,
|
|
22
|
+
hide_footer?:boolean,
|
|
21
23
|
contest_id?:string,
|
|
22
24
|
hide_tabs?:boolean,
|
|
23
25
|
style?:ViewStyle,
|
|
24
26
|
side_type?:string,
|
|
27
|
+
hide_timer?:boolean,
|
|
28
|
+
no_highlight?:boolean,
|
|
25
29
|
location?:LocationProps,
|
|
26
30
|
side_id?:string,
|
|
27
31
|
poll_id?:string,
|
|
@@ -31,7 +35,7 @@ type FlashHolderProps = {
|
|
|
31
35
|
onRequestAuthenticate: () => void
|
|
32
36
|
}
|
|
33
37
|
const sections = [ 'selector','explainer','flash_market','options','footer' ]
|
|
34
|
-
const FlashHolder = ({ float, compact, style, distinct_id, hide_tabs, league_id, init_expanded, player_id, player, location, contest_type, contest_id, side_type, side_id, poll_id, onSelectCompactPoll, onRequestAuthenticate, onFocusPosition, onRequestLocation } : FlashHolderProps) => {
|
|
38
|
+
const FlashHolder = ({ float, compact, style, hide_timer, distinct_id, hide_footer, no_highlight, hide_tabs, parent_style, league_id, init_expanded, player_id, player, location, contest_type, contest_id, side_type, side_id, poll_id, onSelectCompactPoll, onRequestAuthenticate, onFocusPosition, onRequestLocation } : FlashHolderProps) => {
|
|
35
39
|
const Colors = useColors();
|
|
36
40
|
const [ needs_reload, setNeedsReload ] = useState(false);
|
|
37
41
|
const [ socket_campaigns, setSocketCampaigns ] = useState<PollCampaignProps[]>([]);
|
|
@@ -190,7 +194,7 @@ const FlashHolder = ({ float, compact, style, distinct_id, hide_tabs, league_id,
|
|
|
190
194
|
return (
|
|
191
195
|
<Button
|
|
192
196
|
float={selected}
|
|
193
|
-
style={{ padding:4, margin:1, borderRadius:0, borderTopRightRadius:8, borderTopLeftRadius:8, borderWidth:2, borderBottomWidth:0, borderColor:selected ? Colors.text.success : Colors.borders.light, opacity:selected?1:0.5 }}
|
|
197
|
+
style={{ padding:4, margin:1, borderRadius:0, borderTopRightRadius:8, borderTopLeftRadius:8, borderWidth:2, borderBottomWidth:0, borderColor:selected && !no_highlight ? Colors.text.success : Colors.borders.light, opacity:selected?1:0.5 }}
|
|
194
198
|
onPress={() => handleSelectPoll(data.item.poll_id)}
|
|
195
199
|
>
|
|
196
200
|
{data.item.poll_image ?
|
|
@@ -267,11 +271,13 @@ const FlashHolder = ({ float, compact, style, distinct_id, hide_tabs, league_id,
|
|
|
267
271
|
poll={flash_market}
|
|
268
272
|
poll_options={poll_options}
|
|
269
273
|
poll_summaries={poll_summaries}
|
|
274
|
+
hide_footer={hide_footer}
|
|
270
275
|
poll_campaign={poll_campaign}
|
|
271
276
|
flash_market_fees={flash_market_fees}
|
|
272
277
|
loading={loading || holder_loading}
|
|
273
278
|
hide_image
|
|
274
|
-
|
|
279
|
+
hide_timer={hide_timer}
|
|
280
|
+
card_style={{ borderWidth:2, borderColor:!no_highlight?Colors.text.success:Colors.borders.light, borderBottomRightRadius:8, borderBottomLeftRadius:8 }}
|
|
275
281
|
init_expanded={init_expanded}
|
|
276
282
|
footer_style={{ borderBottomRightRadius:8, borderBottomLeftRadius:8 }}
|
|
277
283
|
header_style={{ borderTopRightRadius:0, borderTopLeftRadius:0 }}
|
|
@@ -286,7 +292,7 @@ const FlashHolder = ({ float, compact, style, distinct_id, hide_tabs, league_id,
|
|
|
286
292
|
}
|
|
287
293
|
}
|
|
288
294
|
return (
|
|
289
|
-
<View transparent>
|
|
295
|
+
<View transparent style={{ ...parent_style }}>
|
|
290
296
|
{flash_markets.length > 0 || active_flash_market ?
|
|
291
297
|
<View float={float} style={{ ...style }}>
|
|
292
298
|
<FlatList
|