@mirai/core 0.4.414 → 0.4.415
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/AGENTS.md +295 -0
- package/build/Core.provider.js +2 -6
- package/build/Core.provider.js.map +1 -1
- package/build/components/BannerLoyalty/BannerLoyalty.js +0 -16
- package/build/components/BannerLoyalty/BannerLoyalty.js.map +1 -1
- package/build/components/Booking/Booking.js +0 -5
- package/build/components/Booking/Booking.js.map +1 -1
- package/build/components/Chat/Chat.js +0 -4
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/Checkout/Checkout.js +13 -53
- package/build/components/Checkout/Checkout.js.map +1 -1
- package/build/components/Checkout/helpers/getFieldProps.js +1 -10
- package/build/components/Checkout/helpers/getFieldProps.js.map +1 -1
- package/build/components/Checkout/partials/Checkout.Confirmation.js +4 -63
- package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
- package/build/components/Checkout/partials/Checkout.Form.js +0 -6
- package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
- package/build/components/Finder/Finder.js +1 -16
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Header/Header.js +0 -8
- package/build/components/Header/Header.js.map +1 -1
- package/build/components/Rates/Rates.Footer.js +0 -1
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.RoomSelector.js +0 -4
- package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +0 -31
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.js +13 -65
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js +1 -8
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.js +0 -29
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Preview.js +0 -6
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +2 -16
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalCancellationInfo/ModalCancellationInfo.js +1 -8
- package/build/components/Rates/components/Item/components/ModalCancellationInfo/ModalCancellationInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +0 -4
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalOfferInfo/ModalOfferInfo.js +0 -5
- package/build/components/Rates/components/Item/components/ModalOfferInfo/ModalOfferInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js +1 -20
- package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js.map +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +1 -7
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
- package/build/components/Rates/components/Item/components/Slider/Slider.js +1 -8
- package/build/components/Rates/components/Item/components/Slider/Slider.js.map +1 -1
- package/build/components/Rates/components/ModalClubRate/ModalClubRate.js +0 -11
- package/build/components/Rates/components/ModalClubRate/ModalClubRate.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/Extras.js +0 -13
- package/build/components/Rates/components/ModalExtras/Extras.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/ModalExtras.js +4 -21
- package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
- package/build/components/Rates/components/ModalMapView/ModalMapView.js +2 -9
- package/build/components/Rates/components/ModalMapView/ModalMapView.js.map +1 -1
- package/build/components/Rates/components/ModalTwin/ModalTwin.js +1 -28
- package/build/components/Rates/components/ModalTwin/ModalTwin.js.map +1 -1
- package/build/components/Rates/components/OTAPrices/OTAPrices.js +0 -21
- package/build/components/Rates/components/OTAPrices/OTAPrices.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js +0 -37
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/Session/Session.Login.Modal.js +0 -9
- package/build/components/Session/Session.Login.Modal.js.map +1 -1
- package/build/components/__shared__/BookingDetails/BookingDetails.js +0 -5
- package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
- package/build/components/__shared__/BookingSummary/BookingSummary.js +0 -7
- package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
- package/build/components/__shared__/BookingTable/BookingTable.js +0 -11
- package/build/components/__shared__/BookingTable/BookingTable.js.map +1 -1
- package/build/components/__shared__/BookingTerms/BookingTerms.js +0 -17
- package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
- package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js +1 -27
- package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js.map +1 -1
- package/build/components/__shared__/Payment/Payment.js +1 -18
- package/build/components/__shared__/Payment/Payment.js.map +1 -1
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +1 -7
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
- package/build/components/helpers/getRatesUrl.js +4 -0
- package/build/components/helpers/getRatesUrl.js.map +1 -1
- package/build/contexts/PerformanceManager/PerformanceManager.js +16 -36
- package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
- package/build/index.js +6 -4
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/build/services/AnnaService.js +0 -41
- package/build/services/AnnaService.js.map +0 -1
- package/build/services/index.js +0 -10
- package/build/services/index.js.map +0 -1
package/AGENTS.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
@mirai/core is a React component library and provider system for hotel booking interfaces. It provides a complete suite of components for finding, booking, and managing hotel reservations including rates display, checkout flows, user sessions, and promotional deals. The library uses React hooks, CSS modules, and a centralized event system for component communication.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Core Provider → Event Manager → Components → Services → External APIs
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- Core provider wraps the application with shared context and configuration
|
|
14
|
+
- Event-driven architecture for component communication via EventManager
|
|
15
|
+
- Automatic performance monitoring and error tracking
|
|
16
|
+
- CSS modules for scoped styling with theming support
|
|
17
|
+
- PropTypes for runtime type checking
|
|
18
|
+
|
|
19
|
+
## Build and Test Commands
|
|
20
|
+
|
|
21
|
+
### Quick Start
|
|
22
|
+
```bash
|
|
23
|
+
# Install dependencies
|
|
24
|
+
yarn install
|
|
25
|
+
|
|
26
|
+
# Start development environment
|
|
27
|
+
yarn start
|
|
28
|
+
|
|
29
|
+
# Run unit tests (Jest)
|
|
30
|
+
yarn test
|
|
31
|
+
|
|
32
|
+
# Run E2E tests (Playwright)
|
|
33
|
+
yarn test:e2e
|
|
34
|
+
|
|
35
|
+
# Build for production
|
|
36
|
+
yarn build:npm
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Development Commands
|
|
40
|
+
|
|
41
|
+
#### Testing
|
|
42
|
+
```bash
|
|
43
|
+
yarn test # All unit tests with Jest
|
|
44
|
+
yarn test:watch # Watch mode for unit tests
|
|
45
|
+
yarn test:e2e # Playwright E2E tests with UI
|
|
46
|
+
yarn pipeline # Lint + test (CI pipeline)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### Linting & Validation
|
|
50
|
+
```bash
|
|
51
|
+
yarn lint # ESLint check (MUST pass before commit)
|
|
52
|
+
yarn lint:fix # Auto-fix linting issues
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Code Style Guidelines
|
|
56
|
+
|
|
57
|
+
### CRITICAL: No Comments Policy
|
|
58
|
+
**ABSOLUTE RULE**: This codebase uses @mirai/eslint which FORBIDS all comments. Write self-documenting code only.
|
|
59
|
+
|
|
60
|
+
```javascript
|
|
61
|
+
// ❌ FORBIDDEN - Will fail ESLint
|
|
62
|
+
// This component renders booking rates
|
|
63
|
+
|
|
64
|
+
// ✅ REQUIRED - Self-documenting code
|
|
65
|
+
const BookingRatesDisplay = ({ rates, onRateSelect }) => {
|
|
66
|
+
return renderRateOptions({ rates, onRateSelect });
|
|
67
|
+
};
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Import Order
|
|
71
|
+
1. External packages (npm dependencies)
|
|
72
|
+
2. @mirai scoped packages
|
|
73
|
+
3. Relative imports (../components, ../helpers)
|
|
74
|
+
4. Local imports (./utils, ./constants)
|
|
75
|
+
|
|
76
|
+
Each group separated by newline and alphabetically sorted:
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
import React, { useState, useEffect } from 'react';
|
|
80
|
+
import PropTypes from 'prop-types';
|
|
81
|
+
|
|
82
|
+
import { Event } from '@mirai/event-manager';
|
|
83
|
+
|
|
84
|
+
import { fetchConfig } from '../helpers';
|
|
85
|
+
|
|
86
|
+
import { BOOKING_STATES } from './booking.constants';
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Component Standards
|
|
90
|
+
- **Functional Components**: Always use React hooks over class components
|
|
91
|
+
- **PropTypes**: Required for all props with detailed shape definitions
|
|
92
|
+
- **CSS Modules**: Use `.module.css` files for component-specific styles
|
|
93
|
+
- **Event Communication**: Use Event.publish/subscribe for component communication
|
|
94
|
+
- **Error Boundaries**: Wrap components that might fail in Core.Error
|
|
95
|
+
- **Performance**: Use React.memo for expensive components
|
|
96
|
+
|
|
97
|
+
### File Naming Conventions
|
|
98
|
+
- Components: PascalCase directories with index files (`Finder/index.jsx`)
|
|
99
|
+
- Styles: `{Component}.module.css`
|
|
100
|
+
- Constants: `{component}.constants.js`
|
|
101
|
+
- Tests: `{Component}.test.jsx` (unit), `{component}.spec.js` (E2E)
|
|
102
|
+
- Workflows: `{action}.workflow.js` (Playwright helpers)
|
|
103
|
+
|
|
104
|
+
### Formatting
|
|
105
|
+
- Prettier: 2 spaces, single quotes, trailing commas, 120 char width
|
|
106
|
+
- Destructure props and imports
|
|
107
|
+
- Early returns for validation
|
|
108
|
+
- Template literals over string concatenation
|
|
109
|
+
|
|
110
|
+
## Testing Instructions
|
|
111
|
+
|
|
112
|
+
### Unit Tests (Jest + React Testing Library)
|
|
113
|
+
- **Location**: `src/**/__tests__/*.test.jsx`
|
|
114
|
+
- **Dependencies**: Mock external services and APIs
|
|
115
|
+
- **Run**: `yarn test`
|
|
116
|
+
- **Coverage**: Maintain 80%+ coverage
|
|
117
|
+
- **Environment**: Uses test-specific mocks in `__mocks__/`
|
|
118
|
+
|
|
119
|
+
### E2E Tests (Playwright)
|
|
120
|
+
- **Location**: `__tests__/*.spec.js`
|
|
121
|
+
- **Dependencies**: Full browser automation with real interactions
|
|
122
|
+
- **Run**: `yarn test:e2e`
|
|
123
|
+
- **Screenshots**: Automatic screenshot comparison in `__screenshots__/`
|
|
124
|
+
- **Workflows**: Reusable test helpers in `workflows/` directories
|
|
125
|
+
|
|
126
|
+
### Test File Structure
|
|
127
|
+
```
|
|
128
|
+
{Component}.test.jsx # Unit tests with RTL
|
|
129
|
+
{feature}.spec.js # E2E tests with Playwright
|
|
130
|
+
{feature}.workflow.js # Reusable E2E workflows
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Component Architecture
|
|
134
|
+
|
|
135
|
+
### Core Provider System
|
|
136
|
+
The Core component wraps the entire application and provides:
|
|
137
|
+
- Global error handling via Core.Error
|
|
138
|
+
- Event management via EventManager context
|
|
139
|
+
- Performance monitoring via PerformanceManager
|
|
140
|
+
- Notification system via Core.Notifications
|
|
141
|
+
- Theme and locale configuration
|
|
142
|
+
|
|
143
|
+
### Event-Driven Communication
|
|
144
|
+
```javascript
|
|
145
|
+
// Publishing events
|
|
146
|
+
Event.publish('booking:rateSelected', { rateId, price });
|
|
147
|
+
|
|
148
|
+
// Subscribing to events
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
const unsubscribe = Event.subscribe('booking:rateSelected', handleRateSelection);
|
|
151
|
+
return unsubscribe;
|
|
152
|
+
}, []);
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### CSS Module Patterns
|
|
156
|
+
```css
|
|
157
|
+
/* Component.module.css */
|
|
158
|
+
.container {
|
|
159
|
+
/* Base styles */
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.container--loading {
|
|
163
|
+
/* Modifier styles using BEM-like naming */
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.button {
|
|
167
|
+
/* Component-specific button styles */
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Security Considerations
|
|
172
|
+
|
|
173
|
+
- **Input Sanitization**: All user inputs sanitized before API calls
|
|
174
|
+
- **XSS Prevention**: Use dangerouslySetInnerHTML sparingly with sanitization
|
|
175
|
+
- **API Security**: Never expose API keys in client code
|
|
176
|
+
- **Session Management**: Secure cookie handling for user sessions
|
|
177
|
+
- **HTTPS Only**: All external API calls over HTTPS
|
|
178
|
+
- **Content Security Policy**: Strict CSP headers in production
|
|
179
|
+
|
|
180
|
+
## Environment Configuration
|
|
181
|
+
|
|
182
|
+
### Required Environment Variables
|
|
183
|
+
```bash
|
|
184
|
+
NODE_ENV=development|production|test
|
|
185
|
+
REACT_APP_API_BASE_URL=https://api.example.com
|
|
186
|
+
REACT_APP_SENTRY_DSN=xxxxx # Error tracking
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Optional Configuration
|
|
190
|
+
```bash
|
|
191
|
+
REACT_APP_PERFORMANCE_MONITORING=true # Enable performance tracking
|
|
192
|
+
REACT_APP_DEBUG_EVENTS=true # Log event communications
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Never commit `.env` files to repository.
|
|
196
|
+
|
|
197
|
+
## Performance Guidelines
|
|
198
|
+
|
|
199
|
+
- **Bundle Size**: Keep individual components under 50KB
|
|
200
|
+
- **Lazy Loading**: Use React.lazy for route-level components
|
|
201
|
+
- **Memoization**: Implement React.memo for expensive renders
|
|
202
|
+
- **Event Cleanup**: Always unsubscribe from events in useEffect cleanup
|
|
203
|
+
- **Image Optimization**: Use appropriate formats and lazy loading
|
|
204
|
+
- **CSS**: Minimize unused styles, prefer CSS modules over global styles
|
|
205
|
+
|
|
206
|
+
## Debugging
|
|
207
|
+
|
|
208
|
+
### Common Issues
|
|
209
|
+
|
|
210
|
+
**Component Not Rendering:**
|
|
211
|
+
```bash
|
|
212
|
+
# Check event subscriptions
|
|
213
|
+
REACT_APP_DEBUG_EVENTS=true yarn start
|
|
214
|
+
|
|
215
|
+
# Verify CSS modules import
|
|
216
|
+
import styles from './Component.module.css';
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**E2E Tests Failing:**
|
|
220
|
+
```bash
|
|
221
|
+
# Run with UI for debugging
|
|
222
|
+
yarn test:e2e --ui
|
|
223
|
+
|
|
224
|
+
# Generate new screenshots
|
|
225
|
+
yarn test:e2e --update-snapshots
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Build Issues:**
|
|
229
|
+
```bash
|
|
230
|
+
# Clear cache and reinstall
|
|
231
|
+
rm -rf node_modules yarn.lock
|
|
232
|
+
yarn install
|
|
233
|
+
|
|
234
|
+
# Check for circular dependencies
|
|
235
|
+
yarn build:npm --verbose
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Project Structure
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
src/
|
|
242
|
+
├── Core.jsx # Main provider component
|
|
243
|
+
├── Core.provider.jsx # Context providers
|
|
244
|
+
├── Core.Error.jsx # Error boundary
|
|
245
|
+
├── Core.Notifications.jsx # Global notifications
|
|
246
|
+
├── components/ # All React components
|
|
247
|
+
│ ├── __shared__/ # Shared utilities and components
|
|
248
|
+
│ ├── Booking/ # Booking flow components
|
|
249
|
+
│ ├── Checkout/ # Payment and confirmation
|
|
250
|
+
│ ├── Finder/ # Search and filtering
|
|
251
|
+
│ ├── Rates/ # Rate display and selection
|
|
252
|
+
│ └── Session/ # User authentication
|
|
253
|
+
├── contexts/ # React contexts
|
|
254
|
+
│ ├── EventManager/ # Event system
|
|
255
|
+
│ └── PerformanceManager/ # Performance monitoring
|
|
256
|
+
├── helpers/ # Utility functions
|
|
257
|
+
└── services/ # External API services
|
|
258
|
+
|
|
259
|
+
__tests__/ # E2E test suites
|
|
260
|
+
├── workflows/ # Reusable test workflows
|
|
261
|
+
├── __screenshots__/ # Visual regression tests
|
|
262
|
+
└── *.spec.js # Test specifications
|
|
263
|
+
|
|
264
|
+
public/ # Static demo pages
|
|
265
|
+
├── e2e/ # E2E test fixtures
|
|
266
|
+
└── routes/ # Demo application routes
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Contributing
|
|
270
|
+
|
|
271
|
+
1. **ESLint Compliance**: All code must pass `yarn lint` with zero warnings
|
|
272
|
+
2. **Test Coverage**: Maintain 80%+ unit test coverage
|
|
273
|
+
3. **Visual Testing**: Update E2E screenshots when UI changes
|
|
274
|
+
4. **Performance**: Monitor bundle size impact
|
|
275
|
+
5. **Documentation**: Update component PropTypes and this AGENTS.md
|
|
276
|
+
6. **Conventional Commits**: Use semantic commit messages
|
|
277
|
+
|
|
278
|
+
### Pull Request Flow
|
|
279
|
+
```bash
|
|
280
|
+
# Before commit
|
|
281
|
+
yarn lint # Must pass
|
|
282
|
+
yarn test # Must pass
|
|
283
|
+
yarn pipeline # Full validation
|
|
284
|
+
|
|
285
|
+
# PR title format
|
|
286
|
+
[core] Feature: Add new booking component
|
|
287
|
+
[core] Fix: Resolve checkout validation error
|
|
288
|
+
[core] Docs: Update component documentation
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Release Process
|
|
292
|
+
- Semantic versioning (semver)
|
|
293
|
+
- Automated builds on tag creation
|
|
294
|
+
- NPM package distribution
|
|
295
|
+
- Changelog generation from commits
|
package/build/Core.provider.js
CHANGED
|
@@ -24,7 +24,6 @@ const CoreProvider = _ref => {
|
|
|
24
24
|
hotel,
|
|
25
25
|
id,
|
|
26
26
|
locale,
|
|
27
|
-
metrics,
|
|
28
27
|
type,
|
|
29
28
|
value = {}
|
|
30
29
|
} = _ref;
|
|
@@ -53,11 +52,9 @@ const CoreProvider = _ref => {
|
|
|
53
52
|
})();
|
|
54
53
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
54
|
}, []);
|
|
56
|
-
return store ? /*#__PURE__*/_react.default.createElement(_dataSources.
|
|
57
|
-
token: metrics || process.env.METRICS
|
|
58
|
-
}, /*#__PURE__*/_react.default.createElement(_dataSources.StoreProvider, {
|
|
55
|
+
return store ? /*#__PURE__*/_react.default.createElement(_dataSources.StoreProvider, {
|
|
59
56
|
value: _objectSpread(_objectSpread({}, store), value)
|
|
60
|
-
}, /*#__PURE__*/_react.default.createElement(_Core.Core, null, children))
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_Core.Core, null, children)) : null;
|
|
61
58
|
};
|
|
62
59
|
exports.CoreProvider = CoreProvider;
|
|
63
60
|
CoreProvider.propTypes = {
|
|
@@ -66,7 +63,6 @@ CoreProvider.propTypes = {
|
|
|
66
63
|
hotel: _propTypes.default.string,
|
|
67
64
|
id: _propTypes.default.string,
|
|
68
65
|
locale: _propTypes.default.string,
|
|
69
|
-
metrics: _propTypes.default.string,
|
|
70
66
|
type: _propTypes.default.oneOf(Object.values(_Core2.TYPE)),
|
|
71
67
|
value: _propTypes.default.shape({})
|
|
72
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.provider.js","names":["_dataSources","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_Core2","_helpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","CoreProvider","_ref","children","currency","hotel","id","locale","
|
|
1
|
+
{"version":3,"file":"Core.provider.js","names":["_dataSources","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_Core2","_helpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","CoreProvider","_ref","children","currency","hotel","id","locale","type","store","setStore","useState","useLayoutEffect","urlParams","fetchUrlParams","location","search","cookies","fetchCookies","values","COOKIE","instance","config","fetchConfig","session","fetchSession","checkSession","undefined","consolidateStore","createElement","StoreProvider","Core","exports","propTypes","PropTypes","node","isRequired","string","oneOf","TYPE","shape"],"sources":["../src/Core.provider.jsx"],"sourcesContent":["import { StoreProvider } from '@mirai/data-sources';\nimport PropTypes from 'prop-types';\nimport React, { useLayoutEffect, useState } from 'react';\n\nimport { Core } from './Core';\nimport { COOKIE, TYPE } from './Core.constants';\nimport { checkSession, consolidateStore, fetchConfig, fetchCookies, fetchSession, fetchUrlParams } from './helpers';\n\nconst CoreProvider = ({ children, currency, hotel, id, locale, type, value = {} }) => {\n const [store, setStore] = useState();\n\n useLayoutEffect(() => {\n (async () => {\n const urlParams = fetchUrlParams(location.search);\n const cookies = fetchCookies(Object.values(COOKIE));\n const instance = { currency, id, type, locale, hotel };\n const config = id ? await fetchConfig(instance) : {};\n\n let session = fetchSession(urlParams);\n if (session && id && !(await checkSession(id, config))) session = undefined;\n\n setStore(await consolidateStore({ config, cookies, instance, session, urlParams }));\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return store ? (\n <StoreProvider value={{ ...store, ...value }}>\n <Core>{children}</Core>\n </StoreProvider>\n ) : null;\n};\n\nCoreProvider.propTypes = {\n children: PropTypes.node.isRequired,\n currency: PropTypes.string,\n hotel: PropTypes.string,\n id: PropTypes.string,\n locale: PropTypes.string,\n type: PropTypes.oneOf(Object.values(TYPE)),\n value: PropTypes.shape({}),\n};\n\nexport { CoreProvider };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -65,12 +65,6 @@ const BannerLoyalty = _ref => {
|
|
|
65
65
|
_dataSources.Event.subscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
|
|
66
66
|
return () => _dataSources.Event.unsubscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
|
|
67
67
|
}, []);
|
|
68
|
-
(0, _react.useEffect)(() => {
|
|
69
|
-
if (!session && title && benefits.length > 0) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
70
|
-
id: 'BANNER_LOYALTY:RENDER'
|
|
71
|
-
});
|
|
72
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
|
-
}, [session]);
|
|
74
68
|
(0, _react.useEffect)(() => {
|
|
75
69
|
if (!place) return;
|
|
76
70
|
const {
|
|
@@ -95,23 +89,13 @@ const BannerLoyalty = _ref => {
|
|
|
95
89
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
96
90
|
}, [place]);
|
|
97
91
|
const handleExpanded = () => {
|
|
98
|
-
if (!expanded) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
99
|
-
id: 'BANNER_LOYALTY:EXPAND_BENEFITS'
|
|
100
|
-
});
|
|
101
92
|
setExpanded(!expanded);
|
|
102
93
|
};
|
|
103
94
|
const handlePressBenefit = index => {
|
|
104
95
|
setScrollIndex(index);
|
|
105
|
-
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
106
|
-
id: 'BANNER_LOYALTY:BUTTON_BENEFITS'
|
|
107
|
-
});
|
|
108
96
|
};
|
|
109
97
|
const handlePressFilter = value => {
|
|
110
98
|
_dataSources.Event.publish(_helpers.EVENT.RATES_FILTER_CLUB, value);
|
|
111
|
-
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
112
|
-
id: 'BANNER_LOYALTY:CLUBDISCOUNT',
|
|
113
|
-
value
|
|
114
|
-
});
|
|
115
99
|
};
|
|
116
100
|
const Filter = () => /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
117
101
|
row: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","BannerLoyalty","_ref","_club$banner","_itemRef$current","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","_useStore","useStore","club","variants","finder","place","session","skeleton","benefits","setBenefits","useState","banner","clubActive","setClubActive","active","clubDiscount","setClubDiscount","discount","expanded","setExpanded","scrollIndex","setScrollIndex","itemRef","useRef","useEffect","callback","nextClubDiscount","undefined","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","title","publish","METRICS","id","hotelId","isHotel","nextBenefits","find","toString","handleExpanded","handlePressBenefit","index","handlePressFilter","Filter","createElement","View","row","className","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","description","url","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","target","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","current","offsetWidth","BENEFIT_MIN_WIDTH","list","map","icon","ref","key","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: { club: { variants, ...club } = {}, finder: { place } = {}, session, skeleton = false },\n } = useStore();\n\n const [benefits, setBenefits] = useState(club?.banner?.benefits || []);\n const [clubActive, setClubActive] = useState(club.active);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n\n const itemRef = useRef();\n\n useEffect(() => {\n const callback = (nextClubDiscount) =>\n setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => {\n if (!session && title && benefits.length > 0) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:RENDER' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useEffect(() => {\n if (!place) return;\n\n const { id: [hotelId] = [], isHotel } = place || {};\n\n if (hotelId && isHotel && variants) {\n const { active, banner: { benefits: nextBenefits } = {} } =\n variants.find(({ id = '' } = {}) => id.toString() === hotelId.toString()) || club || {};\n nextBenefits && setBenefits(nextBenefits);\n setClubActive(active);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n const handleExpanded = () => {\n if (!expanded) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:EXPAND_BENEFITS' });\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:BUTTON_BENEFITS' });\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:CLUBDISCOUNT', value });\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch\n checked={clubDiscount}\n name={`switch`}\n onChange={handlePressFilter}\n aria-label={translate(L10N.LABEL_ONLY_MEMBERS)}\n />\n </View>\n );\n\n const { banner: { description = {}, title, url } = {} } = club || {};\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return clubActive && skeleton && !session ? (\n <Skeleton />\n ) : clubActive && !session && title ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action bold href={url} target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n clubDiscount !== undefined && <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && benefits.length > 0 && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile\n ? {\n horizontal: !isMobile,\n scrollTo: scrollIndex * (itemRef?.current?.offsetWidth || BENEFIT_MIN_WIDTH),\n }\n : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View ref={index === 0 ? itemRef : undefined} row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && clubDiscount !== undefined && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","BannerLoyalty","_ref","_club$banner","_itemRef$current","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","_useStore","useStore","club","variants","finder","place","session","skeleton","benefits","setBenefits","useState","banner","clubActive","setClubActive","active","clubDiscount","setClubDiscount","discount","expanded","setExpanded","scrollIndex","setScrollIndex","itemRef","useRef","useEffect","callback","nextClubDiscount","undefined","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","id","hotelId","isHotel","nextBenefits","find","toString","handleExpanded","handlePressBenefit","index","handlePressFilter","publish","Filter","createElement","View","row","className","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","description","title","url","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","target","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","current","offsetWidth","BENEFIT_MIN_WIDTH","list","map","icon","ref","key","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: { club: { variants, ...club } = {}, finder: { place } = {}, session, skeleton = false },\n } = useStore();\n\n const [benefits, setBenefits] = useState(club?.banner?.benefits || []);\n const [clubActive, setClubActive] = useState(club.active);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n\n const itemRef = useRef();\n\n useEffect(() => {\n const callback = (nextClubDiscount) =>\n setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => {\n if (!place) return;\n\n const { id: [hotelId] = [], isHotel } = place || {};\n\n if (hotelId && isHotel && variants) {\n const { active, banner: { benefits: nextBenefits } = {} } =\n variants.find(({ id = '' } = {}) => id.toString() === hotelId.toString()) || club || {};\n nextBenefits && setBenefits(nextBenefits);\n setClubActive(active);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n const handleExpanded = () => {\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch\n checked={clubDiscount}\n name={`switch`}\n onChange={handlePressFilter}\n aria-label={translate(L10N.LABEL_ONLY_MEMBERS)}\n />\n </View>\n );\n\n const { banner: { description = {}, title, url } = {} } = club || {};\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return clubActive && skeleton && !session ? (\n <Skeleton />\n ) : clubActive && !session && title ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action bold href={url} target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n clubDiscount !== undefined && <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && benefits.length > 0 && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile\n ? {\n horizontal: !isMobile,\n scrollTo: scrollIndex * (itemRef?.current?.offsetWidth || BENEFIT_MIN_WIDTH),\n }\n : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View ref={index === 0 ? itemRef : undefined} row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && clubDiscount !== undefined && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,11 +55,6 @@ const Booking = _ref => {
|
|
|
55
55
|
const [dataSource, setDataSource] = (0, _react.useState)();
|
|
56
56
|
const [expanded, setExpanded] = (0, _react.useState)(false);
|
|
57
57
|
const [responseError, setResponseError] = (0, _react.useState)();
|
|
58
|
-
(0, _react.useEffect)(() => {
|
|
59
|
-
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
60
|
-
id: 'BOOKING:RENDER'
|
|
61
|
-
});
|
|
62
|
-
}, []);
|
|
63
58
|
(0, _react.useEffect)(() => {
|
|
64
59
|
if (skeleton || !id || !token) return;
|
|
65
60
|
(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Booking.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Booking","_Booking2","style","_Booking3","_interopRequireDefault","_components","_partials","_Booking4","_shared__","_Header","_helpers","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Booking","_ref","others","isDesktop","isMobile","useDevice","locale","translate","useLocale","hotel","url","skeleton","urlParams","code","token","reservationCode","id","hasToTracking","tracking","useStore","action","setAction","useState","dataSource","setDataSource","expanded","setExpanded","responseError","setResponseError","useEffect","Event","publish","EVENT","METRICS","ServiceBooking","catch","error","event","state","STATE","CANCELLED","BOOKING_CANCEL","BOOKING_RESPONSE","response","handleMenuPress","ACTION","PRINT","setTimeout","window","print","handleBackHome","payload","location","href","hotelUrl","origin","payment","undefined","isCancelled","createElement","Fragment","Header","View","role","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","POS_ERROR","Notification","info","COMPLETED","success","CONFIRMED","warning","POSTPONED","wide","L10N","NOTIFICATION","Hotelverse","BookingPayment","onError","BookingSummary","box","showBasePrice","Information","BookingDetails","BookingTerms","small","side","noPrint","Menu","onPress","Modal","onChange","_ref2","onClose","large","NOTIFICATION_ERROR","ERROR","GENERIC","Action","paragraph","underline","ACTION_BACK_HOME","Footer","exports","displayName","propTypes"],"sources":["../../../src/components/Booking/Booking.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { ACTION, ERROR, STATE } from './Booking.constants';\nimport { L10N } from './Booking.l10n';\nimport * as style from './Booking.module.css';\nimport Skeleton from './Booking.skeleton';\nimport { Hotelverse } from './components';\nimport { Information, Menu, Modal } from './partials';\nimport { BookingPayment } from './partials/Booking.Payment';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer } from '../__shared__';\nimport { Header } from '../Header';\nimport { EVENT } from '../helpers';\n\nconst Booking = ({ ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale, translate } = useLocale();\n const {\n value: {\n hotel: { url } = {},\n skeleton = false,\n urlParams: { code: token, reservationCode: id, hasToTracking: tracking } = {},\n },\n } = useStore();\n\n const [action, setAction] = useState();\n const [dataSource, setDataSource] = useState();\n const [expanded, setExpanded] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n Event.publish(EVENT.METRICS, { id: 'BOOKING:RENDER' });\n }, []);\n\n useEffect(() => {\n if (skeleton || !id || !token) return;\n\n (async () => {\n setDataSource(\n await ServiceBooking.get({ id, locale, token, tracking, url }).catch((error) => setResponseError(error)),\n );\n setAction();\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, locale]);\n\n useEffect(() => {\n if (!dataSource || !dataSource.tracking) return;\n\n const event = dataSource.state === STATE.CANCELLED ? EVENT.BOOKING_CANCEL : EVENT.BOOKING_RESPONSE;\n Event.publish(event, { event, response: { ...dataSource } });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource?.state]);\n\n const handleMenuPress = (action) => {\n if (action === ACTION.PRINT) {\n setExpanded(true);\n setTimeout(window.print, 10);\n } else {\n setAction(action);\n }\n };\n\n const handleBackHome = () => {\n const { payload } = responseError;\n\n window.location.href = payload?.hotelUrl || window.location.origin;\n };\n\n const { payment, state } = dataSource || {};\n const response = dataSource !== undefined;\n const isCancelled = state === STATE.CANCELLED;\n\n return (\n <>\n <Header />\n\n <View role=\"booking\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={!response && !responseError} className={style.progress} />\n {response ? (\n <>\n <View row={isDesktop} className={style.content}>\n <View>\n {state !== STATE.POS_ERROR && (\n <Notification\n error={isCancelled}\n info={state === STATE.COMPLETED}\n success={state === STATE.CONFIRMED}\n warning={state === STATE.POSTPONED}\n wide\n >\n {translate(L10N.NOTIFICATION[state])}\n <Hotelverse {...dataSource} />\n </Notification>\n )}\n\n {payment && !isCancelled && <BookingPayment {...{ dataSource, onError: setResponseError }} />}\n\n <BookingSummary\n box={!isDesktop}\n dataSource={{ ...dataSource, showBasePrice: true }}\n className={styles(isDesktop && style.print)}\n />\n\n <Information dataSource={dataSource} />\n <BookingDetails {...{ dataSource, expanded }} expanded={isMobile} className={style.box} />\n <BookingTerms dataSource={dataSource} small />\n </View>\n\n <View className={style.side}>\n {isDesktop && (\n <BookingSummary box dataSource={{ ...dataSource, showBasePrice: true }} className={style.noPrint} />\n )}\n\n <Menu dataSource={dataSource} onPress={handleMenuPress} />\n </View>\n </View>\n\n <Modal\n {...{ action, dataSource: { ...dataSource, token } }}\n onChange={({ response: { tracking } = {}, state }) =>\n state && setDataSource({ ...dataSource, tracking, state })\n }\n onClose={() => setAction()}\n />\n </>\n ) : responseError ? (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code] || L10N.NOTIFICATION_ERROR[ERROR.GENERIC])}\n <Action paragraph underline wide onPress={handleBackHome}>\n {translate(L10N.ACTION_BACK_HOME)}\n </Action>\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer />\n </>\n );\n};\n\nBooking.displayName = 'Mirai:Core:Booking';\n\nBooking.propTypes = {};\n\nexport { Booking };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Booking.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Booking","_Booking2","style","_Booking3","_interopRequireDefault","_components","_partials","_Booking4","_shared__","_Header","_helpers","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Booking","_ref","others","isDesktop","isMobile","useDevice","locale","translate","useLocale","hotel","url","skeleton","urlParams","code","token","reservationCode","id","hasToTracking","tracking","useStore","action","setAction","useState","dataSource","setDataSource","expanded","setExpanded","responseError","setResponseError","useEffect","ServiceBooking","catch","error","event","state","STATE","CANCELLED","EVENT","BOOKING_CANCEL","BOOKING_RESPONSE","Event","publish","response","handleMenuPress","ACTION","PRINT","setTimeout","window","print","handleBackHome","payload","location","href","hotelUrl","origin","payment","undefined","isCancelled","createElement","Fragment","Header","View","role","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","POS_ERROR","Notification","info","COMPLETED","success","CONFIRMED","warning","POSTPONED","wide","L10N","NOTIFICATION","Hotelverse","BookingPayment","onError","BookingSummary","box","showBasePrice","Information","BookingDetails","BookingTerms","small","side","noPrint","Menu","onPress","Modal","onChange","_ref2","onClose","large","NOTIFICATION_ERROR","ERROR","GENERIC","Action","paragraph","underline","ACTION_BACK_HOME","Footer","exports","displayName","propTypes"],"sources":["../../../src/components/Booking/Booking.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { ACTION, ERROR, STATE } from './Booking.constants';\nimport { L10N } from './Booking.l10n';\nimport * as style from './Booking.module.css';\nimport Skeleton from './Booking.skeleton';\nimport { Hotelverse } from './components';\nimport { Information, Menu, Modal } from './partials';\nimport { BookingPayment } from './partials/Booking.Payment';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer } from '../__shared__';\nimport { Header } from '../Header';\nimport { EVENT } from '../helpers';\n\nconst Booking = ({ ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale, translate } = useLocale();\n const {\n value: {\n hotel: { url } = {},\n skeleton = false,\n urlParams: { code: token, reservationCode: id, hasToTracking: tracking } = {},\n },\n } = useStore();\n\n const [action, setAction] = useState();\n const [dataSource, setDataSource] = useState();\n const [expanded, setExpanded] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n if (skeleton || !id || !token) return;\n\n (async () => {\n setDataSource(\n await ServiceBooking.get({ id, locale, token, tracking, url }).catch((error) => setResponseError(error)),\n );\n setAction();\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id, locale]);\n\n useEffect(() => {\n if (!dataSource || !dataSource.tracking) return;\n\n const event = dataSource.state === STATE.CANCELLED ? EVENT.BOOKING_CANCEL : EVENT.BOOKING_RESPONSE;\n Event.publish(event, { event, response: { ...dataSource } });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource?.state]);\n\n const handleMenuPress = (action) => {\n if (action === ACTION.PRINT) {\n setExpanded(true);\n setTimeout(window.print, 10);\n } else {\n setAction(action);\n }\n };\n\n const handleBackHome = () => {\n const { payload } = responseError;\n\n window.location.href = payload?.hotelUrl || window.location.origin;\n };\n\n const { payment, state } = dataSource || {};\n const response = dataSource !== undefined;\n const isCancelled = state === STATE.CANCELLED;\n\n return (\n <>\n <Header />\n\n <View role=\"booking\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={!response && !responseError} className={style.progress} />\n {response ? (\n <>\n <View row={isDesktop} className={style.content}>\n <View>\n {state !== STATE.POS_ERROR && (\n <Notification\n error={isCancelled}\n info={state === STATE.COMPLETED}\n success={state === STATE.CONFIRMED}\n warning={state === STATE.POSTPONED}\n wide\n >\n {translate(L10N.NOTIFICATION[state])}\n <Hotelverse {...dataSource} />\n </Notification>\n )}\n\n {payment && !isCancelled && <BookingPayment {...{ dataSource, onError: setResponseError }} />}\n\n <BookingSummary\n box={!isDesktop}\n dataSource={{ ...dataSource, showBasePrice: true }}\n className={styles(isDesktop && style.print)}\n />\n\n <Information dataSource={dataSource} />\n <BookingDetails {...{ dataSource, expanded }} expanded={isMobile} className={style.box} />\n <BookingTerms dataSource={dataSource} small />\n </View>\n\n <View className={style.side}>\n {isDesktop && (\n <BookingSummary box dataSource={{ ...dataSource, showBasePrice: true }} className={style.noPrint} />\n )}\n\n <Menu dataSource={dataSource} onPress={handleMenuPress} />\n </View>\n </View>\n\n <Modal\n {...{ action, dataSource: { ...dataSource, token } }}\n onChange={({ response: { tracking } = {}, state }) =>\n state && setDataSource({ ...dataSource, tracking, state })\n }\n onClose={() => setAction()}\n />\n </>\n ) : responseError ? (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code] || L10N.NOTIFICATION_ERROR[ERROR.GENERIC])}\n <Action paragraph underline wide onPress={handleBackHome}>\n {translate(L10N.ACTION_BACK_HOME)}\n </Action>\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer />\n </>\n );\n};\n\nBooking.displayName = 'Mirai:Core:Booking';\n\nBooking.propTypes = {};\n\nexport { Booking };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ var _Chat2 = require("./Chat.l10n");
|
|
|
14
14
|
var style = _interopRequireWildcard(require("./Chat.module.css"));
|
|
15
15
|
var _components = require("./components");
|
|
16
16
|
var _helpers = require("./helpers");
|
|
17
|
-
var _helpers2 = require("../helpers");
|
|
18
17
|
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); }
|
|
19
18
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
20
19
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -55,9 +54,6 @@ const Chat = _ref => {
|
|
|
55
54
|
}, [skeleton]);
|
|
56
55
|
(0, _react.useEffect)(() => {
|
|
57
56
|
if (!visible) return;
|
|
58
|
-
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
59
|
-
id: 'CHAT:OPEN'
|
|
60
|
-
});
|
|
61
57
|
}, [visible]);
|
|
62
58
|
const handleInput = function (input) {
|
|
63
59
|
let shortcutMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|