be-components 7.7.2 → 7.7.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.
- package/lib/commonjs/Assets/fonts/Barlow-Bold.ttf +0 -0
- package/lib/commonjs/Assets/fonts/Barlow-Regular.ttf +0 -0
- package/lib/commonjs/Assets/fonts/Barlow-SemiBold.ttf +0 -0
- package/lib/commonjs/Assets/images/powered_by_be.webp +0 -0
- package/lib/commonjs/BetRouter/components/MyOpportunities.tsx.bak +440 -0
- package/lib/commonjs/BetRouter/types/ADMIN_PORTAL.md +863 -0
- package/lib/commonjs/BetRouter/types/ADMIN_PORTAL_SIMPLIFIED.md +1881 -0
- package/lib/commonjs/BetRouter/types/CREDENTIALS_EXAMPLE.md +350 -0
- package/lib/commonjs/BetRouter/types/LIQUIDITY_CLIENT_GUIDE.md +399 -0
- package/lib/commonjs/BetRouter/types/MARKET_LINKING_WORKFLOW.md +682 -0
- package/lib/commonjs/BetRouter/types/MARKET_LINKING_WORKFLOW_V2.md +627 -0
- package/lib/commonjs/BetRouter/types/README.md +249 -0
- package/lib/commonjs/Charts/README.md +310 -0
- package/lib/commonjs/NotificationManager/components/ScheduleNotification.js +1 -16
- package/lib/commonjs/NotificationManager/components/ScheduleNotification.js.map +1 -1
- package/lib/commonjs/NotificationManager/components/shared/GroupSelector.js +74 -4
- package/lib/commonjs/NotificationManager/components/shared/GroupSelector.js.map +1 -1
- package/lib/commonjs/NotificationManager/index.js +49 -5
- package/lib/commonjs/NotificationManager/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ApiOverrides/index.ts +2 -2
- package/src/NotificationManager/components/ScheduleNotification.tsx +1 -17
- package/src/NotificationManager/components/shared/GroupSelector.tsx +83 -6
- package/src/NotificationManager/index.tsx +52 -5
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# BetRouter Types - Single Source of Truth
|
|
2
|
+
|
|
3
|
+
This folder contains **ALL** TypeScript type definitions for the BetRouter project.
|
|
4
|
+
|
|
5
|
+
## 📁 Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
src/types/
|
|
9
|
+
├── index.ts # Main export file
|
|
10
|
+
├── opportunities.ts # Opportunity types
|
|
11
|
+
├── orders.ts # Order types
|
|
12
|
+
├── accounts.ts # Account types
|
|
13
|
+
├── partners.ts # Partner types
|
|
14
|
+
├── leagues.ts # League types (router, raw, partner)
|
|
15
|
+
├── contests.ts # Contest types (router, raw, partner)
|
|
16
|
+
├── participants.ts # Participant types (router, raw, partner)
|
|
17
|
+
├── markets.ts # Market types (router, raw, partner)
|
|
18
|
+
├── liquidity.ts # Liquidity types
|
|
19
|
+
├── credentials.ts # Partner credential types (Kalshi, BettorEdge, etc.)
|
|
20
|
+
├── api-contracts.ts # API endpoint contracts
|
|
21
|
+
├── README.md # This file
|
|
22
|
+
├── CREDENTIALS_EXAMPLE.md # Examples for building credential forms
|
|
23
|
+
└── ADMIN_PORTAL.md # Complete guide for building admin portal
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 🏗️ One-to-Many Architecture
|
|
27
|
+
|
|
28
|
+
BetRouter uses a **three-layer architecture** for core entities (leagues, contests, participants, markets):
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
┌─────────────────┐
|
|
32
|
+
│ Router Layer │ ← Canonical/normalized entities (single source of truth)
|
|
33
|
+
│ (router_*) │ Example: router_contests, router_participants
|
|
34
|
+
└────────┬────────┘
|
|
35
|
+
│ one-to-many
|
|
36
|
+
↓
|
|
37
|
+
┌─────────────────┐
|
|
38
|
+
│ Raw Layer │ ← Partner-specific data (as-is from each partner)
|
|
39
|
+
│ (raw_*) │ Example: raw_contests (one per partner per game)
|
|
40
|
+
└────────┬────────┘
|
|
41
|
+
│ linked via
|
|
42
|
+
↓
|
|
43
|
+
┌─────────────────┐
|
|
44
|
+
│ Partner Layer │ ← Junction table linking router ↔ raw
|
|
45
|
+
│ (partner_*) │ Example: partner_contests (creates the relationships)
|
|
46
|
+
└─────────────────┘
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Key Principles:**
|
|
50
|
+
- **Router entities** are the canonical source of truth (from BettorEdge)
|
|
51
|
+
- **Raw entities** store partner-specific data exactly as received
|
|
52
|
+
- **Partner entities** create many-to-many relationships via junction tables
|
|
53
|
+
- Each router entity can link to multiple raw entities (one per partner)
|
|
54
|
+
|
|
55
|
+
**Example:** Yankees vs Red Sox game
|
|
56
|
+
- 1 `router_contest` (canonical representation)
|
|
57
|
+
- 3 `raw_contests` (one from BettorEdge, one from Kalshi, one from BetOpenly)
|
|
58
|
+
- 3 `partner_contests` (linking each raw contest to the router contest)
|
|
59
|
+
|
|
60
|
+
See `ADMIN_PORTAL.md` for detailed architecture documentation and workflows.
|
|
61
|
+
|
|
62
|
+
## 🎯 Usage in Server
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// Import types in your server code
|
|
66
|
+
import {
|
|
67
|
+
RouterContestProps,
|
|
68
|
+
RawContestProps,
|
|
69
|
+
PartnerContestProps,
|
|
70
|
+
RouterParticipantProps,
|
|
71
|
+
OpportunityProps
|
|
72
|
+
} from './types';
|
|
73
|
+
import { ApiContracts, ExtractSuccessResponse } from './types/api-contracts';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 📦 Usage in Client
|
|
77
|
+
|
|
78
|
+
### Step 1: Copy to your client project
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# From your client project root
|
|
82
|
+
cp -r ../betrouter/src/types ./src/types/betrouter
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**OR** add this to your client's `package.json`:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"scripts": {
|
|
90
|
+
"sync-types": "cp -r ../betrouter/src/types ./src/types/betrouter"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Then run: `npm run sync-types`
|
|
96
|
+
|
|
97
|
+
### Step 2: Use in your client code
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import {
|
|
101
|
+
RouterContestProps,
|
|
102
|
+
RawContestProps,
|
|
103
|
+
PartnerContestProps,
|
|
104
|
+
RouterMarketProps,
|
|
105
|
+
ApiContracts,
|
|
106
|
+
ExtractSuccessResponse
|
|
107
|
+
} from './types/betrouter';
|
|
108
|
+
|
|
109
|
+
// Example 1: Display contests with their partner links
|
|
110
|
+
interface ContestWithLinks {
|
|
111
|
+
contest: RouterContestProps;
|
|
112
|
+
partnerContests: PartnerContestProps[];
|
|
113
|
+
rawContests: RawContestProps[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Example 2: Load raw contests from a partner
|
|
117
|
+
async function loadRawContestsFromPartner(
|
|
118
|
+
partnerId: string,
|
|
119
|
+
leagueId: string
|
|
120
|
+
) {
|
|
121
|
+
const res = await fetch('/api/contests/load-raw', {
|
|
122
|
+
method: 'POST',
|
|
123
|
+
headers: {
|
|
124
|
+
'Authorization': `Bearer ${token}`,
|
|
125
|
+
'Content-Type': 'application/json'
|
|
126
|
+
},
|
|
127
|
+
body: JSON.stringify({
|
|
128
|
+
partner_id: partnerId,
|
|
129
|
+
router_league_id: leagueId
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const data = await res.json();
|
|
134
|
+
return data.raw_contests as RawContestProps[];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Example 3: Link raw contests to router contest
|
|
138
|
+
async function linkContests(
|
|
139
|
+
rawContestIds: string[],
|
|
140
|
+
routerContestId: string
|
|
141
|
+
) {
|
|
142
|
+
const res = await fetch('/api/contests/link', {
|
|
143
|
+
method: 'POST',
|
|
144
|
+
headers: {
|
|
145
|
+
'Authorization': `Bearer ${token}`,
|
|
146
|
+
'Content-Type': 'application/json'
|
|
147
|
+
},
|
|
148
|
+
body: JSON.stringify({
|
|
149
|
+
raw_contest_ids: rawContestIds,
|
|
150
|
+
router_contest_id: routerContestId
|
|
151
|
+
})
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
const data = await res.json();
|
|
155
|
+
return data.partner_contests as PartnerContestProps[];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Example 4: Build admin UI showing linked data
|
|
159
|
+
function ContestLinkingComponent() {
|
|
160
|
+
const [routerContests, setRouterContests] = useState<RouterContestProps[]>([]);
|
|
161
|
+
const [rawContests, setRawContests] = useState<RawContestProps[]>([]);
|
|
162
|
+
const [selectedRouter, setSelectedRouter] = useState<string | null>(null);
|
|
163
|
+
|
|
164
|
+
// ... component logic
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 🔐 Partner Credentials
|
|
169
|
+
|
|
170
|
+
Build dynamic credential forms in your client! Each partner has different credential requirements:
|
|
171
|
+
|
|
172
|
+
**Kalshi:**
|
|
173
|
+
- `api_key` (text)
|
|
174
|
+
- `private_key_pem` (textarea)
|
|
175
|
+
|
|
176
|
+
**BettorEdge:**
|
|
177
|
+
- `username` (text)
|
|
178
|
+
- `password` (password)
|
|
179
|
+
- `device_id` (text)
|
|
180
|
+
|
|
181
|
+
Use helper functions to build forms dynamically:
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
import {
|
|
185
|
+
getRequiredCredentialFields,
|
|
186
|
+
getCredentialFieldLabels,
|
|
187
|
+
getCredentialFieldTypes
|
|
188
|
+
} from './types/betrouter';
|
|
189
|
+
|
|
190
|
+
const fields = getRequiredCredentialFields('Kalshi');
|
|
191
|
+
// ['api_key', 'private_key_pem']
|
|
192
|
+
|
|
193
|
+
const labels = getCredentialFieldLabels('Kalshi');
|
|
194
|
+
// { api_key: 'API Key', private_key_pem: 'Private Key (PEM format)' }
|
|
195
|
+
|
|
196
|
+
const types = getCredentialFieldTypes('Kalshi');
|
|
197
|
+
// { api_key: 'text', private_key_pem: 'textarea' }
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**See `CREDENTIALS_EXAMPLE.md` for complete examples!**
|
|
201
|
+
|
|
202
|
+
## 🔄 Keeping Types in Sync
|
|
203
|
+
|
|
204
|
+
When you update types or add new API endpoints:
|
|
205
|
+
|
|
206
|
+
1. **Update in `src/types`** (this folder) - the single source of truth
|
|
207
|
+
2. **Copy to client** - Run `npm run sync-types` in your client project
|
|
208
|
+
3. **Done!** - Both server and client now have the same types
|
|
209
|
+
|
|
210
|
+
## ⚠️ Important Rules
|
|
211
|
+
|
|
212
|
+
1. **NEVER define types outside of `src/types`** - This is the single source of truth
|
|
213
|
+
2. **Import types from `./types` or `../types`** - Always reference this folder
|
|
214
|
+
3. **Update API contracts when adding routes** - Keep `api-contracts.ts` in sync with your routes
|
|
215
|
+
4. **Don't manually edit in client** - Always copy from server
|
|
216
|
+
|
|
217
|
+
## 📝 Type Helpers
|
|
218
|
+
|
|
219
|
+
The `api-contracts.ts` file provides helper types:
|
|
220
|
+
|
|
221
|
+
- `ExtractRequestBody<Route>` - Get request body type
|
|
222
|
+
- `ExtractRequestQuery<Route>` - Get query parameters type
|
|
223
|
+
- `ExtractRequestParams<Route>` - Get URL parameters type
|
|
224
|
+
- `ExtractSuccessResponse<Route>` - Get success response type
|
|
225
|
+
- `ExtractErrorResponse<Route>` - Get error response type
|
|
226
|
+
|
|
227
|
+
Example:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
type BuyBody = ExtractRequestBody<'POST /opportunities/opportunity/buy'>;
|
|
231
|
+
type PastQuery = ExtractRequestQuery<'GET /opportunities/past/me'>;
|
|
232
|
+
type PastResponse = ExtractSuccessResponse<'GET /opportunities/past/me'>;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## 🔨 Building Admin Tools
|
|
236
|
+
|
|
237
|
+
To build an admin portal for managing router/raw/partner entity linking:
|
|
238
|
+
|
|
239
|
+
**📖 [ADMIN_PORTAL_SIMPLIFIED.md](./ADMIN_PORTAL_SIMPLIFIED.md)** - **START HERE** - Practical, contest-centric workflow guide:
|
|
240
|
+
- League → Contest → Link workflow
|
|
241
|
+
- New contest-specific endpoint: `GET /contests/:router_contest_id/available-raw/:partner_id`
|
|
242
|
+
- Simple UI layouts
|
|
243
|
+
- Recommended implementation order
|
|
244
|
+
|
|
245
|
+
**📖 [ADMIN_PORTAL.md](./ADMIN_PORTAL.md)** - Complete reference guide with:
|
|
246
|
+
- Architecture diagrams and deep-dive explanations
|
|
247
|
+
- All entities (leagues, contests, participants, markets)
|
|
248
|
+
- Complete endpoint reference
|
|
249
|
+
- Advanced features and patterns
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# BettorEdge Charts Library
|
|
2
|
+
|
|
3
|
+
Beautiful, cross-platform charting library for React Native (iOS/Android) and Web.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ✨ Stunning visuals with gradients and smooth animations
|
|
8
|
+
- 📱 Works on iOS, Android, and Web (react-native-web)
|
|
9
|
+
- 🎨 Customizable themes and colors
|
|
10
|
+
- 📊 Live updates for real-time data
|
|
11
|
+
- 🎯 Interactive tooltips and click handlers
|
|
12
|
+
- 🔄 Data adapter layer for easy integration
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
Dependencies are already installed in this project:
|
|
17
|
+
- `react-native-gifted-charts` (for React Native)
|
|
18
|
+
- `react-gifted-charts` (for Web)
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### 1. Basic Usage
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { LivePriceChart, TradeChartAdapter } from '../Charts';
|
|
26
|
+
|
|
27
|
+
// Your trade data
|
|
28
|
+
const trades = [
|
|
29
|
+
{ timestamp: 1704067200000, price: 0.40, side: 'away' },
|
|
30
|
+
{ timestamp: 1704067260000, price: 0.42, side: 'away' },
|
|
31
|
+
{ timestamp: 1704067320000, price: 0.45, side: 'away' },
|
|
32
|
+
{ timestamp: 1704067200000, price: 0.55, side: 'home' },
|
|
33
|
+
{ timestamp: 1704067260000, price: 0.53, side: 'home' },
|
|
34
|
+
{ timestamp: 1704067320000, price: 0.50, side: 'home' },
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
// Convert to chart format
|
|
38
|
+
const chartData = TradeChartAdapter.toTimeSeriesData(trades, {
|
|
39
|
+
gradient: true,
|
|
40
|
+
curved: true,
|
|
41
|
+
showDataPoints: false,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Render chart
|
|
45
|
+
<LivePriceChart
|
|
46
|
+
data={chartData}
|
|
47
|
+
height={300}
|
|
48
|
+
animated={true}
|
|
49
|
+
showTooltip={true}
|
|
50
|
+
showLegend={true}
|
|
51
|
+
/>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. Live Updates
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { useState, useEffect } from 'react';
|
|
58
|
+
import { LivePriceChart, TradeChartAdapter, Trade } from '../Charts';
|
|
59
|
+
|
|
60
|
+
const MarketDetailPage = () => {
|
|
61
|
+
const [trades, setTrades] = useState<Trade[]>([]);
|
|
62
|
+
const [chartData, setChartData] = useState([]);
|
|
63
|
+
|
|
64
|
+
// Initial load
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
const initialTrades = fetchInitialTrades(); // Your data fetching
|
|
67
|
+
const data = TradeChartAdapter.toTimeSeriesData(initialTrades);
|
|
68
|
+
setChartData(data);
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
// Subscribe to new trades
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
const handleNewTrade = (newTrade: Trade) => {
|
|
74
|
+
setChartData(prev =>
|
|
75
|
+
TradeChartAdapter.appendTrade(prev, newTrade, 100) // Keep last 100 points
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const unsubscribe = subscribeToTrades(handleNewTrade); // Your WebSocket/polling
|
|
80
|
+
return () => unsubscribe();
|
|
81
|
+
}, []);
|
|
82
|
+
|
|
83
|
+
return (
|
|
84
|
+
<View>
|
|
85
|
+
<Text>Live Market Prices</Text>
|
|
86
|
+
<LivePriceChart
|
|
87
|
+
data={chartData}
|
|
88
|
+
height={300}
|
|
89
|
+
animated={true}
|
|
90
|
+
showTooltip={true}
|
|
91
|
+
onPointPress={(point, series) => {
|
|
92
|
+
console.log(`${series} price: ${point.value} at ${new Date(point.timestamp)}`);
|
|
93
|
+
}}
|
|
94
|
+
/>
|
|
95
|
+
</View>
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 3. Custom Styling
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import {
|
|
104
|
+
LivePriceChart,
|
|
105
|
+
TradeChartAdapter,
|
|
106
|
+
defaultChartTheme,
|
|
107
|
+
lineChartStyles,
|
|
108
|
+
} from '../Charts';
|
|
109
|
+
|
|
110
|
+
const chartData = TradeChartAdapter.toTimeSeriesData(trades, {
|
|
111
|
+
gradient: true,
|
|
112
|
+
curved: true,
|
|
113
|
+
showDataPoints: true,
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// Override colors
|
|
117
|
+
chartData[0].color = '#FF0000'; // Custom away color
|
|
118
|
+
chartData[1].color = '#0000FF'; // Custom home color
|
|
119
|
+
|
|
120
|
+
<LivePriceChart
|
|
121
|
+
data={chartData}
|
|
122
|
+
height={350}
|
|
123
|
+
animated={true}
|
|
124
|
+
showLegend={true}
|
|
125
|
+
yAxisPrefix=""
|
|
126
|
+
yAxisSuffix=""
|
|
127
|
+
yAxisLabelCount={8}
|
|
128
|
+
xAxisLabelCount={6}
|
|
129
|
+
/>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 4. Time Range Filtering
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
const now = Date.now();
|
|
136
|
+
const oneHourAgo = now - (60 * 60 * 1000);
|
|
137
|
+
|
|
138
|
+
<LivePriceChart
|
|
139
|
+
data={chartData}
|
|
140
|
+
timeRange={{
|
|
141
|
+
start: oneHourAgo,
|
|
142
|
+
end: now,
|
|
143
|
+
}}
|
|
144
|
+
height={300}
|
|
145
|
+
/>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Data Adapter
|
|
149
|
+
|
|
150
|
+
The `TradeChartAdapter` is the middle layer that converts your trade data to chart format.
|
|
151
|
+
|
|
152
|
+
### Trade Interface
|
|
153
|
+
|
|
154
|
+
Define your trade type to match this interface:
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
interface Trade {
|
|
158
|
+
timestamp: number; // Unix timestamp in milliseconds
|
|
159
|
+
price: number; // Price/odds value (e.g., 0.40, 0.55)
|
|
160
|
+
side: 'away' | 'home'; // Which side of the market
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Adapter Methods
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
// Convert trades to chart data
|
|
168
|
+
const chartData = TradeChartAdapter.toTimeSeriesData(trades, options);
|
|
169
|
+
|
|
170
|
+
// Append new trade (for live updates)
|
|
171
|
+
const updated = TradeChartAdapter.appendTrade(existingData, newTrade);
|
|
172
|
+
|
|
173
|
+
// Filter by time range
|
|
174
|
+
const filtered = TradeChartAdapter.filterByTimeRange(trades, startTime, endTime);
|
|
175
|
+
|
|
176
|
+
// Get statistics
|
|
177
|
+
const stats = TradeChartAdapter.getStats(trades);
|
|
178
|
+
// Returns: { min, max, avg, latest, change }
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Components
|
|
182
|
+
|
|
183
|
+
### LivePriceChart
|
|
184
|
+
|
|
185
|
+
Main chart component for showing away/home prices over time.
|
|
186
|
+
|
|
187
|
+
**Props:**
|
|
188
|
+
- `data` - Array of TimeSeriesData (from adapter)
|
|
189
|
+
- `height` - Chart height in pixels (default: 300)
|
|
190
|
+
- `width` - Chart width (default: full width)
|
|
191
|
+
- `animated` - Enable animations (default: true)
|
|
192
|
+
- `showTooltip` - Show tooltips on press/hover (default: true)
|
|
193
|
+
- `showLegend` - Show legend with current prices (default: true)
|
|
194
|
+
- `yAxisPrefix` - Prefix for Y-axis labels (e.g., "$")
|
|
195
|
+
- `yAxisSuffix` - Suffix for Y-axis labels (e.g., "%")
|
|
196
|
+
- `timeRange` - Filter data by time range
|
|
197
|
+
- `onPointPress` - Callback when user presses a point
|
|
198
|
+
|
|
199
|
+
### BaseLineChart
|
|
200
|
+
|
|
201
|
+
Lower-level chart component for custom use cases.
|
|
202
|
+
|
|
203
|
+
## Themes
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import {
|
|
207
|
+
defaultChartTheme,
|
|
208
|
+
darkChartTheme,
|
|
209
|
+
gradients,
|
|
210
|
+
getAwayHomeGradients,
|
|
211
|
+
} from '../Charts';
|
|
212
|
+
|
|
213
|
+
// Use default colors
|
|
214
|
+
const colors = defaultChartTheme;
|
|
215
|
+
|
|
216
|
+
// Or dark theme
|
|
217
|
+
const darkColors = darkChartTheme;
|
|
218
|
+
|
|
219
|
+
// Get away/home gradients
|
|
220
|
+
const awayHomeGradients = getAwayHomeGradients();
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Utilities
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
import {
|
|
227
|
+
formatTime,
|
|
228
|
+
formatDate,
|
|
229
|
+
formatPrice,
|
|
230
|
+
formatCurrency,
|
|
231
|
+
formatPercentage,
|
|
232
|
+
getSmartTimeLabel,
|
|
233
|
+
calculateNiceYBounds,
|
|
234
|
+
} from '../Charts';
|
|
235
|
+
|
|
236
|
+
// Format timestamp to "3:45 PM"
|
|
237
|
+
const timeStr = formatTime(timestamp, 'medium');
|
|
238
|
+
|
|
239
|
+
// Format timestamp to "Jan 15"
|
|
240
|
+
const dateStr = formatDate(timestamp, 'medium');
|
|
241
|
+
|
|
242
|
+
// Format price to "0.42"
|
|
243
|
+
const priceStr = formatPrice(0.423, 2);
|
|
244
|
+
|
|
245
|
+
// Smart label based on data range
|
|
246
|
+
const label = getSmartTimeLabel(timestamp, minTime, maxTime);
|
|
247
|
+
|
|
248
|
+
// Calculate nice Y-axis bounds
|
|
249
|
+
const { min, max } = calculateNiceYBounds([0.40, 0.42, 0.45]);
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Architecture
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
Charts/
|
|
256
|
+
├── components/ # React components
|
|
257
|
+
│ ├── LivePriceChart.tsx # Main chart for away/home prices
|
|
258
|
+
│ └── BaseLineChart.tsx # Low-level chart wrapper
|
|
259
|
+
├── adapters/ # Data transformation layer
|
|
260
|
+
│ └── TradeChartAdapter.ts # Converts trades → chart data
|
|
261
|
+
├── themes/ # Colors and styling
|
|
262
|
+
│ └── chartTheme.ts # Theme configuration
|
|
263
|
+
├── utils/ # Helper functions
|
|
264
|
+
│ └── formatters.ts # Date/price formatters
|
|
265
|
+
├── types.ts # TypeScript interfaces
|
|
266
|
+
└── index.tsx # Public exports
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Extending
|
|
270
|
+
|
|
271
|
+
### Adding New Chart Types
|
|
272
|
+
|
|
273
|
+
1. Create new component in `components/`
|
|
274
|
+
2. Use `BaseLineChart` or create custom implementation
|
|
275
|
+
3. Export from `index.tsx`
|
|
276
|
+
|
|
277
|
+
### Custom Data Adapters
|
|
278
|
+
|
|
279
|
+
Create adapter for your specific data type:
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
export class CustomDataAdapter {
|
|
283
|
+
static toTimeSeriesData(customData: YourType[]): TimeSeriesData[] {
|
|
284
|
+
// Your transformation logic
|
|
285
|
+
return transformedData;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Performance Tips
|
|
291
|
+
|
|
292
|
+
- Limit data points with `maxPoints` option (default: 100)
|
|
293
|
+
- Use `smoothing: true` to reduce noise
|
|
294
|
+
- Disable animations on very frequent updates
|
|
295
|
+
- Filter data by time range before passing to chart
|
|
296
|
+
|
|
297
|
+
## Troubleshooting
|
|
298
|
+
|
|
299
|
+
### Chart not rendering on web
|
|
300
|
+
- Make sure `react-gifted-charts` is installed
|
|
301
|
+
- Check that Platform.OS === 'web' is correctly detected
|
|
302
|
+
|
|
303
|
+
### Performance issues with many points
|
|
304
|
+
- Use `maxPoints` option in adapter
|
|
305
|
+
- Enable smoothing to reduce data points
|
|
306
|
+
- Consider pagination/windowing for historical data
|
|
307
|
+
|
|
308
|
+
## License
|
|
309
|
+
|
|
310
|
+
Part of the BettorEdge be-components module.
|
|
@@ -24,8 +24,6 @@ const ScheduleNotification = ({
|
|
|
24
24
|
}) => {
|
|
25
25
|
const Colors = (0, _useColors.useColors)();
|
|
26
26
|
const [loading, setLoading] = (0, _react.useState)(false);
|
|
27
|
-
const [loadingGroups, setLoadingGroups] = (0, _react.useState)(false);
|
|
28
|
-
const [groups, setGroups] = (0, _react.useState)([]);
|
|
29
27
|
const [selectedGroup, setSelectedGroup] = (0, _react.useState)(null);
|
|
30
28
|
const [showGroupSelector, setShowGroupSelector] = (0, _react.useState)(false);
|
|
31
29
|
const [scheduledTime, setScheduledTime] = (0, _react.useState)((0, _momentMini.default)().add(1, 'hour')); // 1 hour from now
|
|
@@ -53,8 +51,6 @@ const ScheduleNotification = ({
|
|
|
53
51
|
}
|
|
54
52
|
});
|
|
55
53
|
(0, _react.useEffect)(() => {
|
|
56
|
-
loadGroups();
|
|
57
|
-
|
|
58
54
|
// If editing a job, populate the form
|
|
59
55
|
if (editingJob) {
|
|
60
56
|
setNotification(editingJob.notification);
|
|
@@ -62,12 +58,6 @@ const ScheduleNotification = ({
|
|
|
62
58
|
loadGroupForJob(editingJob.notification_group_id);
|
|
63
59
|
}
|
|
64
60
|
}, [editingJob]);
|
|
65
|
-
const loadGroups = async () => {
|
|
66
|
-
setLoadingGroups(true);
|
|
67
|
-
const activeGroups = await _api.NotificationApi.getActiveNotificationGroups();
|
|
68
|
-
setGroups(activeGroups);
|
|
69
|
-
setLoadingGroups(false);
|
|
70
|
-
};
|
|
71
61
|
const loadGroupForJob = async groupId => {
|
|
72
62
|
const group = await _api.NotificationApi.getNotificationGroupById(groupId);
|
|
73
63
|
if (group) {
|
|
@@ -271,10 +261,7 @@ const ScheduleNotification = ({
|
|
|
271
261
|
}
|
|
272
262
|
}, selectedGroup ? `${selectedGroup.player_count} users in group` : 'No group selected')), /*#__PURE__*/_react.default.createElement(_Themed.Button, {
|
|
273
263
|
type: "action",
|
|
274
|
-
onPress: () =>
|
|
275
|
-
loadGroups();
|
|
276
|
-
setShowGroupSelector(true);
|
|
277
|
-
},
|
|
264
|
+
onPress: () => setShowGroupSelector(true),
|
|
278
265
|
style: {
|
|
279
266
|
padding: 8
|
|
280
267
|
}
|
|
@@ -396,8 +383,6 @@ const ScheduleNotification = ({
|
|
|
396
383
|
visible: showGroupSelector,
|
|
397
384
|
onClose: () => setShowGroupSelector(false),
|
|
398
385
|
onSelectGroup: handleSelectGroup,
|
|
399
|
-
groups: groups,
|
|
400
|
-
loading: loadingGroups,
|
|
401
386
|
selectedGroup: selectedGroup,
|
|
402
387
|
showCustomOption: false,
|
|
403
388
|
onFocusPosition: onFocusPosition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Themed","_useColors","_api","_ConfirmAlert","_Components","_NotificationBuilderForm","_interopRequireDefault","_GroupSelector","_BETimePicker","_momentMini","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScheduleNotification","onFocusPosition","editingJob","onJobSaved","Colors","useColors","loading","setLoading","useState","loadingGroups","setLoadingGroups","groups","setGroups","selectedGroup","setSelectedGroup","showGroupSelector","setShowGroupSelector","scheduledTime","setScheduledTime","moment","add","notification","setNotification","type","notify_body_type","title","body","status","expire_time","options","id","icon","data","player_id","pageStack","page","pageParams","path_name","params","useEffect","loadGroups","scheduled_time","loadGroupForJob","notification_group_id","activeGroups","NotificationApi","getActiveNotificationGroups","groupId","group","getNotificationGroupById","handleSelectGroup","validateNotification","errors","trim","push","isSameOrBefore","path","NotificationHelpers","app_paths","find","p","requiredParams","missingParams","filter","param","length","join","valid","handleSaveDraft","validation","alert","jobData","toISOString","updateNotificationJob","createNotificationJob","resetForm","error","console","handleSchedule","showConfirmAlert","name","player_count","format","jobId","notification_job_id","newJob","finalizeNotificationJob","createElement","View","style","flex","flexDirection","alignItems","padding","transparent","Text","theme","marginTop","ScrollView","float","margin","justifyContent","marginBottom","Button","onPress","color","text","white","borderRadius","description","Icons","CloseIcon","size","selected_time","onSelectTime","onChange","showPreview","showType","marginRight","disabled","marginHorizontal","ActivityIndicator","Fragment","CheckIcon","marginLeft","SendIcon","visible","onClose","onSelectGroup","showCustomOption","_default","exports"],"sourceRoot":"../../../../src","sources":["NotificationManager/components/ScheduleNotification.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,wBAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,cAAA,GAAAD,sBAAA,CAAAR,OAAA;AACA,IAAAU,aAAA,GAAAF,sBAAA,CAAAR,OAAA;AACA,IAAAW,WAAA,GAAAH,sBAAA,CAAAR,OAAA;AAAiC,SAAAQ,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAjB,uBAAA,YAAAA,CAAAa,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AASjC,MAAMgB,oBAAoB,GAAGA,CAAC;EAAEC,eAAe;EAAEC,UAAU;EAAEC;AAAsC,CAAC,KAAK;EACrG,MAAMC,MAAM,GAAG,IAAAC,oBAAS,EAAC,CAAC;EAC1B,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACzD,MAAM,CAACG,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAJ,eAAQ,EAA2B,EAAE,CAAC;EAClE,MAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAN,eAAQ,EAAgC,IAAI,CAAC;EACvF,MAAM,CAACO,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAR,eAAQ,EAAC,KAAK,CAAC;EACjE,MAAM,CAACS,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAV,eAAQ,EAAC,IAAAW,mBAAM,EAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;EAC7E,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAd,eAAQ,EAAmC;IAC/Ee,IAAI,EAAE,qBAAqB;IAC3BC,gBAAgB,EAAE,QAAQ;IAC1BC,KAAK,EAAE,EAAE;IACTC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE,QAAQ;IAChBC,WAAW,EAAE,CAAC;IACdC,OAAO,EAAE;MACLC,EAAE,EAAE,EAAE;MACNJ,IAAI,EAAE,EAAE;MACRK,IAAI,EAAE,EAAE;MACRR,IAAI,EAAE,EAAE;MACRS,IAAI,EAAE;QACFF,EAAE,EAAE,EAAE;QACNG,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE,WAAW;QACtBC,IAAI,EAAE,EAAE;QACRC,UAAU,EAAE,CAAC,CAAC;QACdC,SAAS,EAAE,EAAE;QACbC,MAAM,EAAE,CAAC;MACb;IACJ;EACJ,CAAC,CAAC;EAEF,IAAAC,gBAAS,EAAC,MAAM;IACZC,UAAU,CAAC,CAAC;;IAEZ;IACA,IAAItC,UAAU,EAAE;MACZoB,eAAe,CAACpB,UAAU,CAACmB,YAAY,CAAC;MACxCH,gBAAgB,CAAC,IAAAC,mBAAM,EAACjB,UAAU,CAACuC,cAAc,CAAC,CAAC;MACnDC,eAAe,CAACxC,UAAU,CAACyC,qBAAqB,CAAC;IACrD;EACJ,CAAC,EAAE,CAACzC,UAAU,CAAC,CAAC;EAEhB,MAAMsC,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC3B9B,gBAAgB,CAAC,IAAI,CAAC;IACtB,MAAMkC,YAAY,GAAG,MAAMC,oBAAe,CAACC,2BAA2B,CAAC,CAAC;IACxElC,SAAS,CAACgC,YAAY,CAAC;IACvBlC,gBAAgB,CAAC,KAAK,CAAC;EAC3B,CAAC;EAED,MAAMgC,eAAe,GAAG,MAAOK,OAAe,IAAK;IAC/C,MAAMC,KAAK,GAAG,MAAMH,oBAAe,CAACI,wBAAwB,CAACF,OAAO,CAAC;IACrE,IAAIC,KAAK,EAAE;MACPlC,gBAAgB,CAACkC,KAAK,CAAC;IAC3B;EACJ,CAAC;EAED,MAAME,iBAAiB,GAAIF,KAA6B,IAAK;IACzDlC,gBAAgB,CAACkC,KAAK,CAAC;EAC3B,CAAC;EAED,MAAMG,oBAAoB,GAAGA,CAAA,KAA4C;IACrE,MAAMC,MAAgB,GAAG,EAAE;IAE3B,IAAI,CAAC/B,YAAY,CAACI,KAAK,EAAE4B,IAAI,CAAC,CAAC,EAAE;MAC7BD,MAAM,CAACE,IAAI,CAAC,gCAAgC,CAAC;IACjD;IAEA,IAAI,CAACjC,YAAY,CAACK,IAAI,EAAE2B,IAAI,CAAC,CAAC,EAAE;MAC5BD,MAAM,CAACE,IAAI,CAAC,+BAA+B,CAAC;IAChD;IAEA,IAAI,CAACzC,aAAa,EAAE;MAChBuC,MAAM,CAACE,IAAI,CAAC,iCAAiC,CAAC;IAClD;IAEA,IAAIrC,aAAa,CAACsC,cAAc,CAAC,IAAApC,mBAAM,EAAC,CAAC,CAAC,EAAE;MACxCiC,MAAM,CAACE,IAAI,CAAC,sCAAsC,CAAC;IACvD;;IAEA;IACA,IAAIjC,YAAY,CAACQ,OAAO,EAAEG,IAAI,EAAEK,SAAS,EAAE;MACvC,MAAMmB,IAAI,GAAGC,wBAAmB,CAACC,SAAS,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACvB,SAAS,KAAKhB,YAAY,CAACQ,OAAO,EAAEG,IAAI,EAAEK,SAAS,CAAC;MAC3G,IAAImB,IAAI,EAAEK,cAAc,EAAE;QACtB,MAAMvB,MAAM,GAAGjB,YAAY,CAACQ,OAAO,CAACG,IAAI,CAACM,MAAM,IAAI,CAAC,CAAC;QACrD,MAAMwB,aAAa,GAAGN,IAAI,CAACK,cAAc,CAACE,MAAM,CAACC,KAAK,IAAI,CAAC1B,MAAM,CAAC0B,KAAK,CAAC,CAAC;QACzE,IAAIF,aAAa,CAACG,MAAM,GAAG,CAAC,EAAE;UAC1Bb,MAAM,CAACE,IAAI,CAAC,gCAAgCQ,aAAa,CAACI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E;MACJ;IACJ;IAEA,OAAO;MACHC,KAAK,EAAEf,MAAM,CAACa,MAAM,KAAK,CAAC;MAC1Bb;IACJ,CAAC;EACL,CAAC;EAED,MAAMgB,eAAe,GAAG,MAAAA,CAAA,KAAY;IAChC,MAAMC,UAAU,GAAGlB,oBAAoB,CAAC,CAAC;IACzC,IAAI,CAACkB,UAAU,CAACF,KAAK,EAAE;MACnBG,KAAK,CAAC,mBAAmBD,UAAU,CAACjB,MAAM,CAACc,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;MACxD;IACJ;IAEA,IAAI;MACA3D,UAAU,CAAC,IAAI,CAAC;MAEhB,MAAMgE,OAAO,GAAG;QACZ5B,qBAAqB,EAAE9B,aAAa,CAAE8B,qBAAqB;QAC3DtB,YAAY,EAAEA,YAAuC;QACrDoB,cAAc,EAAExB,aAAa,CAACuD,WAAW,CAAC,CAAC;QAC3C7C,MAAM,EAAE;MACZ,CAAC;MAED,IAAIzB,UAAU,EAAE;QACZ;QACA,MAAM2C,oBAAe,CAAC4B,qBAAqB,CAAC;UACxC,GAAGvE,UAAU;UACb,GAAGqE;QACP,CAAC,CAAC;QACFD,KAAK,CAAC,iCAAiC,CAAC;MAC5C,CAAC,MAAM;QACH;QACA,MAAMzB,oBAAe,CAAC6B,qBAAqB,CAACH,OAAO,CAAC;QACpDD,KAAK,CAAC,yDAAyD,CAAC;MACpE;;MAEA;MACAK,SAAS,CAAC,CAAC;MACXxE,UAAU,GAAG,CAAC;IAClB,CAAC,CAAC,OAAOyE,KAAK,EAAE;MACZC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;MAC3CN,KAAK,CAAC,yCAAyC,CAAC;IACpD,CAAC,SAAS;MACN/D,UAAU,CAAC,KAAK,CAAC;IACrB;EACJ,CAAC;EAED,MAAMuE,cAAc,GAAGA,CAAA,KAAM;IACzB,MAAMT,UAAU,GAAGlB,oBAAoB,CAAC,CAAC;IACzC,IAAI,CAACkB,UAAU,CAACF,KAAK,EAAE;MACnBG,KAAK,CAAC,uBAAuBD,UAAU,CAACjB,MAAM,CAACc,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;MAC5D;IACJ;IAEA,IAAAa,8BAAgB,EACZ,uBAAuB,EACvB,qDAAqDlE,aAAa,EAAEmE,IAAI,KAAKnE,aAAa,EAAEoE,YAAY,cAAchE,aAAa,CAACiE,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAC7K,YAAY;MACR,IAAI;QACA3E,UAAU,CAAC,IAAI,CAAC;QAEhB,MAAMgE,OAAO,GAAG;UACZ5B,qBAAqB,EAAE9B,aAAa,CAAE8B,qBAAqB;UAC3DtB,YAAY,EAAEA,YAAuC;UACrDoB,cAAc,EAAExB,aAAa,CAACuD,WAAW,CAAC,CAAC;UAC3C7C,MAAM,EAAE;QACZ,CAAC;QAED,IAAIwD,KAAa;QAEjB,IAAIjF,UAAU,EAAE;UACZ;UACA,MAAM2C,oBAAe,CAAC4B,qBAAqB,CAAC;YACxC,GAAGvE,UAAU;YACb,GAAGqE;UACP,CAAC,CAAC;UACFY,KAAK,GAAGjF,UAAU,CAACkF,mBAAmB;QAC1C,CAAC,MAAM;UACH;UACA,MAAMC,MAAM,GAAG,MAAMxC,oBAAe,CAAC6B,qBAAqB,CAACH,OAAO,CAAC;UACnEY,KAAK,GAAGE,MAAM,CAAED,mBAAmB;QACvC;;QAEA;QACA,MAAMvC,oBAAe,CAACyC,uBAAuB,CAACH,KAAK,CAAC;QAEpDb,KAAK,CAAC,sCAAsC,CAAC;;QAE7C;QACAK,SAAS,CAAC,CAAC;QACXxE,UAAU,GAAG,CAAC;MAClB,CAAC,CAAC,OAAOyE,KAAK,EAAE;QACZC,OAAO,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;QACtDN,KAAK,CAAC,oDAAoD,CAAC;MAC/D,CAAC,SAAS;QACN/D,UAAU,CAAC,KAAK,CAAC;MACrB;IACJ,CACJ,CAAC;EACL,CAAC;EAED,MAAMoE,SAAS,GAAGA,CAAA,KAAM;IACpBrD,eAAe,CAAC;MACZC,IAAI,EAAE,qBAAqB;MAC3BC,gBAAgB,EAAE,QAAQ;MAC1BC,KAAK,EAAE,EAAE;MACTC,IAAI,EAAE,EAAE;MACRC,MAAM,EAAE,QAAQ;MAChBC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE;QACLC,EAAE,EAAE,EAAE;QACNJ,IAAI,EAAE,EAAE;QACRK,IAAI,EAAE,EAAE;QACRR,IAAI,EAAE,EAAE;QACRS,IAAI,EAAE;UACFF,EAAE,EAAE,EAAE;UACNG,SAAS,EAAE,EAAE;UACbC,SAAS,EAAE,WAAW;UACtBC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE,CAAC,CAAC;UACdC,SAAS,EAAE,EAAE;UACbC,MAAM,EAAE,CAAC;QACb;MACJ;IACJ,CAAC,CAAC;IACFxB,gBAAgB,CAAC,IAAI,CAAC;IACtBI,gBAAgB,CAAC,IAAAC,mBAAM,EAAC,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAC7C,CAAC;EAED,oBACIrD,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACC,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE;EAAE,gBAErB3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACjE,IAAI,EAAC,QAAQ;IAACkE,KAAK,EAAE;MAAEE,aAAa,EAAE,KAAK;MAAEC,UAAU,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAG;EAAE,gBACnF9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACM,WAAW;IAACL,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE;EAAE,gBACjC3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC;EAAI,GAAE9F,UAAU,GAAG,6BAA6B,GAAG,uBAA8B,CAAC,eAC9FnC,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,aAAa;IAACP,KAAK,EAAE;MAAEQ,SAAS,EAAE;IAAE;EAAE,GAC7C/F,UAAU,GAAG,4CAA4C,GAAG,8CAC3D,CACJ,CACJ,CAAC,eAEPnC,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACrH,YAAA,CAAAgI,UAAU;IAACT,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE;EAAE,gBAE3B3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACW,KAAK;IAACV,KAAK,EAAE;MAAEW,MAAM,EAAE,EAAE;MAAEP,OAAO,EAAE;IAAG;EAAE,gBAC3C9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACM,WAAW;IAACL,KAAK,EAAE;MAAEE,aAAa,EAAE,KAAK;MAAEC,UAAU,EAAE,QAAQ;MAAES,cAAc,EAAE,eAAe;MAAEC,YAAY,EAAE;IAAG;EAAE,gBACvHvI,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACM,WAAW;IAACL,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE;EAAE,gBACjC3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC;EAAI,GAAC,YAAgB,CAAC,eAClCjI,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,aAAa;IAACP,KAAK,EAAE;MAAEQ,SAAS,EAAE;IAAE;EAAE,GAC7CpF,aAAa,GAAG,GAAGA,aAAa,CAACoE,YAAY,iBAAiB,GAAG,mBAChE,CACJ,CAAC,eACPlH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAoI,MAAM;IACHhF,IAAI,EAAC,QAAQ;IACbiF,OAAO,EAAEA,CAAA,KAAM;MACXhE,UAAU,CAAC,CAAC;MACZxB,oBAAoB,CAAC,IAAI,CAAC;IAC9B,CAAE;IACFyE,KAAK,EAAE;MAAEI,OAAO,EAAE;IAAE;EAAE,gBAEtB9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,IAAI;IAACS,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,GAAC,cAErC,CACF,CACN,CAAC,EAEN9F,aAAa,iBACV9C,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IACDW,KAAK;IACLV,KAAK,EAAE;MACHE,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBS,cAAc,EAAE,eAAe;MAC/BR,OAAO,EAAE,EAAE;MACXe,YAAY,EAAE,CAAC;MACfX,SAAS,EAAE;IACf;EAAE,gBAEFlI,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACM,WAAW;IAACL,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE;EAAE,gBACjC3H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC;EAAI,GAAEnF,aAAa,CAACmE,IAAW,CAAC,eAC5CjH,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,aAAa;IAACP,KAAK,EAAE;MAAEQ,SAAS,EAAE;IAAE;EAAE,GAC7CpF,aAAa,CAACgG,WACb,CACJ,CAAC,eACP9I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAoI,MAAM;IACHhF,IAAI,EAAC,OAAO;IACZiF,OAAO,EAAEA,CAAA,KAAM1F,gBAAgB,CAAC,IAAI,CAAE;IACtC2E,KAAK,EAAE;MAAEI,OAAO,EAAE;IAAE;EAAE,gBAEtB9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAChH,WAAA,CAAAuI,KAAK,CAACC,SAAS;IAACC,IAAI,EAAE,EAAG;IAACP,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,CAAE,CAClD,CACN,CAER,CAAC,eAGP5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACW,KAAK;IAACV,KAAK,EAAE;MAAEW,MAAM,EAAE,EAAE;MAAEP,OAAO,EAAE;IAAG;EAAE,gBAC3C9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,IAAI;IAACP,KAAK,EAAE;MAAEa,YAAY,EAAE;IAAE;EAAE,GAAC,qBAAyB,CAAC,eACvEvI,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAC5G,aAAA,CAAAI,OAAY;IACTkI,aAAa,EAAEhG,aAAc;IAC7BiG,YAAY,EAAEhG;EAAiB,CAClC,CACC,CAAC,eAGPnD,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAC/G,wBAAA,CAAAO,OAAuB;IACpBsC,YAAY,EAAEA,YAAa;IAC3B8F,QAAQ,EAAE7F,eAAgB;IAC1BrB,eAAe,EAAEA,eAAgB;IACjCmH,WAAW,EAAE,IAAK;IAClBC,QAAQ,EAAE;EAAK,CAClB,CACO,CAAC,eAGbtJ,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAqH,IAAI;IAACjE,IAAI,EAAC,QAAQ;IAACkE,KAAK,EAAE;MAAEE,aAAa,EAAE,KAAK;MAAEE,OAAO,EAAE;IAAG;EAAE,gBAC7D9H,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAoI,MAAM;IACHhF,IAAI,EAAC,OAAO;IACZiF,OAAO,EAAE7B,SAAU;IACnBc,KAAK,EAAE;MAAEC,IAAI,EAAE,CAAC;MAAEG,OAAO,EAAE,EAAE;MAAEyB,WAAW,EAAE;IAAE,CAAE;IAChDC,QAAQ,EAAEjH;EAAQ,gBAElBvC,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,IAAI;IAACS,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,GAAC,OAErC,CACF,CAAC,eACT5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAoI,MAAM;IACHhF,IAAI,EAAC,SAAS;IACdiF,OAAO,EAAEpC,eAAgB;IACzBqB,KAAK,EAAE;MAAEC,IAAI,EAAE,CAAC;MAAEG,OAAO,EAAE,EAAE;MAAE2B,gBAAgB,EAAE;IAAE,CAAE;IACrDD,QAAQ,EAAEjH;EAAQ,GAEjBA,OAAO,gBACJvC,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACrH,YAAA,CAAAuJ,iBAAiB;IAACT,IAAI,EAAC,OAAO;IAACP,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,CAAE,CAAC,gBAE5D5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAAxH,MAAA,CAAAgB,OAAA,CAAA2I,QAAA,qBACI3J,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAChH,WAAA,CAAAuI,KAAK,CAACa,SAAS;IAACX,IAAI,EAAE,EAAG;IAACP,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,CAAE,CAAC,eACvD5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,IAAI;IAACS,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC,KAAM;IAAClB,KAAK,EAAE;MAAEmC,UAAU,EAAE;IAAE;EAAE,GAAC,YAE/D,CACR,CAEF,CAAC,eACT7J,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAAoI,MAAM;IACHhF,IAAI,EAAC,QAAQ;IACbiF,OAAO,EAAE1B,cAAe;IACxBW,KAAK,EAAE;MAAEC,IAAI,EAAE,CAAC;MAAEG,OAAO,EAAE,EAAE;MAAE+B,UAAU,EAAE;IAAE,CAAE;IAC/CL,QAAQ,EAAEjH;EAAQ,GAEjBA,OAAO,gBACJvC,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACrH,YAAA,CAAAuJ,iBAAiB;IAACT,IAAI,EAAC,OAAO;IAACP,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,CAAE,CAAC,gBAE5D5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAAxH,MAAA,CAAAgB,OAAA,CAAA2I,QAAA,qBACI3J,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAChH,WAAA,CAAAuI,KAAK,CAACe,QAAQ;IAACb,IAAI,EAAE,EAAG;IAACP,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC;EAAM,CAAE,CAAC,eACtD5I,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAACpH,OAAA,CAAA4H,IAAI;IAACC,KAAK,EAAC,IAAI;IAACS,KAAK,EAAErG,MAAM,CAACsG,IAAI,CAACC,KAAM;IAAClB,KAAK,EAAE;MAAEmC,UAAU,EAAE;IAAE;EAAE,GAAC,UAE/D,CACR,CAEF,CACN,CAAC,eAGP7J,MAAA,CAAAgB,OAAA,CAAAwG,aAAA,CAAC7G,cAAA,CAAAK,OAAa;IACV+I,OAAO,EAAE/G,iBAAkB;IAC3BgH,OAAO,EAAEA,CAAA,KAAM/G,oBAAoB,CAAC,KAAK,CAAE;IAC3CgH,aAAa,EAAE9E,iBAAkB;IACjCvC,MAAM,EAAEA,MAAO;IACfL,OAAO,EAAEG,aAAc;IACvBI,aAAa,EAAEA,aAAc;IAC7BoH,gBAAgB,EAAE,KAAM;IACxBhI,eAAe,EAAEA;EAAgB,CACpC,CACC,CAAC;AAEf,CAAC;AAAC,IAAAiI,QAAA,GAAAC,OAAA,CAAApJ,OAAA,GAEaiB,oBAAoB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Themed","_useColors","_api","_ConfirmAlert","_Components","_NotificationBuilderForm","_interopRequireDefault","_GroupSelector","_BETimePicker","_momentMini","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScheduleNotification","onFocusPosition","editingJob","onJobSaved","Colors","useColors","loading","setLoading","useState","selectedGroup","setSelectedGroup","showGroupSelector","setShowGroupSelector","scheduledTime","setScheduledTime","moment","add","notification","setNotification","type","notify_body_type","title","body","status","expire_time","options","id","icon","data","player_id","pageStack","page","pageParams","path_name","params","useEffect","scheduled_time","loadGroupForJob","notification_group_id","groupId","group","NotificationApi","getNotificationGroupById","handleSelectGroup","validateNotification","errors","trim","push","isSameOrBefore","path","NotificationHelpers","app_paths","find","p","requiredParams","missingParams","filter","param","length","join","valid","handleSaveDraft","validation","alert","jobData","toISOString","updateNotificationJob","createNotificationJob","resetForm","error","console","handleSchedule","showConfirmAlert","name","player_count","format","jobId","notification_job_id","newJob","finalizeNotificationJob","createElement","View","style","flex","flexDirection","alignItems","padding","transparent","Text","theme","marginTop","ScrollView","float","margin","justifyContent","marginBottom","Button","onPress","color","text","white","borderRadius","description","Icons","CloseIcon","size","selected_time","onSelectTime","onChange","showPreview","showType","marginRight","disabled","marginHorizontal","ActivityIndicator","Fragment","CheckIcon","marginLeft","SendIcon","visible","onClose","onSelectGroup","showCustomOption","_default","exports"],"sourceRoot":"../../../../src","sources":["NotificationManager/components/ScheduleNotification.tsx"],"mappings":"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","ignoreList":[]}
|