be-components 5.6.7 → 5.6.8

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.
Files changed (82) hide show
  1. package/lib/commonjs/Engage/api/index.js +13 -2
  2. package/lib/commonjs/Engage/api/index.js.map +1 -1
  3. package/lib/commonjs/Engage/components/EngageHeader.js +2 -0
  4. package/lib/commonjs/Engage/components/EngageHeader.js.map +1 -1
  5. package/lib/commonjs/Engage/components/PollCampaignCard.js +110 -0
  6. package/lib/commonjs/Engage/components/PollCampaignCard.js.map +1 -0
  7. package/lib/commonjs/Engage/index.js +83 -12
  8. package/lib/commonjs/Engage/index.js.map +1 -1
  9. package/lib/commonjs/Poll/api/index.js +12 -0
  10. package/lib/commonjs/Poll/api/index.js.map +1 -1
  11. package/lib/commonjs/Poll/components/CampaignHeader.js +13 -2
  12. package/lib/commonjs/Poll/components/CampaignHeader.js.map +1 -1
  13. package/lib/commonjs/Poll/components/CampaignLeaderboard.js +1 -4
  14. package/lib/commonjs/Poll/components/CampaignLeaderboard.js.map +1 -1
  15. package/lib/commonjs/Poll/index.js +21 -4
  16. package/lib/commonjs/Poll/index.js.map +1 -1
  17. package/lib/module/Engage/api/index.js +13 -2
  18. package/lib/module/Engage/api/index.js.map +1 -1
  19. package/lib/module/Engage/components/EngageHeader.js +2 -0
  20. package/lib/module/Engage/components/EngageHeader.js.map +1 -1
  21. package/lib/module/Engage/components/PollCampaignCard.js +103 -0
  22. package/lib/module/Engage/components/PollCampaignCard.js.map +1 -0
  23. package/lib/module/Engage/index.js +83 -12
  24. package/lib/module/Engage/index.js.map +1 -1
  25. package/lib/module/Poll/api/index.js +12 -0
  26. package/lib/module/Poll/api/index.js.map +1 -1
  27. package/lib/module/Poll/components/CampaignHeader.js +13 -2
  28. package/lib/module/Poll/components/CampaignHeader.js.map +1 -1
  29. package/lib/module/Poll/components/CampaignLeaderboard.js +1 -4
  30. package/lib/module/Poll/components/CampaignLeaderboard.js.map +1 -1
  31. package/lib/module/Poll/index.js +21 -4
  32. package/lib/module/Poll/index.js.map +1 -1
  33. package/lib/typescript/lib/commonjs/Engage/api/index.d.ts +3 -2
  34. package/lib/typescript/lib/commonjs/Engage/api/index.d.ts.map +1 -1
  35. package/lib/typescript/lib/commonjs/Engage/components/EngageHeader.d.ts.map +1 -1
  36. package/lib/typescript/lib/commonjs/Engage/components/PollCampaignCard.d.ts +7 -0
  37. package/lib/typescript/lib/commonjs/Engage/components/PollCampaignCard.d.ts.map +1 -0
  38. package/lib/typescript/lib/commonjs/Engage/index.d.ts +2 -1
  39. package/lib/typescript/lib/commonjs/Engage/index.d.ts.map +1 -1
  40. package/lib/typescript/lib/commonjs/Poll/api/index.d.ts +1 -0
  41. package/lib/typescript/lib/commonjs/Poll/api/index.d.ts.map +1 -1
  42. package/lib/typescript/lib/commonjs/Poll/components/CampaignHeader.d.ts +2 -1
  43. package/lib/typescript/lib/commonjs/Poll/components/CampaignHeader.d.ts.map +1 -1
  44. package/lib/typescript/lib/commonjs/Poll/components/CampaignLeaderboard.d.ts.map +1 -1
  45. package/lib/typescript/lib/commonjs/Poll/index.d.ts +3 -1
  46. package/lib/typescript/lib/commonjs/Poll/index.d.ts.map +1 -1
  47. package/lib/typescript/lib/module/Engage/api/index.d.ts +3 -2
  48. package/lib/typescript/lib/module/Engage/api/index.d.ts.map +1 -1
  49. package/lib/typescript/lib/module/Engage/components/EngageHeader.d.ts.map +1 -1
  50. package/lib/typescript/lib/module/Engage/components/PollCampaignCard.d.ts +7 -0
  51. package/lib/typescript/lib/module/Engage/components/PollCampaignCard.d.ts.map +1 -0
  52. package/lib/typescript/lib/module/Engage/index.d.ts +2 -1
  53. package/lib/typescript/lib/module/Engage/index.d.ts.map +1 -1
  54. package/lib/typescript/lib/module/Poll/api/index.d.ts +1 -0
  55. package/lib/typescript/lib/module/Poll/api/index.d.ts.map +1 -1
  56. package/lib/typescript/lib/module/Poll/components/CampaignHeader.d.ts +2 -1
  57. package/lib/typescript/lib/module/Poll/components/CampaignHeader.d.ts.map +1 -1
  58. package/lib/typescript/lib/module/Poll/components/CampaignLeaderboard.d.ts.map +1 -1
  59. package/lib/typescript/lib/module/Poll/index.d.ts +3 -1
  60. package/lib/typescript/lib/module/Poll/index.d.ts.map +1 -1
  61. package/lib/typescript/src/Engage/api/index.d.ts +4 -3
  62. package/lib/typescript/src/Engage/api/index.d.ts.map +1 -1
  63. package/lib/typescript/src/Engage/components/PollCampaignCard.d.ts +11 -0
  64. package/lib/typescript/src/Engage/components/PollCampaignCard.d.ts.map +1 -0
  65. package/lib/typescript/src/Engage/index.d.ts +4 -3
  66. package/lib/typescript/src/Engage/index.d.ts.map +1 -1
  67. package/lib/typescript/src/Poll/api/index.d.ts +5 -0
  68. package/lib/typescript/src/Poll/api/index.d.ts.map +1 -1
  69. package/lib/typescript/src/Poll/components/CampaignHeader.d.ts +2 -1
  70. package/lib/typescript/src/Poll/components/CampaignHeader.d.ts.map +1 -1
  71. package/lib/typescript/src/Poll/index.d.ts +8 -1
  72. package/lib/typescript/src/Poll/index.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/src/Engage/api/index.ts +14 -3
  75. package/src/Engage/components/EngageHeader.tsx +2 -2
  76. package/src/Engage/components/PollCampaignCard.tsx +54 -0
  77. package/src/Engage/index.tsx +50 -11
  78. package/src/Poll/api/index.ts +9 -0
  79. package/src/Poll/components/CampaignHeader.tsx +10 -1
  80. package/src/Poll/components/CampaignLeaderboard.tsx +2 -2
  81. package/src/Poll/index.tsx +12 -5
  82. package/src/types.d.ts +9 -1
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { ActivityIndicator, FlatList, Image, KeyboardAvoidingView, Modal, Platform } from 'react-native';
3
- import type { BEEventProps, BracketCompetitionProps, BracketProps, CompanyProps, CompetitionPayoutTypeProps, CompetitionProps, CompetitionResultTypeProps, CompetitionSeasonProps, CompetitionTypeProps, EventProps, FocusPositionProps, LeagueProps, PublicPlayerProps, SquaresCompetitionProps } from '../types';
3
+ import type { BEEventProps, BracketCompetitionProps, BracketProps, CompanyProps, CompetitionPayoutTypeProps, CompetitionProps, CompetitionResultTypeProps, CompetitionSeasonProps, CompetitionTypeProps, EventProps, FocusPositionProps, LeagueProps, PollCampaignProps, PublicPlayerProps, SquaresCompetitionProps } from '../types';
4
4
  import { EngageApi, EngageHelpers } from './api';
5
5
  import CompetitionCard from './components/CompetitionCard';
6
6
  import { Icons, Toggle } from '../Components';
@@ -13,13 +13,14 @@ import EngageHeader from './components/EngageHeader';
13
13
  import PrivateCodePrompt from './components/PrivateCodePrompt';
14
14
  import { Button, Text, View } from '../Components/Themed';
15
15
  import { useColors } from '../constants/useColors';
16
+ import PollCampaignCard from './components/PollCampaignCard';
16
17
 
17
18
 
18
19
  type EngageModuleProps = {
19
20
  player_id?:string,
20
21
  insets?: { top:number, bottom:number },
21
22
  view_mode?:'desktop'|'mobile'
22
- init_engagement?:'competitions'|'brackets'|'squares',
23
+ init_engagement?:'competitions'|'brackets'|'squares'|'polls',
23
24
  onEvent?:(be_event:BEEventProps) => void,
24
25
  onFocusPosition?:(pos:FocusPositionProps) => void,
25
26
  onManage?:() => void,
@@ -31,13 +32,14 @@ type EngageModuleProps = {
31
32
  onCreateBracketCompetition?:() => void,
32
33
  onSelectCompetition:(c:CompetitionProps) => void,
33
34
  onSelectBracketCompetition:(bc:BracketCompetitionProps) => void,
35
+ onSelectPollCampaign:(pc:PollCampaignProps) => void,
34
36
  onSelectSquaresCompetition:(sc:SquaresCompetitionProps) => void,
35
37
  onSelectCompetitionSeason:(cs:CompetitionSeasonProps) => void
36
38
  }
37
39
 
38
40
  const engage_sections = ['header','toggle', 'private','engagements']
39
41
  const MIN_ENGAGEMENT_WIDTH = 325
40
- const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSelectBracketCompetition, onSelectCompetition, onSelectSquaresCompetition, onSelectCompetitionSeason,
42
+ const EngageModule = ({ view_mode, insets, init_engagement, onSelectPollCampaign, onBracketRoom, onSelectBracketCompetition, onSelectCompetition, onSelectSquaresCompetition, onSelectCompetitionSeason,
41
43
  onCreateSeason, onCreateCompetition, onCreateBracketCompetition, onCreateSquares, onFocusPosition, onManage, onEvent, onSelectCompany
42
44
  }:EngageModuleProps) => {
43
45
  const [ module_size, setModuleSize ] = useState({ width:0, height:0 });
@@ -52,6 +54,7 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
52
54
  const [ module_data, setModuleData ] = useState<{
53
55
  loading:boolean,
54
56
  competitions:CompetitionProps[],
57
+ poll_campaigns:PollCampaignProps[],
55
58
  competition_seasons:CompetitionSeasonProps[],
56
59
  competition_types:CompetitionTypeProps[],
57
60
  competition_result_types:CompetitionResultTypeProps[],
@@ -68,6 +71,7 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
68
71
  loading:false,
69
72
  competitions: [],
70
73
  competition_seasons:[],
74
+ poll_campaigns: [],
71
75
  companies:[],
72
76
  leagues:[],
73
77
  events:[],
@@ -79,7 +83,7 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
79
83
  bracket_competitions:[],
80
84
  players:[]
81
85
  });
82
- const { loading, competitions, selected_bracket, competition_seasons, competition_result_types, squares_competitions, brackets, leagues, bracket_competitions, events, competition_types, companies, players } = module_data;
86
+ const { loading, competitions, poll_campaigns, selected_bracket, competition_seasons, competition_result_types, squares_competitions, brackets, leagues, bracket_competitions, events, competition_types, companies, players } = module_data;
83
87
  const Colors = useColors();
84
88
 
85
89
  const visible_competitions = competitions.filter(c => moment().isBefore(moment(c.scheduled_datetime)))
@@ -112,10 +116,11 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
112
116
  const comps = await EngageApi.getActivePublicCompetitions();
113
117
  const seasons = await EngageApi.getActivePublicSeasons();
114
118
  const brackets = await EngageApi.getActivePublicBrackets();
119
+ const pcs = await EngageApi.getActivePublicCampaigns();
115
120
  const squares = await EngageApi.getActivePublicSquares();
116
- const company_ids = EngageHelpers.getCompanyIdsFromEngage(comps, squares, brackets);
121
+ const company_ids = EngageHelpers.getCompanyIdsFromEngage(comps, squares, brackets, pcs);
117
122
  const cpanys = await EngageApi.getCompaniesByIds(company_ids);
118
- const player_ids = EngageHelpers.getPlayerIdsFromEngage(comps, squares, brackets);
123
+ const player_ids = EngageHelpers.getPlayerIdsFromEngage(comps, squares, brackets, pcs);
119
124
  const plyers = await EngageApi.getPlayersByPlayerIds(player_ids)
120
125
  const opts = await EngageApi.getCompetitionOptions();
121
126
  const event_ids = EngageHelpers.getEventIdsFromSquares(squares);
@@ -128,6 +133,7 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
128
133
  loading:false,
129
134
  competitions:comps,
130
135
  competition_seasons: seasons,
136
+ poll_campaigns: pcs.filter(pc => (pc.active_polls??0) > 0),
131
137
  bracket_competitions:brackets,
132
138
  competition_types: opts.competition_types,
133
139
  competition_result_types: opts.competition_result_types,
@@ -238,6 +244,21 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
238
244
  )
239
245
  }
240
246
 
247
+ const renderPollCampaigns = (data: { item:PollCampaignProps, index:number }) => {
248
+ const company = companies.find(c => c.company_id == data.item.company_id)
249
+ const admin = players.find(p => p.player_id == data.item.player_id);
250
+ return (
251
+ <View key={data.item.poll_campaign_id.toString()} transparent style={{ margin:10, width:engagement_width }}>
252
+ <PollCampaignCard
253
+ poll_campaign={data.item}
254
+ company={company}
255
+ admin={admin}
256
+ onSelectPollCampaign={(c) => onSelectPollCampaign(c)}
257
+ />
258
+ </View>
259
+ )
260
+ }
261
+
241
262
  const renderSections = (data:{item:string, index:number}) => {
242
263
  switch(data.item){
243
264
  case 'header':
@@ -252,6 +273,12 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
252
273
  />
253
274
  )
254
275
  case 'toggle':
276
+ let toggles = [
277
+ {key:'competitions', label: 'Competitions'},
278
+ {key:'brackets', label: 'Brackets'},
279
+ ]
280
+ if(poll_campaigns.length > 0){ toggles.push({ key: 'polls', label: 'Predict / Trivia' }) }
281
+ if(squares_competitions.length > 0){ toggles.push({ key: 'squares', label: 'Squares' }) }
255
282
  return (
256
283
  <View transparent style={{ margin:10 }}>
257
284
  {onManage && view_mode == 'mobile' ?
@@ -265,11 +292,7 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
265
292
  <Toggle
266
293
  background_color={Colors.views.header}
267
294
  inactive_title_color={Colors.text.h1}
268
- options={[
269
- {key:'competitions', label: 'Competitions'},
270
- {key:'brackets', label: 'Brackets'},
271
- {key:'squares', label: 'Squares'}
272
- ]}
295
+ options={toggles}
273
296
  selected_option={active_tab}
274
297
  onSelectOption={(option) => setActiveTab(option as any)}
275
298
  />
@@ -365,6 +388,22 @@ const EngageModule = ({ view_mode, insets, init_engagement, onBracketRoom, onSel
365
388
  })}
366
389
  </View>
367
390
  </View>
391
+ :active_tab == 'polls' ?
392
+ <View transparent>
393
+ <View transparent style={{ marginBottom:15, marginTop:10 }}>
394
+ <View type='header' style={{ flexDirection:'row', alignItems:'center', padding:10 }}>
395
+ <View transparent style={{ flex:1 }}>
396
+ <Text theme='h1'>Prediction / Trivia Games</Text>
397
+ <Text style={{ marginTop:3 }} theme='description'>Below are available prediction or trivia games.</Text>
398
+ </View>
399
+ </View>
400
+ </View>
401
+ <View style={{ flexDirection:'row', flexWrap:'wrap', justifyContent:'center' }}>
402
+ {poll_campaigns.sort((a,b) => moment(b.create_datetime).unix() - moment(a.create_datetime).unix()).map((c, i) => {
403
+ return renderPollCampaigns({ item: c, index: i })
404
+ })}
405
+ </View>
406
+ </View>
368
407
  :active_tab == 'brackets' ?
369
408
  <View transparent>
370
409
  <View transparent>
@@ -171,6 +171,15 @@ const PollCampaignGoalApi = {
171
171
  }
172
172
 
173
173
  const PollResponseApi = {
174
+ createPMOrder: async(poll_option_id:string, stake:number):Promise<{ poll_response:PollResponseProps, my_leader:PollCampaignLeaderProps, poll_campaign:PollCampaignProps } | undefined> => {
175
+ try {
176
+ const resp = await axios.post(`${AUTH_SVC_API}/v2/pm/action/order`, { poll_option_id, stake });
177
+ return resp.data
178
+ } catch (e) {
179
+ console.log(e);
180
+ return undefined
181
+ }
182
+ },
174
183
  createPollResponse : async(poll_response:PollResponseProps):Promise<PollResponseProps> => {
175
184
  const resp = await axios.post(`${AUTH_SVC_API}/v1/polls/poll/response/create`, { poll_response })
176
185
  return resp.data.poll_response
@@ -7,14 +7,23 @@ import { useColors } from '../../constants/useColors';
7
7
 
8
8
  type CampaignHeaderProps = {
9
9
  poll_campaign:PollCampaignProps,
10
+ onBack?:() => void,
10
11
  onSharePollCampaign:(pc:PollCampaignProps) => void
11
12
  }
12
13
 
13
- const CampaignHeader = ({ poll_campaign, onSharePollCampaign }:CampaignHeaderProps) => {
14
+ const CampaignHeader = ({ poll_campaign, onSharePollCampaign, onBack }:CampaignHeaderProps) => {
14
15
  const Colors = useColors();
15
16
  return (
16
17
  <View>
17
18
  <View type='header' nativeID="competition_header" style={{ flexDirection:'row', alignItems:'center', padding:20, borderBottomWidth:1 }}>
19
+ {onBack ?
20
+ <Button
21
+ transparent
22
+ style={{ paddingLeft:0, paddingRight:20 }}
23
+ >
24
+ <Icons.ChevronIcon direction='left' color={Colors.text.h1} size={10} />
25
+ </Button>
26
+ :<></>}
18
27
  <View transparent>
19
28
  <Image
20
29
  source={{ uri: poll_campaign.campaign_image?.url ?? 'https://res.cloudinary.com/hoabts6mc/image/upload/v1649737862/be_logo_jte2ux.webp' }}
@@ -100,9 +100,9 @@ const CampaignLeaderboard = ({ poll_campaign, height, mode, view_mode, onShowFul
100
100
  }
101
101
 
102
102
  return (
103
- <View float style={{ flex:1, borderRadius:22, maxHeight: height-20, width: mode == 'desktop'?500:undefined }}>
103
+ <View float style={{ flex:1, maxHeight: height-20, width: mode == 'desktop'?500:undefined }}>
104
104
  {my_leader && me ?
105
- <View type='header' nativeID="my_results" style={{ padding:10, borderTopRightRadius:22, borderTopLeftRadius:22 }}>
105
+ <View type='header' nativeID="my_results" style={{ padding:10 }}>
106
106
  <Text style={{ padding:10 }} size={14} theme='h1' weight='bold'>My Results</Text>
107
107
  <View float style={{ flexDirection:'row', alignItems:'center', margin:4, padding:5, borderRadius:22 }}>
108
108
  <View transparent nativeID="player" style={{ flex:1, flexDirection:'row', alignItems:'center' }}>
@@ -17,14 +17,17 @@ type PollCampaignModuleProps = {
17
17
  player_id?:string,
18
18
  view_mode:'desktop'|'mobile',
19
19
  distinct_id:string,
20
+ insets?:{ top:number, bottom:number, left:number, right:number },
21
+ onBack?:() => void,
20
22
  onEvent?:(be_event:BEEventProps) => void,
21
23
  onRequestAuthenticate: (auth_strategy_id?:string, company_id?:string) => void,
22
24
  onSharePollCampaign: (poll_campaign:PollCampaignProps) => void,
23
25
  onComplete:() => void
26
+
24
27
  }
25
28
 
26
29
  const sections = ['header', 'progress', 'results','questions']
27
- const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, onRequestAuthenticate, onSharePollCampaign }: PollCampaignModuleProps ) => {
30
+ const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, insets, onBack, onRequestAuthenticate, onSharePollCampaign }: PollCampaignModuleProps ) => {
28
31
  const [ needs_reload, setNeedsReload ] = useState(false);
29
32
  const [ socket_polls, setSocketPolls ] = useState<PollProps[]>([]);
30
33
  const [ socket_campaign, setSocketCampaign ] = useState<PollCampaignProps|undefined>(undefined);
@@ -96,12 +99,15 @@ const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, onR
96
99
  const handleSubmitResponse = async(pr:PollResponseProps) => {
97
100
  if(!player_id){ return onRequestAuthenticate(poll_campaign?.auth_strategy_id, poll_campaign?.company_id) }
98
101
  try {
102
+ if(!pr.poll_option_id || !pr.stake){ return }
99
103
  if(action_loading){ return }
100
104
  setMyData({ ...my_data, action_loading: true })
101
- let new_pr = await PollResponseApi.createPollResponse(pr);
105
+ //let new_pr = await PollResponseApi.createPollResponse(pr);
106
+ let response = await PollResponseApi.createPMOrder(pr.poll_option_id, parseFloat(pr.stake as string))
107
+ if(!response){ return setMyData({ ...my_data, action_loading:false }) }
102
108
  setMyData({
103
109
  ...my_data,
104
- poll_responses: poll_responses.filter(pr => pr.poll_response_id != new_pr.poll_response_id).concat(new_pr)
110
+ poll_responses: poll_responses.filter(pr => pr.poll_response_id != response.poll_response.poll_response_id).concat(response.poll_response)
105
111
  })
106
112
  } catch (e) {
107
113
  alert('Unable to process!')
@@ -126,6 +132,7 @@ const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, onR
126
132
  if(!poll_campaign){ return <></> }
127
133
  return (
128
134
  <CampaignHeader
135
+ onBack={onBack}
129
136
  poll_campaign={poll_campaign}
130
137
  onSharePollCampaign={onSharePollCampaign}
131
138
  />
@@ -191,7 +198,7 @@ const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, onR
191
198
  transparent
192
199
  visible={active_poll_id ? true : false}
193
200
  >
194
- <View type='blur' style={view_mode=='desktop'?{flex:1, justifyContent:'center', alignItems:'center'}:{ flex:1, justifyContent:'flex-end', padding:12 }}>
201
+ <View type='blur' style={view_mode=='desktop'?{flex:1, justifyContent:'center', alignItems:'center'}:{ flex:1, justifyContent:'flex-end', padding:12, paddingBottom:(insets?.bottom??0) + 12, paddingTop:(insets?.top??0) + 12 }}>
195
202
  <PollCard
196
203
  poll_id={active_poll_id}
197
204
  action_loading={action_loading}
@@ -213,7 +220,7 @@ const PollCampaign = ({ distinct_id, view_mode, poll_campaign_id, player_id, onR
213
220
  visible={full_leaderboard?true:false}
214
221
  style={{ flex:1 }}
215
222
  >
216
- <View type='blur' style={view_mode=='desktop'?{flex:1, justifyContent:'center', alignItems:'center'}:{ flex:1, justifyContent:'flex-end', padding:12 }}>
223
+ <View type='blur' style={view_mode=='desktop'?{flex:1, justifyContent:'center', alignItems:'center'}:{ flex:1, justifyContent:'flex-end', padding:12, paddingBottom:(insets?.bottom??0) + 12, paddingTop:(insets?.top??0) + 12 }}>
217
224
  <CampaignLeaderboard
218
225
  poll_campaign={poll_campaign}
219
226
  view_mode='full'
package/src/types.d.ts CHANGED
@@ -729,6 +729,8 @@ export interface PollCampaignProps {
729
729
  admins:string[],
730
730
  phone:string,
731
731
  total_responses:number,
732
+ prize_image?:any,
733
+ prize_override?:string,
732
734
  status: string,
733
735
  campaign_type: 'predict'|'trivia'|'feedback',
734
736
  active_polls?:number,
@@ -770,18 +772,24 @@ export interface PollCampaignGoalProps {
770
772
  }
771
773
 
772
774
 
775
+
773
776
  export interface PollCampaignLeaderProps {
774
777
  poll_campaign_leader_id:string,
775
778
  poll_campaign_id:string,
776
779
  player_id:string,
777
780
  place:number,
781
+ status: 'inprogress'|'closed',
778
782
  winnings:number,
779
- stake:number,
783
+ potential_winnings:number,
784
+ staked:number,
780
785
  responses:number,
786
+ earnings:number,
787
+ resolved_datetime?:any,
781
788
  create_datetime:any,
782
789
  last_update_datetime:any
783
790
  }
784
791
 
792
+
785
793
  export interface PollProps {
786
794
  poll_id:string,
787
795
  poll_campaign_id:string,