be-components 7.5.6 → 7.5.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 (150) hide show
  1. package/lib/commonjs/AdServer/api/index.js +4 -2
  2. package/lib/commonjs/AdServer/api/index.js.map +1 -1
  3. package/lib/commonjs/AdServer/index.js +26 -13
  4. package/lib/commonjs/AdServer/index.js.map +1 -1
  5. package/lib/commonjs/ApiOverrides/index.js +3 -2
  6. package/lib/commonjs/ApiOverrides/index.js.map +1 -1
  7. package/lib/commonjs/BetRouter/api/index.js +69 -0
  8. package/lib/commonjs/BetRouter/api/index.js.map +1 -1
  9. package/lib/commonjs/BetRouter/components/ContestLiquidity.js +72 -11
  10. package/lib/commonjs/BetRouter/components/ContestLiquidity.js.map +1 -1
  11. package/lib/commonjs/BetRouter/components/admin/LeagueInfo.js +233 -2
  12. package/lib/commonjs/BetRouter/components/admin/LeagueInfo.js.map +1 -1
  13. package/lib/commonjs/BetRouter/components/admin/RouterMarkets.js +1555 -0
  14. package/lib/commonjs/BetRouter/components/admin/RouterMarkets.js.map +1 -0
  15. package/lib/commonjs/BetRouter/layouts/DesktopAdminLayout.js +16 -3
  16. package/lib/commonjs/BetRouter/layouts/DesktopAdminLayout.js.map +1 -1
  17. package/lib/commonjs/BetRouter/layouts/MobileAdminLayout.js +31 -2
  18. package/lib/commonjs/BetRouter/layouts/MobileAdminLayout.js.map +1 -1
  19. package/lib/commonjs/BetRouter/types/api-contracts.js +77 -0
  20. package/lib/commonjs/BetRouter/types/api-contracts.js.map +1 -1
  21. package/lib/commonjs/BetRouter/types/credentials.js +4 -0
  22. package/lib/commonjs/BetRouter/types/credentials.js.map +1 -1
  23. package/lib/commonjs/Components/ViewportObserver.js +9 -0
  24. package/lib/commonjs/Components/ViewportObserver.js.map +1 -1
  25. package/lib/commonjs/ProfileManager/Components/BasicInfoManager.js +39 -3
  26. package/lib/commonjs/ProfileManager/Components/BasicInfoManager.js.map +1 -1
  27. package/lib/commonjs/ProfileManager/Components/DOBManager.js +38 -2
  28. package/lib/commonjs/ProfileManager/Components/DOBManager.js.map +1 -1
  29. package/lib/commonjs/ProfileManager/Components/EmailManager.js +40 -2
  30. package/lib/commonjs/ProfileManager/Components/EmailManager.js.map +1 -1
  31. package/lib/commonjs/ProfileManager/Components/PhoneManager.js +38 -1
  32. package/lib/commonjs/ProfileManager/Components/PhoneManager.js.map +1 -1
  33. package/lib/commonjs/ProfileManager/Components/VouchCard.js +13 -3
  34. package/lib/commonjs/ProfileManager/Components/VouchCard.js.map +1 -1
  35. package/lib/module/AdServer/api/index.js +4 -2
  36. package/lib/module/AdServer/api/index.js.map +1 -1
  37. package/lib/module/AdServer/index.js +25 -12
  38. package/lib/module/AdServer/index.js.map +1 -1
  39. package/lib/module/ApiOverrides/index.js +3 -2
  40. package/lib/module/ApiOverrides/index.js.map +1 -1
  41. package/lib/module/BetRouter/api/index.js +69 -0
  42. package/lib/module/BetRouter/api/index.js.map +1 -1
  43. package/lib/module/BetRouter/components/ContestLiquidity.js +72 -11
  44. package/lib/module/BetRouter/components/ContestLiquidity.js.map +1 -1
  45. package/lib/module/BetRouter/components/admin/LeagueInfo.js +233 -3
  46. package/lib/module/BetRouter/components/admin/LeagueInfo.js.map +1 -1
  47. package/lib/module/BetRouter/components/admin/RouterMarkets.js +1548 -0
  48. package/lib/module/BetRouter/components/admin/RouterMarkets.js.map +1 -0
  49. package/lib/module/BetRouter/layouts/DesktopAdminLayout.js +16 -3
  50. package/lib/module/BetRouter/layouts/DesktopAdminLayout.js.map +1 -1
  51. package/lib/module/BetRouter/layouts/MobileAdminLayout.js +31 -2
  52. package/lib/module/BetRouter/layouts/MobileAdminLayout.js.map +1 -1
  53. package/lib/module/BetRouter/types/api-contracts.js +77 -0
  54. package/lib/module/BetRouter/types/api-contracts.js.map +1 -1
  55. package/lib/module/BetRouter/types/credentials.js +4 -0
  56. package/lib/module/BetRouter/types/credentials.js.map +1 -1
  57. package/lib/module/Components/ViewportObserver.js +9 -0
  58. package/lib/module/Components/ViewportObserver.js.map +1 -1
  59. package/lib/module/ProfileManager/Components/BasicInfoManager.js +39 -3
  60. package/lib/module/ProfileManager/Components/BasicInfoManager.js.map +1 -1
  61. package/lib/module/ProfileManager/Components/DOBManager.js +38 -2
  62. package/lib/module/ProfileManager/Components/DOBManager.js.map +1 -1
  63. package/lib/module/ProfileManager/Components/EmailManager.js +40 -2
  64. package/lib/module/ProfileManager/Components/EmailManager.js.map +1 -1
  65. package/lib/module/ProfileManager/Components/PhoneManager.js +38 -1
  66. package/lib/module/ProfileManager/Components/PhoneManager.js.map +1 -1
  67. package/lib/module/ProfileManager/Components/VouchCard.js +13 -3
  68. package/lib/module/ProfileManager/Components/VouchCard.js.map +1 -1
  69. package/lib/typescript/lib/commonjs/AdServer/api/index.d.ts.map +1 -1
  70. package/lib/typescript/lib/commonjs/AdServer/index.d.ts +1 -0
  71. package/lib/typescript/lib/commonjs/AdServer/index.d.ts.map +1 -1
  72. package/lib/typescript/lib/commonjs/ApiOverrides/index.d.ts.map +1 -1
  73. package/lib/typescript/lib/commonjs/BetRouter/api/index.d.ts +6 -0
  74. package/lib/typescript/lib/commonjs/BetRouter/api/index.d.ts.map +1 -1
  75. package/lib/typescript/lib/commonjs/BetRouter/components/ContestLiquidity.d.ts.map +1 -1
  76. package/lib/typescript/lib/commonjs/BetRouter/components/admin/LeagueInfo.d.ts.map +1 -1
  77. package/lib/typescript/lib/commonjs/BetRouter/components/admin/RouterMarkets.d.ts +4 -0
  78. package/lib/typescript/lib/commonjs/BetRouter/components/admin/RouterMarkets.d.ts.map +1 -0
  79. package/lib/typescript/lib/commonjs/BetRouter/layouts/DesktopAdminLayout.d.ts.map +1 -1
  80. package/lib/typescript/lib/commonjs/BetRouter/layouts/MobileAdminLayout.d.ts.map +1 -1
  81. package/lib/typescript/lib/commonjs/BetRouter/types/api-contracts.d.ts +77 -0
  82. package/lib/typescript/lib/commonjs/BetRouter/types/credentials.d.ts.map +1 -1
  83. package/lib/typescript/lib/commonjs/Components/ViewportObserver.d.ts.map +1 -1
  84. package/lib/typescript/lib/commonjs/ProfileManager/Components/BasicInfoManager.d.ts.map +1 -1
  85. package/lib/typescript/lib/commonjs/ProfileManager/Components/DOBManager.d.ts.map +1 -1
  86. package/lib/typescript/lib/commonjs/ProfileManager/Components/EmailManager.d.ts.map +1 -1
  87. package/lib/typescript/lib/commonjs/ProfileManager/Components/PhoneManager.d.ts.map +1 -1
  88. package/lib/typescript/lib/commonjs/ProfileManager/Components/VouchCard.d.ts.map +1 -1
  89. package/lib/typescript/lib/module/AdServer/api/index.d.ts.map +1 -1
  90. package/lib/typescript/lib/module/AdServer/index.d.ts +9 -0
  91. package/lib/typescript/lib/module/AdServer/index.d.ts.map +1 -1
  92. package/lib/typescript/lib/module/ApiOverrides/index.d.ts.map +1 -1
  93. package/lib/typescript/lib/module/BetRouter/api/index.d.ts +6 -0
  94. package/lib/typescript/lib/module/BetRouter/api/index.d.ts.map +1 -1
  95. package/lib/typescript/lib/module/BetRouter/components/ContestLiquidity.d.ts.map +1 -1
  96. package/lib/typescript/lib/module/BetRouter/components/admin/LeagueInfo.d.ts.map +1 -1
  97. package/lib/typescript/lib/module/BetRouter/components/admin/RouterMarkets.d.ts +4 -0
  98. package/lib/typescript/lib/module/BetRouter/components/admin/RouterMarkets.d.ts.map +1 -0
  99. package/lib/typescript/lib/module/BetRouter/layouts/DesktopAdminLayout.d.ts.map +1 -1
  100. package/lib/typescript/lib/module/BetRouter/layouts/MobileAdminLayout.d.ts.map +1 -1
  101. package/lib/typescript/lib/module/BetRouter/types/api-contracts.d.ts +77 -0
  102. package/lib/typescript/lib/module/BetRouter/types/api-contracts.d.ts.map +1 -1
  103. package/lib/typescript/lib/module/BetRouter/types/credentials.d.ts.map +1 -1
  104. package/lib/typescript/lib/module/Components/ViewportObserver.d.ts.map +1 -1
  105. package/lib/typescript/lib/module/ProfileManager/Components/BasicInfoManager.d.ts.map +1 -1
  106. package/lib/typescript/lib/module/ProfileManager/Components/DOBManager.d.ts.map +1 -1
  107. package/lib/typescript/lib/module/ProfileManager/Components/EmailManager.d.ts.map +1 -1
  108. package/lib/typescript/lib/module/ProfileManager/Components/PhoneManager.d.ts.map +1 -1
  109. package/lib/typescript/lib/module/ProfileManager/Components/VouchCard.d.ts.map +1 -1
  110. package/lib/typescript/src/AdServer/api/index.d.ts.map +1 -1
  111. package/lib/typescript/src/AdServer/index.d.ts +12 -3
  112. package/lib/typescript/src/AdServer/index.d.ts.map +1 -1
  113. package/lib/typescript/src/ApiOverrides/index.d.ts.map +1 -1
  114. package/lib/typescript/src/BetRouter/api/index.d.ts +23 -2
  115. package/lib/typescript/src/BetRouter/api/index.d.ts.map +1 -1
  116. package/lib/typescript/src/BetRouter/components/ContestLiquidity.d.ts.map +1 -1
  117. package/lib/typescript/src/BetRouter/components/admin/LeagueInfo.d.ts.map +1 -1
  118. package/lib/typescript/src/BetRouter/components/admin/RouterMarkets.d.ts +4 -0
  119. package/lib/typescript/src/BetRouter/components/admin/RouterMarkets.d.ts.map +1 -0
  120. package/lib/typescript/src/BetRouter/layouts/DesktopAdminLayout.d.ts.map +1 -1
  121. package/lib/typescript/src/BetRouter/layouts/MobileAdminLayout.d.ts.map +1 -1
  122. package/lib/typescript/src/BetRouter/types/api-contracts.d.ts +93 -4
  123. package/lib/typescript/src/BetRouter/types/api-contracts.d.ts.map +1 -1
  124. package/lib/typescript/src/BetRouter/types/credentials.d.ts +1 -5
  125. package/lib/typescript/src/BetRouter/types/credentials.d.ts.map +1 -1
  126. package/lib/typescript/src/Components/ViewportObserver.d.ts.map +1 -1
  127. package/lib/typescript/src/ProfileManager/Components/BasicInfoManager.d.ts.map +1 -1
  128. package/lib/typescript/src/ProfileManager/Components/DOBManager.d.ts.map +1 -1
  129. package/lib/typescript/src/ProfileManager/Components/EmailManager.d.ts.map +1 -1
  130. package/lib/typescript/src/ProfileManager/Components/PhoneManager.d.ts.map +1 -1
  131. package/lib/typescript/src/ProfileManager/Components/VouchCard.d.ts.map +1 -1
  132. package/package.json +1 -1
  133. package/src/AdServer/api/index.ts +4 -2
  134. package/src/AdServer/index.tsx +64 -22
  135. package/src/ApiOverrides/index.ts +3 -2
  136. package/src/BetRouter/api/index.ts +101 -2
  137. package/src/BetRouter/components/ContestLiquidity.tsx +78 -11
  138. package/src/BetRouter/components/admin/LeagueInfo.tsx +231 -3
  139. package/src/BetRouter/components/admin/RouterMarkets.tsx +1238 -0
  140. package/src/BetRouter/layouts/DesktopAdminLayout.tsx +24 -1
  141. package/src/BetRouter/layouts/MobileAdminLayout.tsx +30 -2
  142. package/src/BetRouter/types/api-contracts.ts +100 -2
  143. package/src/BetRouter/types/credentials.ts +5 -6
  144. package/src/Components/ViewportObserver.tsx +13 -2
  145. package/src/ProfileManager/Components/BasicInfoManager.tsx +15 -2
  146. package/src/ProfileManager/Components/DOBManager.tsx +14 -1
  147. package/src/ProfileManager/Components/EmailManager.tsx +16 -1
  148. package/src/ProfileManager/Components/PhoneManager.tsx +14 -0
  149. package/src/ProfileManager/Components/VouchCard.tsx +12 -4
  150. package/src/types.d.ts +3 -3
@@ -0,0 +1,1555 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _Themed = require("../../../Components/Themed");
9
+ var _reactNative = require("react-native");
10
+ var _useColors = require("../../../constants/useColors");
11
+ var _api = require("../../api");
12
+ var _Components = require("../../../Components");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const RouterMarkets = () => {
15
+ const Colors = (0, _useColors.useColors)();
16
+ const [data, setData] = (0, _react.useState)({
17
+ router_markets: [],
18
+ router_market_sides: [],
19
+ router_market_variables: [],
20
+ loading: true,
21
+ searchValue: '',
22
+ showCreateMarketModal: false,
23
+ showEditMarketModal: false,
24
+ showDeleteMarketModal: false,
25
+ showCreateSideModal: false,
26
+ showEditSideModal: false,
27
+ showDeleteSideModal: false,
28
+ selectedMarket: null,
29
+ selectedSide: null,
30
+ expandedMarketId: null,
31
+ formMarketKey: '',
32
+ formMarketLabel: '',
33
+ formMarketDescription: '',
34
+ formCategory: 'game_result',
35
+ formVariableRequired: false,
36
+ formDefaultVariableType: 'total',
37
+ formAllowMultipleParticipants: false,
38
+ formParticipantType: 'team',
39
+ formStatus: 'active',
40
+ formSideRouterMarketId: '',
41
+ formSideType: '',
42
+ formSideKey: '',
43
+ formRenderer: ''
44
+ });
45
+ (0, _react.useEffect)(() => {
46
+ loadData();
47
+ }, []);
48
+ const loadData = async () => {
49
+ setData(prev => ({
50
+ ...prev,
51
+ loading: true
52
+ }));
53
+ try {
54
+ const [marketsResult, sidesResult, variablesResult] = await Promise.all([_api.BetRouterApi.BetRouter.MarketApi.getRouterMarkets(), _api.BetRouterApi.BetRouter.MarketApi.getMarketSides(), _api.BetRouterApi.BetRouter.MarketApi.getMarketVariables()]);
55
+
56
+ // API returns arrays directly, not objects with properties
57
+ setData(prev => ({
58
+ ...prev,
59
+ router_markets: Array.isArray(marketsResult) ? marketsResult : [],
60
+ router_market_sides: Array.isArray(sidesResult) ? sidesResult : [],
61
+ router_market_variables: Array.isArray(variablesResult) ? variablesResult : [],
62
+ loading: false
63
+ }));
64
+ } catch (error) {
65
+ console.error('Failed to load router markets:', error);
66
+ alert('Error loading router markets: ' + error.message);
67
+ setData(prev => ({
68
+ ...prev,
69
+ loading: false
70
+ }));
71
+ }
72
+ };
73
+
74
+ // Market CRUD operations
75
+ const openCreateMarketModal = () => {
76
+ setData(prev => ({
77
+ ...prev,
78
+ showCreateMarketModal: true,
79
+ formMarketKey: '',
80
+ formMarketLabel: '',
81
+ formMarketDescription: '',
82
+ formCategory: 'game_result',
83
+ formVariableRequired: false,
84
+ formDefaultVariableType: 'total',
85
+ formAllowMultipleParticipants: false,
86
+ formParticipantType: 'team',
87
+ formStatus: 'active'
88
+ }));
89
+ };
90
+ const openEditMarketModal = market => {
91
+ setData(prev => ({
92
+ ...prev,
93
+ showEditMarketModal: true,
94
+ selectedMarket: market,
95
+ formMarketKey: market.market_key,
96
+ formMarketLabel: market.market_label,
97
+ formMarketDescription: market.market_description,
98
+ formCategory: market.category,
99
+ formVariableRequired: market.variable_required,
100
+ formDefaultVariableType: market.default_variable_type,
101
+ formAllowMultipleParticipants: market.allow_multiple_participants,
102
+ formParticipantType: market.participant_type,
103
+ formStatus: market.status
104
+ }));
105
+ };
106
+ const openDeleteMarketModal = market => {
107
+ setData(prev => ({
108
+ ...prev,
109
+ showDeleteMarketModal: true,
110
+ selectedMarket: market
111
+ }));
112
+ };
113
+ const handleCreateMarket = async () => {
114
+ if (!data.formMarketKey || !data.formMarketLabel || !data.formMarketDescription) {
115
+ alert('Please fill in all required fields');
116
+ return;
117
+ }
118
+ try {
119
+ setData(prev => ({
120
+ ...prev,
121
+ loading: true
122
+ }));
123
+ await _api.BetRouterApi.BetRouter.MarketApi.createRouterMarket(data.formMarketKey, data.formMarketLabel, data.formMarketDescription, data.formCategory, data.formVariableRequired, data.formDefaultVariableType, data.formAllowMultipleParticipants, data.formParticipantType, data.formStatus);
124
+ closeModals();
125
+ await loadData();
126
+ } catch (error) {
127
+ console.error('Error creating router market:', error);
128
+ alert('Error creating router market: ' + error.message);
129
+ setData(prev => ({
130
+ ...prev,
131
+ loading: false
132
+ }));
133
+ }
134
+ };
135
+ const handleUpdateMarket = async () => {
136
+ if (!data.selectedMarket) return;
137
+ try {
138
+ setData(prev => ({
139
+ ...prev,
140
+ loading: true
141
+ }));
142
+ await _api.BetRouterApi.BetRouter.MarketApi.updateRouterMarket(data.selectedMarket.router_market_id, {
143
+ market_key: data.formMarketKey,
144
+ market_label: data.formMarketLabel,
145
+ market_description: data.formMarketDescription,
146
+ category: data.formCategory,
147
+ variable_required: data.formVariableRequired,
148
+ default_variable_type: data.formDefaultVariableType,
149
+ allow_multiple_participants: data.formAllowMultipleParticipants,
150
+ participant_type: data.formParticipantType,
151
+ status: data.formStatus
152
+ });
153
+ closeModals();
154
+ await loadData();
155
+ } catch (error) {
156
+ console.error('Error updating router market:', error);
157
+ alert('Error updating router market: ' + error.message);
158
+ setData(prev => ({
159
+ ...prev,
160
+ loading: false
161
+ }));
162
+ }
163
+ };
164
+ const handleDeleteMarket = async () => {
165
+ if (!data.selectedMarket) return;
166
+ try {
167
+ setData(prev => ({
168
+ ...prev,
169
+ loading: true
170
+ }));
171
+ await _api.BetRouterApi.BetRouter.MarketApi.deleteRouterMarket(data.selectedMarket.router_market_id);
172
+ closeModals();
173
+ await loadData();
174
+ } catch (error) {
175
+ console.error('Error deleting router market:', error);
176
+ alert('Error deleting router market: ' + error.message);
177
+ setData(prev => ({
178
+ ...prev,
179
+ loading: false
180
+ }));
181
+ }
182
+ };
183
+
184
+ // Side CRUD operations
185
+ const openCreateSideModal = router_market_id => {
186
+ setData(prev => ({
187
+ ...prev,
188
+ showCreateSideModal: true,
189
+ formSideRouterMarketId: router_market_id,
190
+ formSideType: '',
191
+ formSideKey: '',
192
+ formRenderer: ''
193
+ }));
194
+ };
195
+ const openEditSideModal = side => {
196
+ setData(prev => ({
197
+ ...prev,
198
+ showEditSideModal: true,
199
+ selectedSide: side,
200
+ formSideRouterMarketId: side.router_market_id,
201
+ formSideType: side.side_type,
202
+ formSideKey: side.side_key,
203
+ formRenderer: side.renderer
204
+ }));
205
+ };
206
+ const openDeleteSideModal = side => {
207
+ setData(prev => ({
208
+ ...prev,
209
+ showDeleteSideModal: true,
210
+ selectedSide: side
211
+ }));
212
+ };
213
+ const handleCreateSide = async () => {
214
+ if (!data.formSideRouterMarketId || !data.formSideType || !data.formSideKey || !data.formRenderer) {
215
+ alert('Please fill in all required fields');
216
+ return;
217
+ }
218
+ try {
219
+ setData(prev => ({
220
+ ...prev,
221
+ loading: true
222
+ }));
223
+ await _api.BetRouterApi.BetRouter.MarketApi.createMarketSide(data.formSideRouterMarketId, data.formSideType, data.formSideKey, data.formRenderer);
224
+ closeModals();
225
+ await loadData();
226
+ } catch (error) {
227
+ console.error('Error creating market side:', error);
228
+ alert('Error creating market side: ' + error.message);
229
+ setData(prev => ({
230
+ ...prev,
231
+ loading: false
232
+ }));
233
+ }
234
+ };
235
+ const handleUpdateSide = async () => {
236
+ if (!data.selectedSide) return;
237
+ try {
238
+ setData(prev => ({
239
+ ...prev,
240
+ loading: true
241
+ }));
242
+ await _api.BetRouterApi.BetRouter.MarketApi.updateMarketSide(data.selectedSide.market_side_id, {
243
+ router_market_id: data.formSideRouterMarketId,
244
+ side_type: data.formSideType,
245
+ side_key: data.formSideKey,
246
+ renderer: data.formRenderer
247
+ });
248
+ closeModals();
249
+ await loadData();
250
+ } catch (error) {
251
+ console.error('Error updating market side:', error);
252
+ alert('Error updating market side: ' + error.message);
253
+ setData(prev => ({
254
+ ...prev,
255
+ loading: false
256
+ }));
257
+ }
258
+ };
259
+ const handleDeleteSide = async () => {
260
+ if (!data.selectedSide) return;
261
+ try {
262
+ setData(prev => ({
263
+ ...prev,
264
+ loading: true
265
+ }));
266
+ await _api.BetRouterApi.BetRouter.MarketApi.deleteMarketSide(data.selectedSide.market_side_id);
267
+ closeModals();
268
+ await loadData();
269
+ } catch (error) {
270
+ console.error('Error deleting market side:', error);
271
+ alert('Error deleting market side: ' + error.message);
272
+ setData(prev => ({
273
+ ...prev,
274
+ loading: false
275
+ }));
276
+ }
277
+ };
278
+ const closeModals = () => {
279
+ setData(prev => ({
280
+ ...prev,
281
+ showCreateMarketModal: false,
282
+ showEditMarketModal: false,
283
+ showDeleteMarketModal: false,
284
+ showCreateSideModal: false,
285
+ showEditSideModal: false,
286
+ showDeleteSideModal: false,
287
+ selectedMarket: null,
288
+ selectedSide: null
289
+ }));
290
+ };
291
+ const toggleMarketExpansion = router_market_id => {
292
+ setData(prev => ({
293
+ ...prev,
294
+ expandedMarketId: prev.expandedMarketId === router_market_id ? null : router_market_id
295
+ }));
296
+ };
297
+ const filteredMarkets = data.router_markets.filter(market => market.market_label.toLowerCase().includes(data.searchValue.toLowerCase()) || market.market_key.toLowerCase().includes(data.searchValue.toLowerCase()));
298
+ const getSidesForMarket = router_market_id => {
299
+ return data.router_market_sides.filter(side => side.router_market_id === router_market_id);
300
+ };
301
+ const getVariablesForMarket = router_market_id => {
302
+ return data.router_market_variables.filter(variable => variable.router_market_id === router_market_id);
303
+ };
304
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
305
+ transparent: true,
306
+ style: {
307
+ flex: 1,
308
+ padding: 20
309
+ }
310
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
311
+ transparent: true,
312
+ style: {
313
+ flexDirection: 'row',
314
+ alignItems: 'center',
315
+ justifyContent: 'space-between',
316
+ marginBottom: 20
317
+ }
318
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
319
+ transparent: true
320
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
321
+ theme: "h1",
322
+ size: 24
323
+ }, "Router Markets"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
324
+ theme: "description",
325
+ size: 14
326
+ }, "Manage router market types, sides, and variables")), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
327
+ type: "success",
328
+ title: "+ Create Market",
329
+ onPress: openCreateMarketModal
330
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
331
+ transparent: true,
332
+ style: {
333
+ marginBottom: 20
334
+ }
335
+ }, /*#__PURE__*/_react.default.createElement(_Components.SearchBox, {
336
+ placeholder: "Search markets...",
337
+ onChange: text => setData(prev => ({
338
+ ...prev,
339
+ searchValue: text
340
+ })),
341
+ hide_search_button: true
342
+ })), data.loading ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
343
+ transparent: true,
344
+ style: {
345
+ flex: 1,
346
+ justifyContent: 'center',
347
+ alignItems: 'center'
348
+ }
349
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
350
+ size: "large",
351
+ color: Colors.text.h1
352
+ })) : /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
353
+ style: {
354
+ flex: 1
355
+ }
356
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
357
+ transparent: true,
358
+ style: {
359
+ paddingBottom: 40
360
+ }
361
+ }, filteredMarkets.length === 0 ? /*#__PURE__*/_react.default.createElement(_Themed.View, {
362
+ transparent: true,
363
+ style: {
364
+ padding: 40,
365
+ alignItems: 'center'
366
+ }
367
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
368
+ theme: "description",
369
+ size: 14
370
+ }, "No router markets found")) : filteredMarkets.map(market => {
371
+ const isExpanded = data.expandedMarketId === market.router_market_id;
372
+ const sides = getSidesForMarket(market.router_market_id);
373
+ const variables = getVariablesForMarket(market.router_market_id);
374
+ return /*#__PURE__*/_react.default.createElement(_Themed.View, {
375
+ key: market.router_market_id,
376
+ style: {
377
+ backgroundColor: Colors.views.body,
378
+ borderRadius: 8,
379
+ marginBottom: 12,
380
+ overflow: 'hidden'
381
+ }
382
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
383
+ onPress: () => toggleMarketExpansion(market.router_market_id),
384
+ style: {
385
+ padding: 16,
386
+ flexDirection: 'row',
387
+ alignItems: 'center',
388
+ justifyContent: 'space-between'
389
+ }
390
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
391
+ transparent: true,
392
+ style: {
393
+ flex: 1,
394
+ flexDirection: 'row',
395
+ alignItems: 'center'
396
+ }
397
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.ChevronIcon, {
398
+ direction: isExpanded ? 'down' : 'right',
399
+ size: 8,
400
+ color: Colors.text.h1
401
+ }), /*#__PURE__*/_react.default.createElement(_Themed.View, {
402
+ transparent: true,
403
+ style: {
404
+ flex: 1,
405
+ marginLeft: 12
406
+ }
407
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
408
+ transparent: true,
409
+ style: {
410
+ flexDirection: 'row',
411
+ alignItems: 'center',
412
+ gap: 8
413
+ }
414
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
415
+ theme: "h2",
416
+ size: 16
417
+ }, market.market_label), /*#__PURE__*/_react.default.createElement(_Themed.View, {
418
+ style: {
419
+ backgroundColor: market.status === 'active' ? Colors.text.success : Colors.views.header,
420
+ paddingHorizontal: 8,
421
+ paddingVertical: 2,
422
+ borderRadius: 4
423
+ }
424
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
425
+ theme: "h2",
426
+ size: 10
427
+ }, market.status.toUpperCase()))), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
428
+ theme: "description",
429
+ size: 12,
430
+ style: {
431
+ marginTop: 4
432
+ }
433
+ }, market.market_key, " \u2022 ", market.category, " \u2022 ", market.participant_type), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
434
+ theme: "description",
435
+ size: 12,
436
+ style: {
437
+ marginTop: 2
438
+ }
439
+ }, market.market_description))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
440
+ transparent: true,
441
+ style: {
442
+ flexDirection: 'row',
443
+ gap: 8,
444
+ marginLeft: 12
445
+ }
446
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
447
+ onPress: e => {
448
+ e.stopPropagation();
449
+ openEditMarketModal(market);
450
+ },
451
+ style: {
452
+ padding: 8
453
+ }
454
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.EditIcon, {
455
+ size: 16,
456
+ color: Colors.text.description
457
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
458
+ onPress: e => {
459
+ e.stopPropagation();
460
+ openDeleteMarketModal(market);
461
+ },
462
+ style: {
463
+ paddingHorizontal: 12,
464
+ paddingVertical: 6,
465
+ backgroundColor: Colors.text.error,
466
+ borderRadius: 4
467
+ }
468
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
469
+ theme: "h2",
470
+ size: 11
471
+ }, "Delete")))), isExpanded && /*#__PURE__*/_react.default.createElement(_Themed.View, {
472
+ style: {
473
+ backgroundColor: Colors.views.header,
474
+ padding: 16
475
+ }
476
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
477
+ transparent: true,
478
+ style: {
479
+ marginBottom: 16
480
+ }
481
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
482
+ theme: "h2",
483
+ size: 14,
484
+ style: {
485
+ marginBottom: 8
486
+ }
487
+ }, "Properties"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
488
+ transparent: true,
489
+ style: {
490
+ gap: 4
491
+ }
492
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
493
+ theme: "description",
494
+ size: 12
495
+ }, "Variable Required: ", market.variable_required ? 'Yes' : 'No'), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
496
+ theme: "description",
497
+ size: 12
498
+ }, "Default Variable Type: ", market.default_variable_type), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
499
+ theme: "description",
500
+ size: 12
501
+ }, "Allow Multiple Participants: ", market.allow_multiple_participants ? 'Yes' : 'No'))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
502
+ transparent: true,
503
+ style: {
504
+ marginBottom: 16
505
+ }
506
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
507
+ transparent: true,
508
+ style: {
509
+ flexDirection: 'row',
510
+ justifyContent: 'space-between',
511
+ alignItems: 'center',
512
+ marginBottom: 8
513
+ }
514
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
515
+ theme: "h2",
516
+ size: 14
517
+ }, "Sides (", sides.length, ")"), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
518
+ onPress: () => openCreateSideModal(market.router_market_id),
519
+ style: {
520
+ backgroundColor: Colors.views.body,
521
+ paddingHorizontal: 12,
522
+ paddingVertical: 6,
523
+ borderRadius: 4
524
+ }
525
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
526
+ theme: "h2",
527
+ size: 12
528
+ }, "+ Add Side"))), sides.length === 0 ? /*#__PURE__*/_react.default.createElement(_Themed.Text, {
529
+ theme: "description",
530
+ size: 12
531
+ }, "No sides defined") : /*#__PURE__*/_react.default.createElement(_Themed.View, {
532
+ transparent: true,
533
+ style: {
534
+ gap: 8
535
+ }
536
+ }, sides.map(side => /*#__PURE__*/_react.default.createElement(_Themed.View, {
537
+ key: side.market_side_id,
538
+ style: {
539
+ backgroundColor: Colors.views.body,
540
+ padding: 12,
541
+ borderRadius: 6,
542
+ flexDirection: 'row',
543
+ justifyContent: 'space-between',
544
+ alignItems: 'center'
545
+ }
546
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
547
+ transparent: true,
548
+ style: {
549
+ flex: 1
550
+ }
551
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
552
+ theme: "h2",
553
+ size: 13
554
+ }, side.side_key), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
555
+ theme: "description",
556
+ size: 11,
557
+ style: {
558
+ marginTop: 2
559
+ }
560
+ }, "Type: ", side.side_type), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
561
+ theme: "description",
562
+ size: 11,
563
+ style: {
564
+ marginTop: 2
565
+ }
566
+ }, "Renderer: ", side.renderer)), /*#__PURE__*/_react.default.createElement(_Themed.View, {
567
+ transparent: true,
568
+ style: {
569
+ flexDirection: 'row',
570
+ gap: 8
571
+ }
572
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
573
+ onPress: () => openEditSideModal(side),
574
+ style: {
575
+ padding: 6
576
+ }
577
+ }, /*#__PURE__*/_react.default.createElement(_Components.Icons.EditIcon, {
578
+ size: 14,
579
+ color: Colors.text.description
580
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
581
+ onPress: () => openDeleteSideModal(side),
582
+ style: {
583
+ paddingHorizontal: 8,
584
+ paddingVertical: 4,
585
+ backgroundColor: Colors.text.error,
586
+ borderRadius: 4
587
+ }
588
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
589
+ theme: "h2",
590
+ size: 10
591
+ }, "Del"))))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
592
+ transparent: true
593
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
594
+ theme: "h2",
595
+ size: 14,
596
+ style: {
597
+ marginBottom: 8
598
+ }
599
+ }, "Variables (", variables.length, ")"), variables.length === 0 ? /*#__PURE__*/_react.default.createElement(_Themed.Text, {
600
+ theme: "description",
601
+ size: 12
602
+ }, "No variables defined") : /*#__PURE__*/_react.default.createElement(_Themed.View, {
603
+ transparent: true,
604
+ style: {
605
+ gap: 4
606
+ }
607
+ }, variables.map(variable => /*#__PURE__*/_react.default.createElement(_Themed.Text, {
608
+ key: variable.router_market_variable_id,
609
+ theme: "description",
610
+ size: 12
611
+ }, variable.variable, " (", variable.variable_type, ")"))))));
612
+ }))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
613
+ visible: data.showCreateMarketModal,
614
+ transparent: true,
615
+ animationType: "fade",
616
+ onRequestClose: closeModals
617
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
618
+ style: {
619
+ flex: 1,
620
+ backgroundColor: 'rgba(0,0,0,0.5)',
621
+ justifyContent: 'center',
622
+ alignItems: 'center'
623
+ }
624
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
625
+ style: {
626
+ backgroundColor: Colors.views.body,
627
+ borderRadius: 12,
628
+ padding: 24,
629
+ width: '90%',
630
+ maxWidth: 500
631
+ }
632
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
633
+ theme: "h1",
634
+ size: 20,
635
+ style: {
636
+ marginBottom: 20
637
+ }
638
+ }, "Create Router Market"), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
639
+ style: {
640
+ maxHeight: 500
641
+ }
642
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
643
+ transparent: true,
644
+ style: {
645
+ gap: 16
646
+ }
647
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
648
+ transparent: true
649
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
650
+ theme: "h2",
651
+ size: 14,
652
+ style: {
653
+ marginBottom: 8
654
+ }
655
+ }, "Market Key *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
656
+ style: {
657
+ backgroundColor: Colors.views.header,
658
+ borderRadius: 6,
659
+ padding: 12,
660
+ color: Colors.text.h1,
661
+ fontSize: 14
662
+ },
663
+ value: data.formMarketKey,
664
+ onChangeText: text => setData(prev => ({
665
+ ...prev,
666
+ formMarketKey: text
667
+ })),
668
+ placeholder: "e.g., moneyline",
669
+ placeholderTextColor: Colors.text.description
670
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
671
+ transparent: true
672
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
673
+ theme: "h2",
674
+ size: 14,
675
+ style: {
676
+ marginBottom: 8
677
+ }
678
+ }, "Market Label *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
679
+ style: {
680
+ backgroundColor: Colors.views.header,
681
+ borderRadius: 6,
682
+ padding: 12,
683
+ color: Colors.text.h1,
684
+ fontSize: 14
685
+ },
686
+ value: data.formMarketLabel,
687
+ onChangeText: text => setData(prev => ({
688
+ ...prev,
689
+ formMarketLabel: text
690
+ })),
691
+ placeholder: "e.g., Moneyline",
692
+ placeholderTextColor: Colors.text.description
693
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
694
+ transparent: true
695
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
696
+ theme: "h2",
697
+ size: 14,
698
+ style: {
699
+ marginBottom: 8
700
+ }
701
+ }, "Description *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
702
+ style: {
703
+ backgroundColor: Colors.views.header,
704
+ borderRadius: 6,
705
+ padding: 12,
706
+ color: Colors.text.h1,
707
+ fontSize: 14,
708
+ minHeight: 80
709
+ },
710
+ value: data.formMarketDescription,
711
+ onChangeText: text => setData(prev => ({
712
+ ...prev,
713
+ formMarketDescription: text
714
+ })),
715
+ placeholder: "Market description",
716
+ placeholderTextColor: Colors.text.description,
717
+ multiline: true
718
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
719
+ transparent: true
720
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
721
+ theme: "h2",
722
+ size: 14,
723
+ style: {
724
+ marginBottom: 8
725
+ }
726
+ }, "Category"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
727
+ transparent: true,
728
+ style: {
729
+ flexDirection: 'row',
730
+ flexWrap: 'wrap',
731
+ gap: 8
732
+ }
733
+ }, ['game_result', 'team_stat', 'player_stat', 'game_stat'].map(cat => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
734
+ key: cat,
735
+ onPress: () => setData(prev => ({
736
+ ...prev,
737
+ formCategory: cat
738
+ })),
739
+ style: {
740
+ backgroundColor: data.formCategory === cat ? Colors.views.body : Colors.views.header,
741
+ paddingHorizontal: 12,
742
+ paddingVertical: 8,
743
+ borderRadius: 6
744
+ }
745
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
746
+ theme: "h2",
747
+ size: 12
748
+ }, cat))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
749
+ transparent: true
750
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
751
+ theme: "h2",
752
+ size: 14,
753
+ style: {
754
+ marginBottom: 8
755
+ }
756
+ }, "Participant Type"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
757
+ transparent: true,
758
+ style: {
759
+ flexDirection: 'row',
760
+ gap: 8
761
+ }
762
+ }, ['team', 'player', 'event'].map(type => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
763
+ key: type,
764
+ onPress: () => setData(prev => ({
765
+ ...prev,
766
+ formParticipantType: type
767
+ })),
768
+ style: {
769
+ backgroundColor: data.formParticipantType === type ? Colors.views.body : Colors.views.header,
770
+ paddingHorizontal: 12,
771
+ paddingVertical: 8,
772
+ borderRadius: 6
773
+ }
774
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
775
+ theme: "h2",
776
+ size: 12
777
+ }, type))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
778
+ transparent: true
779
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
780
+ theme: "h2",
781
+ size: 14,
782
+ style: {
783
+ marginBottom: 8
784
+ }
785
+ }, "Default Variable Type"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
786
+ transparent: true,
787
+ style: {
788
+ flexDirection: 'row',
789
+ gap: 8
790
+ }
791
+ }, ['total', 'spread'].map(type => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
792
+ key: type,
793
+ onPress: () => setData(prev => ({
794
+ ...prev,
795
+ formDefaultVariableType: type
796
+ })),
797
+ style: {
798
+ backgroundColor: data.formDefaultVariableType === type ? Colors.views.body : Colors.views.header,
799
+ paddingHorizontal: 12,
800
+ paddingVertical: 8,
801
+ borderRadius: 6
802
+ }
803
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
804
+ theme: "h2",
805
+ size: 12
806
+ }, type))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
807
+ transparent: true,
808
+ style: {
809
+ gap: 12
810
+ }
811
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
812
+ onPress: () => setData(prev => ({
813
+ ...prev,
814
+ formVariableRequired: !prev.formVariableRequired
815
+ })),
816
+ style: {
817
+ flexDirection: 'row',
818
+ alignItems: 'center',
819
+ gap: 8
820
+ }
821
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
822
+ style: {
823
+ width: 20,
824
+ height: 20,
825
+ borderRadius: 4,
826
+ borderWidth: 2,
827
+ borderColor: data.formVariableRequired ? Colors.views.body : Colors.text.description,
828
+ backgroundColor: data.formVariableRequired ? Colors.views.body : 'transparent',
829
+ justifyContent: 'center',
830
+ alignItems: 'center'
831
+ }
832
+ }, data.formVariableRequired && /*#__PURE__*/_react.default.createElement(_Themed.Text, {
833
+ theme: "h2",
834
+ size: 12
835
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
836
+ theme: "h2",
837
+ size: 14
838
+ }, "Variable Required")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
839
+ onPress: () => setData(prev => ({
840
+ ...prev,
841
+ formAllowMultipleParticipants: !prev.formAllowMultipleParticipants
842
+ })),
843
+ style: {
844
+ flexDirection: 'row',
845
+ alignItems: 'center',
846
+ gap: 8
847
+ }
848
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
849
+ style: {
850
+ width: 20,
851
+ height: 20,
852
+ borderRadius: 4,
853
+ borderWidth: 2,
854
+ borderColor: data.formAllowMultipleParticipants ? Colors.views.body : Colors.text.description,
855
+ backgroundColor: data.formAllowMultipleParticipants ? Colors.views.body : 'transparent',
856
+ justifyContent: 'center',
857
+ alignItems: 'center'
858
+ }
859
+ }, data.formAllowMultipleParticipants && /*#__PURE__*/_react.default.createElement(_Themed.Text, {
860
+ theme: "h2",
861
+ size: 12
862
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
863
+ theme: "h2",
864
+ size: 14
865
+ }, "Allow Multiple Participants"))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
866
+ transparent: true
867
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
868
+ theme: "h2",
869
+ size: 14,
870
+ style: {
871
+ marginBottom: 8
872
+ }
873
+ }, "Status"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
874
+ transparent: true,
875
+ style: {
876
+ flexDirection: 'row',
877
+ gap: 8
878
+ }
879
+ }, ['active', 'inactive'].map(status => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
880
+ key: status,
881
+ onPress: () => setData(prev => ({
882
+ ...prev,
883
+ formStatus: status
884
+ })),
885
+ style: {
886
+ backgroundColor: data.formStatus === status ? Colors.views.body : Colors.views.header,
887
+ paddingHorizontal: 12,
888
+ paddingVertical: 8,
889
+ borderRadius: 6
890
+ }
891
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
892
+ theme: "h2",
893
+ size: 12
894
+ }, status))))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
895
+ transparent: true,
896
+ style: {
897
+ flexDirection: 'row',
898
+ gap: 12,
899
+ marginTop: 24
900
+ }
901
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
902
+ title: "Cancel",
903
+ onPress: closeModals,
904
+ type: "close",
905
+ style: {
906
+ flex: 1
907
+ }
908
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
909
+ title: "Create",
910
+ onPress: handleCreateMarket,
911
+ style: {
912
+ flex: 1
913
+ }
914
+ }))))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
915
+ visible: data.showEditMarketModal,
916
+ transparent: true,
917
+ animationType: "fade",
918
+ onRequestClose: closeModals
919
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
920
+ style: {
921
+ flex: 1,
922
+ backgroundColor: 'rgba(0,0,0,0.5)',
923
+ justifyContent: 'center',
924
+ alignItems: 'center'
925
+ }
926
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
927
+ style: {
928
+ backgroundColor: Colors.views.body,
929
+ borderRadius: 12,
930
+ padding: 24,
931
+ width: '90%',
932
+ maxWidth: 500
933
+ }
934
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
935
+ theme: "h1",
936
+ size: 20,
937
+ style: {
938
+ marginBottom: 20
939
+ }
940
+ }, "Edit Router Market"), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
941
+ style: {
942
+ maxHeight: 500
943
+ }
944
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
945
+ transparent: true,
946
+ style: {
947
+ gap: 16
948
+ }
949
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
950
+ transparent: true
951
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
952
+ theme: "h2",
953
+ size: 14,
954
+ style: {
955
+ marginBottom: 8
956
+ }
957
+ }, "Market Key *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
958
+ style: {
959
+ backgroundColor: Colors.views.header,
960
+ borderRadius: 6,
961
+ padding: 12,
962
+ color: Colors.text.h1,
963
+ fontSize: 14
964
+ },
965
+ value: data.formMarketKey,
966
+ onChangeText: text => setData(prev => ({
967
+ ...prev,
968
+ formMarketKey: text
969
+ }))
970
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
971
+ transparent: true
972
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
973
+ theme: "h2",
974
+ size: 14,
975
+ style: {
976
+ marginBottom: 8
977
+ }
978
+ }, "Market Label *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
979
+ style: {
980
+ backgroundColor: Colors.views.header,
981
+ borderRadius: 6,
982
+ padding: 12,
983
+ color: Colors.text.h1,
984
+ fontSize: 14
985
+ },
986
+ value: data.formMarketLabel,
987
+ onChangeText: text => setData(prev => ({
988
+ ...prev,
989
+ formMarketLabel: text
990
+ }))
991
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
992
+ transparent: true
993
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
994
+ theme: "h2",
995
+ size: 14,
996
+ style: {
997
+ marginBottom: 8
998
+ }
999
+ }, "Description *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1000
+ style: {
1001
+ backgroundColor: Colors.views.header,
1002
+ borderRadius: 6,
1003
+ padding: 12,
1004
+ color: Colors.text.h1,
1005
+ fontSize: 14,
1006
+ minHeight: 80
1007
+ },
1008
+ value: data.formMarketDescription,
1009
+ onChangeText: text => setData(prev => ({
1010
+ ...prev,
1011
+ formMarketDescription: text
1012
+ })),
1013
+ multiline: true
1014
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1015
+ transparent: true
1016
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1017
+ theme: "h2",
1018
+ size: 14,
1019
+ style: {
1020
+ marginBottom: 8
1021
+ }
1022
+ }, "Category"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1023
+ transparent: true,
1024
+ style: {
1025
+ flexDirection: 'row',
1026
+ flexWrap: 'wrap',
1027
+ gap: 8
1028
+ }
1029
+ }, ['game_result', 'team_stat', 'player_stat', 'game_stat'].map(cat => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1030
+ key: cat,
1031
+ onPress: () => setData(prev => ({
1032
+ ...prev,
1033
+ formCategory: cat
1034
+ })),
1035
+ style: {
1036
+ backgroundColor: data.formCategory === cat ? Colors.views.body : Colors.views.header,
1037
+ paddingHorizontal: 12,
1038
+ paddingVertical: 8,
1039
+ borderRadius: 6
1040
+ }
1041
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1042
+ theme: "h2",
1043
+ size: 12
1044
+ }, cat))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1045
+ transparent: true
1046
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1047
+ theme: "h2",
1048
+ size: 14,
1049
+ style: {
1050
+ marginBottom: 8
1051
+ }
1052
+ }, "Participant Type"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1053
+ transparent: true,
1054
+ style: {
1055
+ flexDirection: 'row',
1056
+ gap: 8
1057
+ }
1058
+ }, ['team', 'player', 'event'].map(type => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1059
+ key: type,
1060
+ onPress: () => setData(prev => ({
1061
+ ...prev,
1062
+ formParticipantType: type
1063
+ })),
1064
+ style: {
1065
+ backgroundColor: data.formParticipantType === type ? Colors.views.body : Colors.views.header,
1066
+ paddingHorizontal: 12,
1067
+ paddingVertical: 8,
1068
+ borderRadius: 6
1069
+ }
1070
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1071
+ theme: "h2",
1072
+ size: 12
1073
+ }, type))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1074
+ transparent: true
1075
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1076
+ theme: "h2",
1077
+ size: 14,
1078
+ style: {
1079
+ marginBottom: 8
1080
+ }
1081
+ }, "Default Variable Type"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1082
+ transparent: true,
1083
+ style: {
1084
+ flexDirection: 'row',
1085
+ gap: 8
1086
+ }
1087
+ }, ['total', 'spread'].map(type => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1088
+ key: type,
1089
+ onPress: () => setData(prev => ({
1090
+ ...prev,
1091
+ formDefaultVariableType: type
1092
+ })),
1093
+ style: {
1094
+ backgroundColor: data.formDefaultVariableType === type ? Colors.views.body : Colors.views.header,
1095
+ paddingHorizontal: 12,
1096
+ paddingVertical: 8,
1097
+ borderRadius: 6
1098
+ }
1099
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1100
+ theme: "h2",
1101
+ size: 12
1102
+ }, type))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1103
+ transparent: true,
1104
+ style: {
1105
+ gap: 12
1106
+ }
1107
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1108
+ onPress: () => setData(prev => ({
1109
+ ...prev,
1110
+ formVariableRequired: !prev.formVariableRequired
1111
+ })),
1112
+ style: {
1113
+ flexDirection: 'row',
1114
+ alignItems: 'center',
1115
+ gap: 8
1116
+ }
1117
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1118
+ style: {
1119
+ width: 20,
1120
+ height: 20,
1121
+ borderRadius: 4,
1122
+ borderWidth: 2,
1123
+ borderColor: data.formVariableRequired ? Colors.views.body : Colors.text.description,
1124
+ backgroundColor: data.formVariableRequired ? Colors.views.body : 'transparent',
1125
+ justifyContent: 'center',
1126
+ alignItems: 'center'
1127
+ }
1128
+ }, data.formVariableRequired && /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1129
+ theme: "h2",
1130
+ size: 12
1131
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1132
+ theme: "h2",
1133
+ size: 14
1134
+ }, "Variable Required")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1135
+ onPress: () => setData(prev => ({
1136
+ ...prev,
1137
+ formAllowMultipleParticipants: !prev.formAllowMultipleParticipants
1138
+ })),
1139
+ style: {
1140
+ flexDirection: 'row',
1141
+ alignItems: 'center',
1142
+ gap: 8
1143
+ }
1144
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1145
+ style: {
1146
+ width: 20,
1147
+ height: 20,
1148
+ borderRadius: 4,
1149
+ borderWidth: 2,
1150
+ borderColor: data.formAllowMultipleParticipants ? Colors.views.body : Colors.text.description,
1151
+ backgroundColor: data.formAllowMultipleParticipants ? Colors.views.body : 'transparent',
1152
+ justifyContent: 'center',
1153
+ alignItems: 'center'
1154
+ }
1155
+ }, data.formAllowMultipleParticipants && /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1156
+ theme: "h2",
1157
+ size: 12
1158
+ }, "\u2713")), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1159
+ theme: "h2",
1160
+ size: 14
1161
+ }, "Allow Multiple Participants"))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1162
+ transparent: true
1163
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1164
+ theme: "h2",
1165
+ size: 14,
1166
+ style: {
1167
+ marginBottom: 8
1168
+ }
1169
+ }, "Status"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1170
+ transparent: true,
1171
+ style: {
1172
+ flexDirection: 'row',
1173
+ gap: 8
1174
+ }
1175
+ }, ['active', 'inactive'].map(status => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1176
+ key: status,
1177
+ onPress: () => setData(prev => ({
1178
+ ...prev,
1179
+ formStatus: status
1180
+ })),
1181
+ style: {
1182
+ backgroundColor: data.formStatus === status ? Colors.views.body : Colors.views.header,
1183
+ paddingHorizontal: 12,
1184
+ paddingVertical: 8,
1185
+ borderRadius: 6
1186
+ }
1187
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1188
+ theme: "h2",
1189
+ size: 12
1190
+ }, status))))))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1191
+ transparent: true,
1192
+ style: {
1193
+ flexDirection: 'row',
1194
+ gap: 12,
1195
+ marginTop: 24
1196
+ }
1197
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1198
+ title: "Cancel",
1199
+ onPress: closeModals,
1200
+ type: "close",
1201
+ style: {
1202
+ flex: 1
1203
+ }
1204
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1205
+ title: "Update",
1206
+ onPress: handleUpdateMarket,
1207
+ style: {
1208
+ flex: 1
1209
+ }
1210
+ }))))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1211
+ visible: data.showDeleteMarketModal,
1212
+ transparent: true,
1213
+ animationType: "fade",
1214
+ onRequestClose: closeModals
1215
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1216
+ style: {
1217
+ flex: 1,
1218
+ backgroundColor: 'rgba(0,0,0,0.5)',
1219
+ justifyContent: 'center',
1220
+ alignItems: 'center'
1221
+ }
1222
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1223
+ style: {
1224
+ backgroundColor: Colors.views.body,
1225
+ borderRadius: 12,
1226
+ padding: 24,
1227
+ width: '90%',
1228
+ maxWidth: 400
1229
+ }
1230
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1231
+ theme: "h1",
1232
+ size: 20,
1233
+ style: {
1234
+ marginBottom: 12
1235
+ }
1236
+ }, "Delete Router Market"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1237
+ theme: "description",
1238
+ size: 14,
1239
+ style: {
1240
+ marginBottom: 24
1241
+ }
1242
+ }, "Are you sure you want to delete \"", data.selectedMarket?.market_label, "\"? This action cannot be undone."), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1243
+ transparent: true,
1244
+ style: {
1245
+ flexDirection: 'row',
1246
+ gap: 12
1247
+ }
1248
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1249
+ title: "Cancel",
1250
+ onPress: closeModals,
1251
+ type: "close",
1252
+ style: {
1253
+ flex: 1
1254
+ }
1255
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1256
+ title: "Delete",
1257
+ onPress: handleDeleteMarket,
1258
+ style: {
1259
+ flex: 1,
1260
+ backgroundColor: Colors.text.error
1261
+ }
1262
+ }))))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1263
+ visible: data.showCreateSideModal,
1264
+ transparent: true,
1265
+ animationType: "fade",
1266
+ onRequestClose: closeModals
1267
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1268
+ style: {
1269
+ flex: 1,
1270
+ backgroundColor: 'rgba(0,0,0,0.5)',
1271
+ justifyContent: 'center',
1272
+ alignItems: 'center'
1273
+ }
1274
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1275
+ style: {
1276
+ backgroundColor: Colors.views.body,
1277
+ borderRadius: 12,
1278
+ padding: 24,
1279
+ width: '90%',
1280
+ maxWidth: 500
1281
+ }
1282
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1283
+ theme: "h1",
1284
+ size: 20,
1285
+ style: {
1286
+ marginBottom: 20
1287
+ }
1288
+ }, "Create Market Side"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1289
+ transparent: true,
1290
+ style: {
1291
+ gap: 16
1292
+ }
1293
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1294
+ transparent: true
1295
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1296
+ theme: "h2",
1297
+ size: 14,
1298
+ style: {
1299
+ marginBottom: 8
1300
+ }
1301
+ }, "Side Type *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1302
+ style: {
1303
+ backgroundColor: Colors.views.header,
1304
+ borderRadius: 6,
1305
+ padding: 12,
1306
+ color: Colors.text.h1,
1307
+ fontSize: 14
1308
+ },
1309
+ value: data.formSideType,
1310
+ onChangeText: text => setData(prev => ({
1311
+ ...prev,
1312
+ formSideType: text
1313
+ })),
1314
+ placeholder: "e.g., team, athlete, side",
1315
+ placeholderTextColor: Colors.text.description
1316
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1317
+ transparent: true
1318
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1319
+ theme: "h2",
1320
+ size: 14,
1321
+ style: {
1322
+ marginBottom: 8
1323
+ }
1324
+ }, "Side Key *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1325
+ style: {
1326
+ backgroundColor: Colors.views.header,
1327
+ borderRadius: 6,
1328
+ padding: 12,
1329
+ color: Colors.text.h1,
1330
+ fontSize: 14
1331
+ },
1332
+ value: data.formSideKey,
1333
+ onChangeText: text => setData(prev => ({
1334
+ ...prev,
1335
+ formSideKey: text
1336
+ })),
1337
+ placeholder: "e.g., home, away, over, under",
1338
+ placeholderTextColor: Colors.text.description
1339
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1340
+ transparent: true
1341
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1342
+ theme: "h2",
1343
+ size: 14,
1344
+ style: {
1345
+ marginBottom: 8
1346
+ }
1347
+ }, "Renderer *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1348
+ style: {
1349
+ backgroundColor: Colors.views.header,
1350
+ borderRadius: 6,
1351
+ padding: 12,
1352
+ color: Colors.text.h1,
1353
+ fontSize: 14,
1354
+ minHeight: 80
1355
+ },
1356
+ value: data.formRenderer,
1357
+ onChangeText: text => setData(prev => ({
1358
+ ...prev,
1359
+ formRenderer: text
1360
+ })),
1361
+ placeholder: "Template for rendering titles",
1362
+ placeholderTextColor: Colors.text.description,
1363
+ multiline: true
1364
+ }))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1365
+ transparent: true,
1366
+ style: {
1367
+ flexDirection: 'row',
1368
+ gap: 12,
1369
+ marginTop: 24
1370
+ }
1371
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1372
+ title: "Cancel",
1373
+ onPress: closeModals,
1374
+ type: "close",
1375
+ style: {
1376
+ flex: 1
1377
+ }
1378
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1379
+ title: "Create",
1380
+ onPress: handleCreateSide,
1381
+ style: {
1382
+ flex: 1
1383
+ }
1384
+ }))))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1385
+ visible: data.showEditSideModal,
1386
+ transparent: true,
1387
+ animationType: "fade",
1388
+ onRequestClose: closeModals
1389
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1390
+ style: {
1391
+ flex: 1,
1392
+ backgroundColor: 'rgba(0,0,0,0.5)',
1393
+ justifyContent: 'center',
1394
+ alignItems: 'center'
1395
+ }
1396
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1397
+ style: {
1398
+ backgroundColor: Colors.views.body,
1399
+ borderRadius: 12,
1400
+ padding: 24,
1401
+ width: '90%',
1402
+ maxWidth: 500
1403
+ }
1404
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1405
+ theme: "h1",
1406
+ size: 20,
1407
+ style: {
1408
+ marginBottom: 20
1409
+ }
1410
+ }, "Edit Market Side"), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1411
+ transparent: true,
1412
+ style: {
1413
+ gap: 16
1414
+ }
1415
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1416
+ transparent: true
1417
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1418
+ theme: "h2",
1419
+ size: 14,
1420
+ style: {
1421
+ marginBottom: 8
1422
+ }
1423
+ }, "Side Type *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1424
+ style: {
1425
+ backgroundColor: Colors.views.header,
1426
+ borderRadius: 6,
1427
+ padding: 12,
1428
+ color: Colors.text.h1,
1429
+ fontSize: 14
1430
+ },
1431
+ value: data.formSideType,
1432
+ onChangeText: text => setData(prev => ({
1433
+ ...prev,
1434
+ formSideType: text
1435
+ }))
1436
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1437
+ transparent: true
1438
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1439
+ theme: "h2",
1440
+ size: 14,
1441
+ style: {
1442
+ marginBottom: 8
1443
+ }
1444
+ }, "Side Key *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1445
+ style: {
1446
+ backgroundColor: Colors.views.header,
1447
+ borderRadius: 6,
1448
+ padding: 12,
1449
+ color: Colors.text.h1,
1450
+ fontSize: 14
1451
+ },
1452
+ value: data.formSideKey,
1453
+ onChangeText: text => setData(prev => ({
1454
+ ...prev,
1455
+ formSideKey: text
1456
+ }))
1457
+ })), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1458
+ transparent: true
1459
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1460
+ theme: "h2",
1461
+ size: 14,
1462
+ style: {
1463
+ marginBottom: 8
1464
+ }
1465
+ }, "Renderer *"), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
1466
+ style: {
1467
+ backgroundColor: Colors.views.header,
1468
+ borderRadius: 6,
1469
+ padding: 12,
1470
+ color: Colors.text.h1,
1471
+ fontSize: 14,
1472
+ minHeight: 80
1473
+ },
1474
+ value: data.formRenderer,
1475
+ onChangeText: text => setData(prev => ({
1476
+ ...prev,
1477
+ formRenderer: text
1478
+ })),
1479
+ multiline: true
1480
+ }))), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1481
+ transparent: true,
1482
+ style: {
1483
+ flexDirection: 'row',
1484
+ gap: 12,
1485
+ marginTop: 24
1486
+ }
1487
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1488
+ title: "Cancel",
1489
+ onPress: closeModals,
1490
+ type: "close",
1491
+ style: {
1492
+ flex: 1
1493
+ }
1494
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1495
+ title: "Update",
1496
+ onPress: handleUpdateSide,
1497
+ style: {
1498
+ flex: 1
1499
+ }
1500
+ }))))), /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1501
+ visible: data.showDeleteSideModal,
1502
+ transparent: true,
1503
+ animationType: "fade",
1504
+ onRequestClose: closeModals
1505
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1506
+ style: {
1507
+ flex: 1,
1508
+ backgroundColor: 'rgba(0,0,0,0.5)',
1509
+ justifyContent: 'center',
1510
+ alignItems: 'center'
1511
+ }
1512
+ }, /*#__PURE__*/_react.default.createElement(_Themed.View, {
1513
+ style: {
1514
+ backgroundColor: Colors.views.body,
1515
+ borderRadius: 12,
1516
+ padding: 24,
1517
+ width: '90%',
1518
+ maxWidth: 400
1519
+ }
1520
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1521
+ theme: "h1",
1522
+ size: 20,
1523
+ style: {
1524
+ marginBottom: 12
1525
+ }
1526
+ }, "Delete Market Side"), /*#__PURE__*/_react.default.createElement(_Themed.Text, {
1527
+ theme: "description",
1528
+ size: 14,
1529
+ style: {
1530
+ marginBottom: 24
1531
+ }
1532
+ }, "Are you sure you want to delete this market side? This action cannot be undone."), /*#__PURE__*/_react.default.createElement(_Themed.View, {
1533
+ transparent: true,
1534
+ style: {
1535
+ flexDirection: 'row',
1536
+ gap: 12
1537
+ }
1538
+ }, /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1539
+ title: "Cancel",
1540
+ onPress: closeModals,
1541
+ type: "close",
1542
+ style: {
1543
+ flex: 1
1544
+ }
1545
+ }), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
1546
+ title: "Delete",
1547
+ onPress: handleDeleteSide,
1548
+ style: {
1549
+ flex: 1,
1550
+ backgroundColor: Colors.text.error
1551
+ }
1552
+ }))))));
1553
+ };
1554
+ var _default = exports.default = RouterMarkets;
1555
+ //# sourceMappingURL=RouterMarkets.js.map