be-components 7.4.2 → 7.4.4

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 (89) hide show
  1. package/lib/commonjs/ApiOverrides/index.js +4 -2
  2. package/lib/commonjs/ApiOverrides/index.js.map +1 -1
  3. package/lib/commonjs/BettorBot/api/index.js +64 -0
  4. package/lib/commonjs/BettorBot/api/index.js.map +1 -0
  5. package/lib/commonjs/BettorBot/components/BroadcastMessageCard.js +233 -0
  6. package/lib/commonjs/BettorBot/components/BroadcastMessageCard.js.map +1 -0
  7. package/lib/commonjs/BettorBot/components/ServerInfoCard.js +126 -0
  8. package/lib/commonjs/BettorBot/components/ServerInfoCard.js.map +1 -0
  9. package/lib/commonjs/BettorBot/index.js +532 -0
  10. package/lib/commonjs/BettorBot/index.js.map +1 -0
  11. package/lib/commonjs/NotificationManager/api/index.js +448 -0
  12. package/lib/commonjs/NotificationManager/api/index.js.map +1 -0
  13. package/lib/commonjs/NotificationManager/index.js +1159 -0
  14. package/lib/commonjs/NotificationManager/index.js.map +1 -0
  15. package/lib/commonjs/index.js +27 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/types.d.js.map +1 -1
  18. package/lib/module/ApiOverrides/index.js +4 -2
  19. package/lib/module/ApiOverrides/index.js.map +1 -1
  20. package/lib/module/BettorBot/api/index.js +57 -0
  21. package/lib/module/BettorBot/api/index.js.map +1 -0
  22. package/lib/module/BettorBot/components/BroadcastMessageCard.js +226 -0
  23. package/lib/module/BettorBot/components/BroadcastMessageCard.js.map +1 -0
  24. package/lib/module/BettorBot/components/ServerInfoCard.js +119 -0
  25. package/lib/module/BettorBot/components/ServerInfoCard.js.map +1 -0
  26. package/lib/module/BettorBot/index.js +524 -0
  27. package/lib/module/BettorBot/index.js.map +1 -0
  28. package/lib/module/NotificationManager/api/index.js +441 -0
  29. package/lib/module/NotificationManager/api/index.js.map +1 -0
  30. package/lib/module/NotificationManager/index.js +1140 -0
  31. package/lib/module/NotificationManager/index.js.map +1 -0
  32. package/lib/module/index.js +4 -1
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/types.d.js.map +1 -1
  35. package/lib/typescript/lib/commonjs/ApiOverrides/index.d.ts.map +1 -1
  36. package/lib/typescript/lib/commonjs/BettorBot/api/index.d.ts +9 -0
  37. package/lib/typescript/lib/commonjs/BettorBot/api/index.d.ts.map +1 -0
  38. package/lib/typescript/lib/commonjs/BettorBot/components/BroadcastMessageCard.d.ts +10 -0
  39. package/lib/typescript/lib/commonjs/BettorBot/components/BroadcastMessageCard.d.ts.map +1 -0
  40. package/lib/typescript/lib/commonjs/BettorBot/components/ServerInfoCard.d.ts +10 -0
  41. package/lib/typescript/lib/commonjs/BettorBot/components/ServerInfoCard.d.ts.map +1 -0
  42. package/lib/typescript/lib/commonjs/BettorBot/index.d.ts +7 -0
  43. package/lib/typescript/lib/commonjs/BettorBot/index.d.ts.map +1 -0
  44. package/lib/typescript/lib/commonjs/NotificationManager/api/index.d.ts +804 -0
  45. package/lib/typescript/lib/commonjs/NotificationManager/api/index.d.ts.map +1 -0
  46. package/lib/typescript/lib/commonjs/NotificationManager/index.d.ts +815 -0
  47. package/lib/typescript/lib/commonjs/NotificationManager/index.d.ts.map +1 -0
  48. package/lib/typescript/lib/commonjs/index.d.ts +804 -0
  49. package/lib/typescript/lib/commonjs/index.d.ts.map +1 -1
  50. package/lib/typescript/lib/module/ApiOverrides/index.d.ts.map +1 -1
  51. package/lib/typescript/lib/module/BettorBot/api/index.d.ts +8 -0
  52. package/lib/typescript/lib/module/BettorBot/api/index.d.ts.map +1 -0
  53. package/lib/typescript/lib/module/BettorBot/components/BroadcastMessageCard.d.ts +10 -0
  54. package/lib/typescript/lib/module/BettorBot/components/BroadcastMessageCard.d.ts.map +1 -0
  55. package/lib/typescript/lib/module/BettorBot/components/ServerInfoCard.d.ts +10 -0
  56. package/lib/typescript/lib/module/BettorBot/components/ServerInfoCard.d.ts.map +1 -0
  57. package/lib/typescript/lib/module/BettorBot/index.d.ts +7 -0
  58. package/lib/typescript/lib/module/BettorBot/index.d.ts.map +1 -0
  59. package/lib/typescript/lib/module/NotificationManager/api/index.d.ts +803 -0
  60. package/lib/typescript/lib/module/NotificationManager/api/index.d.ts.map +1 -0
  61. package/lib/typescript/lib/module/NotificationManager/index.d.ts +16 -0
  62. package/lib/typescript/lib/module/NotificationManager/index.d.ts.map +1 -0
  63. package/lib/typescript/lib/module/index.d.ts +5 -1
  64. package/lib/typescript/lib/module/index.d.ts.map +1 -1
  65. package/lib/typescript/src/ApiOverrides/index.d.ts.map +1 -1
  66. package/lib/typescript/src/BettorBot/api/index.d.ts +9 -0
  67. package/lib/typescript/src/BettorBot/api/index.d.ts.map +1 -0
  68. package/lib/typescript/src/BettorBot/components/BroadcastMessageCard.d.ts +15 -0
  69. package/lib/typescript/src/BettorBot/components/BroadcastMessageCard.d.ts.map +1 -0
  70. package/lib/typescript/src/BettorBot/components/ServerInfoCard.d.ts +12 -0
  71. package/lib/typescript/src/BettorBot/components/ServerInfoCard.d.ts.map +1 -0
  72. package/lib/typescript/src/BettorBot/index.d.ts +9 -0
  73. package/lib/typescript/src/BettorBot/index.d.ts.map +1 -0
  74. package/lib/typescript/src/NotificationManager/api/index.d.ts +822 -0
  75. package/lib/typescript/src/NotificationManager/api/index.d.ts.map +1 -0
  76. package/lib/typescript/src/NotificationManager/index.d.ts +17 -0
  77. package/lib/typescript/src/NotificationManager/index.d.ts.map +1 -0
  78. package/lib/typescript/src/index.d.ts +4 -1
  79. package/lib/typescript/src/index.d.ts.map +1 -1
  80. package/package.json +1 -1
  81. package/src/ApiOverrides/index.ts +4 -2
  82. package/src/BettorBot/api/index.ts +49 -0
  83. package/src/BettorBot/components/BroadcastMessageCard.tsx +159 -0
  84. package/src/BettorBot/components/ServerInfoCard.tsx +73 -0
  85. package/src/BettorBot/index.tsx +295 -0
  86. package/src/NotificationManager/api/index.ts +134 -0
  87. package/src/NotificationManager/index.tsx +894 -0
  88. package/src/index.tsx +8 -1
  89. package/src/types.d.ts +118 -0
@@ -0,0 +1,119 @@
1
+ import React, { useState } from 'react';
2
+ import { Button, Text, View } from "../../Components/Themed";
3
+ import { FlatList, Image } from 'react-native';
4
+ import { Checkbox, SearchBox } from '../../Components';
5
+ import { useColors } from '../../constants/useColors';
6
+ const ServerInfoCard = ({
7
+ server,
8
+ selected_channels,
9
+ onDeselectChannel,
10
+ onSelectChannel,
11
+ onClose
12
+ }) => {
13
+ const Colors = useColors();
14
+ const [channel_search, setChannelSearch] = useState('');
15
+ const filtered_channels = server.accessibleChannels.filter(c => `${c.name}`.toLowerCase().includes(channel_search));
16
+ const renderChannels = data => {
17
+ const selected = selected_channels.includes(data.item.id) ? true : false;
18
+ return /*#__PURE__*/React.createElement(View, {
19
+ transparent: true,
20
+ type: "row",
21
+ style: {
22
+ padding: 8,
23
+ borderBottomWidth: 1,
24
+ borderColor: Colors.borders.light
25
+ }
26
+ }, /*#__PURE__*/React.createElement(Checkbox, {
27
+ style: {
28
+ marginRight: 10
29
+ },
30
+ checked: selected,
31
+ onSelect: () => selected ? onDeselectChannel(data.item.id) : onSelectChannel(data.item.id)
32
+ }), /*#__PURE__*/React.createElement(View, {
33
+ transparent: true,
34
+ style: {
35
+ flex: 1,
36
+ marginLeft: 10
37
+ }
38
+ }, /*#__PURE__*/React.createElement(Text, {
39
+ theme: "h1"
40
+ }, data.item.name)));
41
+ };
42
+ return /*#__PURE__*/React.createElement(View, {
43
+ float: true,
44
+ style: {
45
+ flex: 1
46
+ }
47
+ }, /*#__PURE__*/React.createElement(View, {
48
+ type: "header",
49
+ style: {
50
+ flexDirection: 'row',
51
+ alignItems: 'center',
52
+ padding: 10,
53
+ borderTopRightRadius: 8,
54
+ borderTopLeftRadius: 8
55
+ }
56
+ }, /*#__PURE__*/React.createElement(Image, {
57
+ source: {
58
+ uri: server.icon ?? ''
59
+ },
60
+ style: {
61
+ height: 40,
62
+ width: 40
63
+ }
64
+ }), /*#__PURE__*/React.createElement(View, {
65
+ transparent: true,
66
+ style: {
67
+ flex: 1,
68
+ marginLeft: 10
69
+ }
70
+ }, /*#__PURE__*/React.createElement(Text, {
71
+ theme: "h1"
72
+ }, server.name), /*#__PURE__*/React.createElement(Text, {
73
+ theme: "description",
74
+ style: {
75
+ marginTop: 3
76
+ }
77
+ }, server.description))), /*#__PURE__*/React.createElement(View, {
78
+ style: {
79
+ flex: 1,
80
+ padding: 10
81
+ }
82
+ }, /*#__PURE__*/React.createElement(Text, {
83
+ theme: "h1",
84
+ style: {
85
+ marginBottom: 10
86
+ }
87
+ }, "Select Channels Below"), /*#__PURE__*/React.createElement(View, {
88
+ transparent: true,
89
+ style: {
90
+ padding: 5
91
+ }
92
+ }, /*#__PURE__*/React.createElement(SearchBox, {
93
+ onChange: text => setChannelSearch(text),
94
+ hide_search_button: true
95
+ })), /*#__PURE__*/React.createElement(FlatList, {
96
+ key: 'channel_list',
97
+ data: filtered_channels.sort((a, b) => a.name.localeCompare(b.name)),
98
+ renderItem: renderChannels,
99
+ keyExtractor: item => item.id
100
+ })), /*#__PURE__*/React.createElement(View, {
101
+ type: "footer",
102
+ style: {
103
+ flexDirection: 'row',
104
+ alignItems: 'center',
105
+ padding: 10,
106
+ borderBottomRightRadius: 8,
107
+ borderBottomLeftRadius: 8
108
+ }
109
+ }, /*#__PURE__*/React.createElement(Button, {
110
+ type: "close",
111
+ title: "CLOSE",
112
+ style: {
113
+ flex: 1
114
+ },
115
+ onPress: () => onClose()
116
+ })));
117
+ };
118
+ export default ServerInfoCard;
119
+ //# sourceMappingURL=ServerInfoCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","Button","Text","View","FlatList","Image","Checkbox","SearchBox","useColors","ServerInfoCard","server","selected_channels","onDeselectChannel","onSelectChannel","onClose","Colors","channel_search","setChannelSearch","filtered_channels","accessibleChannels","filter","c","name","toLowerCase","includes","renderChannels","data","selected","item","id","createElement","transparent","type","style","padding","borderBottomWidth","borderColor","borders","light","marginRight","checked","onSelect","flex","marginLeft","theme","float","flexDirection","alignItems","borderTopRightRadius","borderTopLeftRadius","source","uri","icon","height","width","marginTop","description","marginBottom","onChange","text","hide_search_button","key","sort","a","b","localeCompare","renderItem","keyExtractor","borderBottomRightRadius","borderBottomLeftRadius","title","onPress"],"sourceRoot":"../../../../src","sources":["BettorBot/components/ServerInfoCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,524 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Button, Text, View } from "../Components/Themed";
3
+ import { FlatList, Image } from 'react-native';
4
+ import { BettorBotApi } from './api';
5
+ import Pagination from '../Components/Pagination';
6
+ import { useColors } from '../constants/useColors';
7
+ import { Checkbox, SearchBox } from '../Components';
8
+ import moment from 'moment-mini';
9
+ import ServerInfoCard from './components/ServerInfoCard';
10
+ import BroadcastMessageCard from './components/BroadcastMessageCard';
11
+ const PAGE_SIZE = 5;
12
+ const sections = ['broadcast', 'row_1', 'row_2'];
13
+ const BettorBotDashboard = ({
14
+ me,
15
+ onFocusPosition
16
+ }) => {
17
+ const Colors = useColors();
18
+ const [size, setSize] = useState({
19
+ width: 0,
20
+ height: 0
21
+ });
22
+ const [server_offset, setServerOffset] = useState(0);
23
+ const [server_search, setServerSearch] = useState('');
24
+ const [show_server_id, setShowServerId] = useState(undefined);
25
+ const [player_offset, setPlayerOffset] = useState(0);
26
+ const [player_search, setPlayerSearch] = useState('');
27
+ const [selected_servers, setSelectedServers] = useState([]);
28
+ const [show_message, setShowMessage] = useState(false);
29
+ const [state, setState] = useState({
30
+ loading: false,
31
+ servers: [],
32
+ players: [],
33
+ discord_player_stats: []
34
+ });
35
+ const {
36
+ servers,
37
+ discord_player_stats,
38
+ players
39
+ } = state;
40
+ const total_servers = servers.length;
41
+ const total_channels = servers.reduce((a, b) => a + b.accessibleChannels.length, 0);
42
+ const total_members = servers.reduce((a, b) => a + b.memberCount, 0);
43
+ let filtered_servers = servers.sort((a, b) => b.memberCount - a.memberCount || a.name.localeCompare(b.name)).slice(server_offset * PAGE_SIZE, server_offset * PAGE_SIZE + PAGE_SIZE);
44
+ if (server_search) {
45
+ filtered_servers = servers.filter(s => `${s.name}`.toLowerCase().includes(server_search.toLowerCase())).slice(server_offset * PAGE_SIZE, server_offset * PAGE_SIZE + PAGE_SIZE);
46
+ }
47
+ const total_discord_players = discord_player_stats.reduce((a, b) => a + b.count, 0);
48
+ const connected = discord_player_stats.filter(s => s.status == 'active').reduce((a, b) => a + b.count, 0);
49
+ const not_connected = discord_player_stats.filter(s => s.status != 'active').reduce((a, b) => a + b.count, 0);
50
+ let filtered_players = players.sort((a, b) => a.username.localeCompare(b.username)).slice(player_offset * PAGE_SIZE, player_offset * PAGE_SIZE + PAGE_SIZE);
51
+ if (player_search) {
52
+ filtered_players = players.filter(s => `${s.username}`.toLowerCase().includes(player_search.toLowerCase())).slice(player_offset * PAGE_SIZE, player_offset * PAGE_SIZE + PAGE_SIZE);
53
+ }
54
+ const show_server = servers.find(s => s.id == show_server_id);
55
+ const selected_channel_count = selected_servers.reduce((a, b) => a + b.channels.length, 0);
56
+ useEffect(() => {
57
+ if (!me) {
58
+ return;
59
+ }
60
+ if (me.role != 'admin') {
61
+ return alert('You are not authorized');
62
+ }
63
+ BettorBotApi.setEnvironment();
64
+ getData();
65
+ }, [me]);
66
+ const getData = async () => {
67
+ setState({
68
+ ...state,
69
+ loading: true
70
+ });
71
+ const resp = await BettorBotApi.getServers();
72
+ if (resp.error) {
73
+ alert('Unable to get data');
74
+ }
75
+ const dps = await BettorBotApi.getDiscordStats();
76
+ let player_ids = [];
77
+ dps.map(p => p.player_ids.map(id => player_ids.push(id)));
78
+ let s_players = await BettorBotApi.getPlayersByPlayerIds(player_ids);
79
+ setState({
80
+ ...state,
81
+ servers: resp.servers,
82
+ discord_player_stats: dps,
83
+ players: s_players,
84
+ loading: false
85
+ });
86
+ };
87
+ const renderPlayers = data => {
88
+ return /*#__PURE__*/React.createElement(View, {
89
+ transparent: true,
90
+ type: "row",
91
+ style: {
92
+ padding: 8,
93
+ borderBottomWidth: 1,
94
+ borderColor: Colors.borders.light
95
+ }
96
+ }, /*#__PURE__*/React.createElement(Image, {
97
+ source: {
98
+ uri: data.item.profile_pic ?? ''
99
+ },
100
+ style: {
101
+ height: 40,
102
+ width: 40
103
+ },
104
+ resizeMode: "cover"
105
+ }), /*#__PURE__*/React.createElement(View, {
106
+ transparent: true,
107
+ style: {
108
+ flex: 1,
109
+ marginLeft: 10
110
+ }
111
+ }, /*#__PURE__*/React.createElement(Text, {
112
+ theme: "h1"
113
+ }, data.item.username), /*#__PURE__*/React.createElement(Text, {
114
+ theme: "description",
115
+ style: {
116
+ marginTop: 3,
117
+ maxWidth: size.width * 0.7
118
+ }
119
+ }, "Joined ", moment(data.item.create_datetime).fromNow())));
120
+ };
121
+ const renderServers = data => {
122
+ const selected = selected_servers.find(s => s.guild_id == data.item.id) ? true : false;
123
+ return /*#__PURE__*/React.createElement(View, {
124
+ transparent: true,
125
+ type: "row",
126
+ style: {
127
+ padding: 8,
128
+ borderBottomWidth: 1,
129
+ borderColor: Colors.borders.light
130
+ }
131
+ }, /*#__PURE__*/React.createElement(Checkbox, {
132
+ style: {
133
+ marginRight: 10
134
+ },
135
+ checked: selected,
136
+ onSelect: () => {
137
+ if (!selected) {
138
+ setSelectedServers(selected_servers.concat({
139
+ guild_id: data.item.id,
140
+ channels: []
141
+ }));
142
+ return setShowServerId(data.item.id);
143
+ }
144
+ setSelectedServers(selected_servers.filter(s => s.guild_id != data.item.id));
145
+ }
146
+ }), /*#__PURE__*/React.createElement(Image, {
147
+ source: {
148
+ uri: data.item.icon ?? ''
149
+ },
150
+ style: {
151
+ height: 40,
152
+ width: 40
153
+ },
154
+ resizeMode: "cover"
155
+ }), /*#__PURE__*/React.createElement(View, {
156
+ transparent: true,
157
+ style: {
158
+ flex: 1,
159
+ marginLeft: 10
160
+ }
161
+ }, /*#__PURE__*/React.createElement(Text, {
162
+ theme: "h1"
163
+ }, data.item.name), /*#__PURE__*/React.createElement(Text, {
164
+ theme: "description",
165
+ style: {
166
+ marginTop: 3,
167
+ maxWidth: size.width * 0.7
168
+ }
169
+ }, data.item.description)), /*#__PURE__*/React.createElement(View, {
170
+ transparent: true,
171
+ style: {
172
+ padding: 5
173
+ }
174
+ }, /*#__PURE__*/React.createElement(Text, {
175
+ theme: "h1"
176
+ }, data.item.memberCount), /*#__PURE__*/React.createElement(Text, {
177
+ theme: "description",
178
+ style: {
179
+ marginTop: 3
180
+ }
181
+ }, "Members")));
182
+ };
183
+ const renderSections = data => {
184
+ switch (data.item) {
185
+ case 'row_1':
186
+ return /*#__PURE__*/React.createElement(View, {
187
+ style: {
188
+ flexDirection: 'row',
189
+ flexWrap: 'wrap'
190
+ }
191
+ }, /*#__PURE__*/React.createElement(View, {
192
+ float: true,
193
+ style: {
194
+ margin: 5,
195
+ minWidth: 150,
196
+ flexGrow: 1
197
+ }
198
+ }, /*#__PURE__*/React.createElement(View, {
199
+ type: "header",
200
+ style: {
201
+ flexDirection: 'row',
202
+ alignItems: 'center',
203
+ padding: 10,
204
+ borderTopRightRadius: 8,
205
+ borderTopLeftRadius: 8
206
+ }
207
+ }, /*#__PURE__*/React.createElement(View, {
208
+ transparent: true,
209
+ style: {
210
+ flex: 1
211
+ }
212
+ }, /*#__PURE__*/React.createElement(Text, {
213
+ theme: "h1"
214
+ }, "Bot Stats"))), /*#__PURE__*/React.createElement(View, {
215
+ transparent: true,
216
+ style: {
217
+ padding: 10
218
+ }
219
+ }, /*#__PURE__*/React.createElement(View, {
220
+ transparent: true,
221
+ type: "row",
222
+ style: {
223
+ padding: 5
224
+ }
225
+ }, /*#__PURE__*/React.createElement(Text, {
226
+ style: {
227
+ flex: 1
228
+ },
229
+ theme: "h2"
230
+ }, "Total Servers"), /*#__PURE__*/React.createElement(Text, {
231
+ theme: "h1"
232
+ }, total_servers)), /*#__PURE__*/React.createElement(View, {
233
+ transparent: true,
234
+ type: "row",
235
+ style: {
236
+ padding: 5
237
+ }
238
+ }, /*#__PURE__*/React.createElement(Text, {
239
+ style: {
240
+ flex: 1
241
+ },
242
+ theme: "h2"
243
+ }, "Total Channels"), /*#__PURE__*/React.createElement(Text, {
244
+ theme: "h1"
245
+ }, total_channels)), /*#__PURE__*/React.createElement(View, {
246
+ transparent: true,
247
+ type: "row",
248
+ style: {
249
+ padding: 5
250
+ }
251
+ }, /*#__PURE__*/React.createElement(Text, {
252
+ style: {
253
+ flex: 1
254
+ },
255
+ theme: "h2"
256
+ }, "Total Members"), /*#__PURE__*/React.createElement(Text, {
257
+ theme: "h1"
258
+ }, total_members)))), /*#__PURE__*/React.createElement(View, {
259
+ float: true,
260
+ style: {
261
+ margin: 5,
262
+ minWidth: 350,
263
+ flexGrow: 1
264
+ }
265
+ }, /*#__PURE__*/React.createElement(View, {
266
+ type: "header",
267
+ style: {
268
+ flexDirection: 'row',
269
+ alignItems: 'center',
270
+ padding: 10,
271
+ borderTopRightRadius: 8,
272
+ borderTopLeftRadius: 8
273
+ }
274
+ }, /*#__PURE__*/React.createElement(View, {
275
+ transparent: true,
276
+ style: {
277
+ flex: 1
278
+ }
279
+ }, /*#__PURE__*/React.createElement(Text, {
280
+ theme: "h1"
281
+ }, "Servers"), /*#__PURE__*/React.createElement(Text, {
282
+ style: {
283
+ marginTop: 3
284
+ },
285
+ theme: "description"
286
+ }, "Select Servers to send message to below.")), selected_servers.length > 0 && selected_channel_count > 0 ? /*#__PURE__*/React.createElement(Button, {
287
+ type: "action",
288
+ style: {
289
+ padding: 10
290
+ },
291
+ onPress: () => setShowMessage(true)
292
+ }, /*#__PURE__*/React.createElement(Text, {
293
+ theme: "description",
294
+ color: Colors.text.white
295
+ }, "Send Message"), /*#__PURE__*/React.createElement(Text, {
296
+ style: {
297
+ marginTop: 3
298
+ },
299
+ theme: "light",
300
+ color: Colors.text.white
301
+ }, selected_servers.length, " Servers")) : /*#__PURE__*/React.createElement(React.Fragment, null)), /*#__PURE__*/React.createElement(View, {
302
+ transparent: true
303
+ }, /*#__PURE__*/React.createElement(View, {
304
+ transparent: true,
305
+ style: {
306
+ padding: 10
307
+ }
308
+ }, /*#__PURE__*/React.createElement(SearchBox, {
309
+ hide_search_button: true,
310
+ onChange: text => {
311
+ setServerSearch(text);
312
+ setServerOffset(0);
313
+ }
314
+ })), /*#__PURE__*/React.createElement(Pagination, {
315
+ offset: server_offset,
316
+ onNext: () => setServerOffset(server_offset + 1),
317
+ onPrevious: () => setServerOffset(server_offset - 1)
318
+ }), /*#__PURE__*/React.createElement(FlatList, {
319
+ data: filtered_servers.sort((a, b) => b.memberCount - a.memberCount || a.name.localeCompare(b.name)),
320
+ renderItem: renderServers,
321
+ keyExtractor: item => item.id,
322
+ key: 'server_list'
323
+ }))));
324
+ case 'row_2':
325
+ return /*#__PURE__*/React.createElement(View, {
326
+ style: {
327
+ flexDirection: 'row',
328
+ flexWrap: 'wrap'
329
+ }
330
+ }, /*#__PURE__*/React.createElement(View, {
331
+ float: true,
332
+ style: {
333
+ margin: 5,
334
+ minWidth: 150,
335
+ flexGrow: 1
336
+ }
337
+ }, /*#__PURE__*/React.createElement(View, {
338
+ type: "header",
339
+ style: {
340
+ flexDirection: 'row',
341
+ alignItems: 'center',
342
+ padding: 10,
343
+ borderTopRightRadius: 8,
344
+ borderTopLeftRadius: 8
345
+ }
346
+ }, /*#__PURE__*/React.createElement(View, {
347
+ transparent: true,
348
+ style: {
349
+ flex: 1
350
+ }
351
+ }, /*#__PURE__*/React.createElement(Text, {
352
+ theme: "h1"
353
+ }, "Connection Stats"))), /*#__PURE__*/React.createElement(View, {
354
+ transparent: true,
355
+ style: {
356
+ padding: 10
357
+ }
358
+ }, /*#__PURE__*/React.createElement(View, {
359
+ transparent: true,
360
+ type: "row",
361
+ style: {
362
+ padding: 5
363
+ }
364
+ }, /*#__PURE__*/React.createElement(Text, {
365
+ style: {
366
+ flex: 1
367
+ },
368
+ theme: "h2"
369
+ }, "Total Players"), /*#__PURE__*/React.createElement(Text, {
370
+ theme: "h1"
371
+ }, total_discord_players)), /*#__PURE__*/React.createElement(View, {
372
+ transparent: true,
373
+ type: "row",
374
+ style: {
375
+ padding: 5
376
+ }
377
+ }, /*#__PURE__*/React.createElement(Text, {
378
+ style: {
379
+ flex: 1
380
+ },
381
+ theme: "h2"
382
+ }, "Fully Connected"), /*#__PURE__*/React.createElement(Text, {
383
+ theme: "h1"
384
+ }, connected)), /*#__PURE__*/React.createElement(View, {
385
+ transparent: true,
386
+ type: "row",
387
+ style: {
388
+ padding: 5
389
+ }
390
+ }, /*#__PURE__*/React.createElement(Text, {
391
+ style: {
392
+ flex: 1
393
+ },
394
+ theme: "h2"
395
+ }, "Inactive"), /*#__PURE__*/React.createElement(Text, {
396
+ theme: "h1"
397
+ }, not_connected)))), /*#__PURE__*/React.createElement(View, {
398
+ float: true,
399
+ style: {
400
+ margin: 5,
401
+ minWidth: 350,
402
+ flexGrow: 1
403
+ }
404
+ }, /*#__PURE__*/React.createElement(View, {
405
+ type: "header",
406
+ style: {
407
+ flexDirection: 'row',
408
+ alignItems: 'center',
409
+ padding: 10,
410
+ borderTopRightRadius: 8,
411
+ borderTopLeftRadius: 8
412
+ }
413
+ }, /*#__PURE__*/React.createElement(View, {
414
+ transparent: true,
415
+ style: {
416
+ flex: 1
417
+ }
418
+ }, /*#__PURE__*/React.createElement(Text, {
419
+ theme: "h1"
420
+ }, "Players"))), /*#__PURE__*/React.createElement(View, {
421
+ transparent: true
422
+ }, /*#__PURE__*/React.createElement(View, {
423
+ transparent: true,
424
+ style: {
425
+ padding: 10
426
+ }
427
+ }, /*#__PURE__*/React.createElement(SearchBox, {
428
+ hide_search_button: true,
429
+ onChange: text => {
430
+ setPlayerSearch(text);
431
+ setPlayerOffset(0);
432
+ }
433
+ })), /*#__PURE__*/React.createElement(Pagination, {
434
+ offset: player_offset,
435
+ onNext: () => setPlayerOffset(player_offset + 1),
436
+ onPrevious: () => setPlayerOffset(player_offset - 1)
437
+ }), /*#__PURE__*/React.createElement(FlatList, {
438
+ data: filtered_players.sort((a, b) => a.username.localeCompare(b.username)),
439
+ renderItem: renderPlayers,
440
+ keyExtractor: item => item.player_id.toString(),
441
+ key: 'player_list'
442
+ }))));
443
+ default:
444
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
445
+ }
446
+ };
447
+ return /*#__PURE__*/React.createElement(View, {
448
+ style: {
449
+ flex: 1
450
+ },
451
+ onLayout: ev => {
452
+ const {
453
+ height,
454
+ width
455
+ } = ev.nativeEvent.layout;
456
+ setSize({
457
+ height,
458
+ width
459
+ });
460
+ }
461
+ }, /*#__PURE__*/React.createElement(FlatList, {
462
+ data: sections,
463
+ key: 'bot_sections',
464
+ keyExtractor: item => item,
465
+ renderItem: renderSections
466
+ }), show_server ? /*#__PURE__*/React.createElement(View, {
467
+ type: "blur",
468
+ style: {
469
+ position: 'absolute',
470
+ top: 0,
471
+ left: 0,
472
+ right: 0,
473
+ bottom: 0,
474
+ padding: 10
475
+ }
476
+ }, /*#__PURE__*/React.createElement(ServerInfoCard, {
477
+ selected_channels: selected_servers.find(s => s.guild_id == show_server.id)?.channels ?? [],
478
+ server: show_server,
479
+ onClose: () => setShowServerId(undefined),
480
+ onSelectChannel: channel_id => {
481
+ let guild = selected_servers.find(s => s.guild_id == show_server.id);
482
+ if (!guild) {
483
+ return alert('Error');
484
+ }
485
+ let channels = guild.channels.concat(channel_id);
486
+ setSelectedServers(selected_servers.filter(s => s.guild_id != show_server.id).concat({
487
+ guild_id: show_server.id,
488
+ channels
489
+ }));
490
+ },
491
+ onDeselectChannel: channel_id => {
492
+ let guild = selected_servers.find(s => s.guild_id == show_server.id);
493
+ if (!guild) {
494
+ return alert('Error');
495
+ }
496
+ let channels = guild.channels.filter(id => id != channel_id);
497
+ setSelectedServers(selected_servers.filter(s => s.guild_id != show_server.id).concat({
498
+ guild_id: show_server.id,
499
+ channels
500
+ }));
501
+ }
502
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null), show_message ? /*#__PURE__*/React.createElement(View, {
503
+ type: "blur",
504
+ style: {
505
+ position: 'absolute',
506
+ top: 0,
507
+ left: 0,
508
+ right: 0,
509
+ bottom: 0,
510
+ padding: 10
511
+ }
512
+ }, /*#__PURE__*/React.createElement(BroadcastMessageCard, {
513
+ selected_servers: selected_servers,
514
+ servers: servers,
515
+ onFocusPosition: onFocusPosition,
516
+ onClose: () => setShowMessage(false),
517
+ onSendMessage: _ => {
518
+ setSelectedServers([]);
519
+ setShowMessage(false);
520
+ }
521
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null));
522
+ };
523
+ export default BettorBotDashboard;
524
+ //# sourceMappingURL=index.js.map