@qite/tide-booking-component 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
  2. package/build/build-cjs/booking-product/components/icon.d.ts +2 -0
  3. package/build/build-cjs/booking-product/types.d.ts +2 -1
  4. package/build/build-cjs/booking-wizard/components/icon.d.ts +2 -0
  5. package/build/build-cjs/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  6. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
  7. package/build/build-cjs/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
  8. package/build/build-cjs/booking-wizard/types.d.ts +1 -0
  9. package/build/build-cjs/index.js +703 -451
  10. package/build/build-cjs/shared/utils/localization-util.d.ts +238 -3
  11. package/build/build-esm/booking-product/components/footer.d.ts +1 -0
  12. package/build/build-esm/booking-product/components/icon.d.ts +2 -0
  13. package/build/build-esm/booking-product/types.d.ts +2 -1
  14. package/build/build-esm/booking-wizard/components/icon.d.ts +2 -0
  15. package/build/build-esm/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  16. package/build/build-esm/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
  17. package/build/build-esm/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
  18. package/build/build-esm/booking-wizard/types.d.ts +1 -0
  19. package/build/build-esm/index.js +704 -452
  20. package/build/build-esm/shared/utils/localization-util.d.ts +238 -3
  21. package/package.json +1 -1
  22. package/src/booking-product/components/amount-input.tsx +8 -20
  23. package/src/booking-product/components/date-range-picker/calendar.tsx +3 -3
  24. package/src/booking-product/components/dates.tsx +26 -20
  25. package/src/booking-product/components/footer.tsx +4 -2
  26. package/src/booking-product/components/header.tsx +4 -4
  27. package/src/booking-product/components/icon.tsx +176 -11
  28. package/src/booking-product/components/product.tsx +31 -16
  29. package/src/{shared → booking-product}/components/rating.tsx +3 -3
  30. package/src/booking-product/components/rooms.tsx +116 -113
  31. package/src/booking-product/settings-context.ts +0 -1
  32. package/src/booking-product/types.ts +2 -1
  33. package/src/booking-wizard/components/icon.tsx +42 -15
  34. package/src/{booking-product → booking-wizard}/components/multi-range-filter.tsx +0 -1
  35. package/src/booking-wizard/declarations.d.ts +4 -0
  36. package/src/booking-wizard/features/booking/booking-self-contained.tsx +3 -2
  37. package/src/booking-wizard/features/booking/booking.tsx +3 -2
  38. package/src/booking-wizard/features/confirmation/confirmation.tsx +8 -4
  39. package/src/booking-wizard/features/flight-options/flight-filter.tsx +7 -6
  40. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +29 -28
  41. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +193 -192
  42. package/src/booking-wizard/features/room-options/index.tsx +1 -5
  43. package/src/booking-wizard/features/summary/summary.tsx +23 -26
  44. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +0 -2
  45. package/src/booking-wizard/features/travelers-form/validate-form.ts +1 -1
  46. package/src/booking-wizard/index.tsx +2 -2
  47. package/src/booking-wizard/types.ts +1 -0
  48. package/src/shared/tide-sprites.svg +117 -0
  49. package/src/shared/translations/fr-BE.json +229 -222
  50. package/src/shared/translations/nl-BE.json +229 -222
  51. package/styles/booking-product-variables.scss +288 -0
  52. package/styles/booking-product.scss +440 -0
  53. package/styles/booking-wizard-variables.scss +0 -0
  54. package/styles/booking-wizard.scss +4 -0
  55. package/styles/components/_animations.scss +39 -0
  56. package/styles/components/_base.scss +106 -0
  57. package/styles/components/_button.scss +185 -0
  58. package/styles/components/_cta.scss +67 -0
  59. package/styles/components/_date-range-picker.scss +224 -0
  60. package/styles/components/_decrement-increment.scss +37 -0
  61. package/styles/components/_dropdown.scss +74 -0
  62. package/styles/components/_form.scss +136 -0
  63. package/styles/components/_loader.scss +71 -0
  64. package/styles/components/_mixins.scss +518 -0
  65. package/styles/components/_placeholders.scss +166 -0
  66. package/styles/components/_qsm.scss +20 -0
  67. package/styles/components/_variables.scss +89 -0
  68. package/src/booking-product/components/multi-range-filter.css +0 -115
  69. /package/build/build-cjs/{shared → booking-product}/components/rating.d.ts +0 -0
  70. /package/build/build-esm/{shared → booking-product}/components/rating.d.ts +0 -0
@@ -10,7 +10,8 @@ export declare const getTranslations: (language: string) => {
10
10
  ERROR: string;
11
11
  PREVIOUS: string;
12
12
  NEXT: string;
13
- SUBMIT: string;
13
+ SUBMIT_BOOKING: string;
14
+ SUBMIT_OFFER: string;
14
15
  COMPOSE: string;
15
16
  ROOM_OPTIONS: string;
16
17
  FLIGHT_OPTIONS: string;
@@ -58,6 +59,7 @@ export declare const getTranslations: (language: string) => {
58
59
  PER_NIGHT: string;
59
60
  PER_PERSON_PER_NIGHT: string;
60
61
  BOOK_NOW: string;
62
+ TO_YOUR_OFFER: string;
61
63
  NOT_AVAILABLE: string;
62
64
  NUMBER_OF_ROOMS: string;
63
65
  AGE_BY_DEPARTURE_DATE: string;
@@ -70,9 +72,11 @@ export declare const getTranslations: (language: string) => {
70
72
  RETURN_DATE: string;
71
73
  WHO_YOU_TRAVELING_WITH: string;
72
74
  TRAVEL_PERIOD: string;
75
+ CLOSE: string;
73
76
  };
74
77
  MAIN: {
75
78
  PREPARING_BOOKING: string;
79
+ PREPARING_OFFEr: string;
76
80
  PRODUCT_UNAVAILABLE: string;
77
81
  };
78
82
  SHARED: {
@@ -194,7 +198,8 @@ export declare const getTranslations: (language: string) => {
194
198
  MAIN_BOOKER: string;
195
199
  NOTIFICATIONS_TITLE: string;
196
200
  VALIDATE_TITLE: string;
197
- VALIDATE_TEXT: string;
201
+ VALIDATE_TEXT_BOOKING: string;
202
+ VALIDATE_TEXT_OFFER: string;
198
203
  OPTIONS: string;
199
204
  REMARKS: string;
200
205
  VOUCHERS: string;
@@ -204,9 +209,239 @@ export declare const getTranslations: (language: string) => {
204
209
  VOUCHER_INVALID: string;
205
210
  };
206
211
  CONFIRMATION: {
207
- TITLE_TEXT: string;
212
+ TITLE_TEXT_OFFER: string;
213
+ TITLE_TEXT_BOOKING: string;
214
+ MESSAGE_TEXT1: string;
215
+ MESSAGE_TEXT2_OFFER: string;
216
+ MESSAGE_TEXT2_BOOKING: string;
217
+ QUESTIONS_TEXT1: string;
218
+ QUESTIONS_TEXT2: string;
219
+ QUESTIONS_TEXT3: string;
220
+ QUESTIONS_ALT: string;
221
+ MAIL_SUBJECT: string;
222
+ };
223
+ ERROR: {
224
+ TRY_AGAIN: string;
208
225
  MESSAGE_TEXT1: string;
209
226
  MESSAGE_TEXT2: string;
227
+ ERROR_TEXT1: string;
228
+ ERROR_TEXT2: string;
229
+ ERROR_TEXT3: string;
230
+ ERROR_ALT: string;
231
+ };
232
+ } | {
233
+ STEPS: {
234
+ PERSONAL_DETAILS: string;
235
+ EXTRA_OPTIONS: string;
236
+ SUMMARY: string;
237
+ CONFIRMATION: string;
238
+ ERROR: string;
239
+ PREVIOUS: string;
240
+ NEXT: string;
241
+ SUBMIT_BOOKING: string;
242
+ SUBMIT_OFFER: string;
243
+ COMPOSE: string;
244
+ ROOM_OPTIONS: string;
245
+ FLIGHT_OPTIONS: string;
246
+ };
247
+ INPUT: {
248
+ INCREASE: string;
249
+ DECREASE: string;
250
+ };
251
+ FLIGHTS_FORM: {
252
+ OUTWARD_FLIGHTS: string;
253
+ OUTWARD_FLIGHT: string;
254
+ RETURN_FLIGHTS: string;
255
+ RETURN_FLIGHT: string;
256
+ DIRECT_FLIGHT: string;
257
+ STOP: string;
258
+ STOPS: string;
259
+ FLIGHT_STOPS: string;
260
+ DIFFERENT_OPTION_WARNING: string;
261
+ FILTER_OPTIONS: string;
262
+ AIRLINES: string;
263
+ AIRPORTS: string;
264
+ NUMBER_OF_STOPS: string;
265
+ FLIGHT_OUTWARD: string;
266
+ DEPARTURE_TIME: string;
267
+ TRAVEL_DURATION: string;
268
+ CHANGE_TIME: string;
269
+ FLIGHT_RETURN: string;
270
+ NO_FLIGHTS_FOUND: string;
271
+ STARTING: string;
272
+ LOWEST_PRICE: string;
273
+ CHOOSE_YOUR_CLASS: string;
274
+ PLUS_ONE_DAY: string;
275
+ STOP_TIME: string;
276
+ NIGHT_DEPARTURE: string;
277
+ MORNING_DEPARTURE: string;
278
+ AFTERNOON_DEPARTURE: string;
279
+ EVENING_DEPARTURE: string;
280
+ };
281
+ PRODUCT: {
282
+ STAY_INCLUDED: string;
283
+ FLIGHT_INCLUDED: string;
284
+ TRANSFER_INCLUDED: string;
285
+ LOADING_PRICE: string;
286
+ PER_PERSON: string;
287
+ PER_NIGHT: string;
288
+ PER_PERSON_PER_NIGHT: string;
289
+ BOOK_NOW: string;
290
+ TO_YOUR_OFFER: string;
291
+ NOT_AVAILABLE: string;
292
+ NUMBER_OF_ROOMS: string;
293
+ AGE_BY_DEPARTURE_DATE: string;
294
+ YEAR: string;
295
+ APPLY: string;
296
+ EDIT: string;
297
+ DEPARTURE: string;
298
+ DEPARTURE_DATE: string;
299
+ RETURN: string;
300
+ RETURN_DATE: string;
301
+ WHO_YOU_TRAVELING_WITH: string;
302
+ TRAVEL_PERIOD: string;
303
+ CLOSE: string;
304
+ };
305
+ MAIN: {
306
+ PREPARING_BOOKING: string;
307
+ PREPARING_OFFER: string;
308
+ PRODUCT_UNAVAILABLE: string;
309
+ };
310
+ SHARED: {
311
+ ROOM: string;
312
+ ROOMS: string;
313
+ TOTAL_PRICE: string;
314
+ ADULTS: string;
315
+ CHILDREN: string;
316
+ SELECT: string;
317
+ SELECTED: string;
318
+ };
319
+ SIDEBAR: {
320
+ OVERVIEW: string;
321
+ SLIDE_TOTAL_PRICE: string;
322
+ SLIDE_DEPOSIT: string;
323
+ TRAVEL_INFO: string;
324
+ TRAVELERS: string;
325
+ TRAVELERS_ADULTS: string;
326
+ TRAVELERS_ADULT: string;
327
+ TRAVELERS_CHILDREN: string;
328
+ TRAVELERS_CHILD: string;
329
+ DEPARTURE: string;
330
+ DEPARTURE_SINGLE: string;
331
+ ARRIVAL: string;
332
+ FLIGHT: string;
333
+ ACCOMMODATION: string;
334
+ BASE_PRICE: string;
335
+ OPTIONS: string;
336
+ INCLUDED_COSTS: string;
337
+ EXTRA_COSTS: string;
338
+ DEPOSIT: string;
339
+ DEPOSIT_TEXT1: string;
340
+ DEPOSIT_TEXT2: string;
341
+ DEPOSIT_TEXT3: string;
342
+ DEPOSIT_TEXT4: string;
343
+ DEPOSIT_TEXT5: string;
344
+ DEPOSIT_TEXT6: string;
345
+ LUGGAGE_INCLUDED: string;
346
+ DEPARTURE_FLIGHT: string;
347
+ ARRIVAL_FLIGHT: string;
348
+ FLIGHT_DEPARTURE: string;
349
+ FLIGHT_ARRIVAL: string;
350
+ ON_REQUEST: string;
351
+ CHANGES: string;
352
+ };
353
+ TRAVELERS_FORM: {
354
+ TRAVELER: string;
355
+ ADULT: string;
356
+ ADULTS: string;
357
+ CHILD: string;
358
+ CHILDREN: string;
359
+ GENDER: string;
360
+ MALE: string;
361
+ FEMALE: string;
362
+ OTHER: string;
363
+ MAIN_BOOKER: string;
364
+ FIRST_NAME: string;
365
+ LAST_NAME: string;
366
+ BIRTHDATE: string;
367
+ STREET: string;
368
+ STREET_PLACEHOLDER: string;
369
+ HOUSE_NUMBER: string;
370
+ POST_BOX: string;
371
+ ZIPCODE: string;
372
+ CITY: string;
373
+ CITY_PLACEHOLDER: string;
374
+ COUNTRY: string;
375
+ SELECT_COUNTRY: string;
376
+ PHONE: string;
377
+ EMAIL: string;
378
+ REPEAT_EMAIL: string;
379
+ VALIDATION_MESSAGE: string;
380
+ BOOK_WITH_AGENT: string;
381
+ CHOOSE_OFFICE: string;
382
+ COUNTRIES: {
383
+ BELGIUM: string;
384
+ NETHERLANDS: string;
385
+ FRANCE: string;
386
+ };
387
+ CHOOSE_AGENT_PLACEHOLDER: string;
388
+ VALIDATION: {
389
+ TRAVELER_X_FIELD: string;
390
+ TRAVELER_X_IS_NO_ADULT: string;
391
+ TRAVELER_X_IS_NO_CHILD: string;
392
+ NO_MAIN_BOOKER_SELECTED: string;
393
+ MAIN_BOOKER_FIELD: string;
394
+ MAIN_BOOKER_EMAIL_IS_INVALID: string;
395
+ MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: string;
396
+ AGENT_IS_REQUIRED: string;
397
+ };
398
+ };
399
+ OPTIONS_FORM: {
400
+ NO_OPTIONS_TITLE: string;
401
+ NO_OPTIONS_MESSAGE: string;
402
+ UNIT_TITLE: string;
403
+ PACKAGE: string;
404
+ DAY: string;
405
+ DAYS: string;
406
+ NIGHT: string;
407
+ NIGHTS: string;
408
+ PER_PAX_TITLE: string;
409
+ PER_BOOKING_TITLE: string;
410
+ PER_UNIT_TITLE: string;
411
+ NONE: string;
412
+ };
413
+ ROOM_OPTIONS_FORM: {
414
+ TRAVELER_GROUP: string;
415
+ ALTERNATIVES_TRAVELER_GROUP: string;
416
+ SHOW_ALTERNATIVES: string;
417
+ };
418
+ SUMMARY: {
419
+ PERSONAL_DETAILS: string;
420
+ TRAVELERS: string;
421
+ TRAVELER: string;
422
+ ADULTS: string;
423
+ ADULT: string;
424
+ CHILDREN: string;
425
+ CHILD: string;
426
+ MAIN_BOOKER: string;
427
+ NOTIFICATIONS_TITLE: string;
428
+ VALIDATE_TITLE: string;
429
+ VALIDATE_TEXT_BOOKING: string;
430
+ VALIDATE_TEXT_OFFER: string;
431
+ OPTIONS: string;
432
+ REMARKS: string;
433
+ VOUCHERS: string;
434
+ VOUCHER_VALIDATE: string;
435
+ ADD_VOUCHER: string;
436
+ VOUCHER_VALID: string;
437
+ VOUCHER_INVALID: string;
438
+ };
439
+ CONFIRMATION: {
440
+ TITLE_TEXT_OFFER: string;
441
+ TITLE_TEXT_BOOKING: string;
442
+ MESSAGE_TEXT1: string;
443
+ MESSAGE_TEXT2_OFFER: string;
444
+ MESSAGE_TEXT2_BOOKING: string;
210
445
  QUESTIONS_TEXT1: string;
211
446
  QUESTIONS_TEXT2: string;
212
447
  QUESTIONS_TEXT3: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qite/tide-booking-component",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "React Booking wizard & Booking product component for Tide",
5
5
  "main": "build/build-cjs/index.js",
6
6
  "module": "build/build-esm/index.js",
@@ -1,6 +1,8 @@
1
1
  import React, { useContext } from "react";
2
2
  import { getTranslations } from "../../shared/utils/localization-util";
3
3
  import SettingsContext from "../settings-context";
4
+ import { buildClassName } from "../../shared/utils/class-util";
5
+ import Icon from "./icon";
4
6
 
5
7
  interface AmountInputProps {
6
8
  label: string;
@@ -35,39 +37,25 @@ const AmountInput: React.FC<AmountInputProps> = ({
35
37
  }
36
38
  };
37
39
 
38
- const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {
39
- if (onChange) {
40
- const value =
41
- event.target.valueAsNumber < (min ?? 0) ? min ?? 0 : event.target.valueAsNumber;
42
- onChange(value);
43
- }
44
- };
45
-
46
40
  return (
47
- <div className="decrement-increment">
41
+ <div className={buildClassName(["decrement-increment", disabled && "decrement-increment--disabled"])}>
48
42
  <label className="decrement-increment__label">{label}</label>
49
43
  <div className="decrement-increment__ui">
50
- <button
44
+ {!disabled && (<button
51
45
  type="button"
52
46
  className="button button--decrement"
53
47
  title={translations.INPUT.DECREASE}
54
48
  disabled={disabled}
55
49
  onClick={handleDecreaseClick}
56
- ></button>
57
- <input
58
- type="number"
59
- min={min}
60
- value={value}
61
- className="decrement-increment__input"
62
- onChange={handleInputChange}
63
- />
64
- <button
50
+ ><Icon name="ui-min" /></button>)}
51
+ <span>{value}</span>
52
+ {!disabled && (<button
65
53
  type="button"
66
54
  className="button button--increment"
67
55
  title={translations.INPUT.INCREASE}
68
56
  disabled={disabled}
69
57
  onClick={handleIncreaseClick}
70
- ></button>
58
+ ><Icon name="ui-plus" /></button>)}
71
59
  </div>
72
60
  </div>
73
61
  );
@@ -14,11 +14,11 @@ import {
14
14
  } from "date-fns";
15
15
  import { chunk, isFunction, range } from "lodash";
16
16
  import React, { useContext } from "react";
17
- import Icon from "../../../booking-wizard/components/icon";
18
17
  import { buildClassName } from "../../../shared/utils/class-util";
19
18
  import { getLocale } from "../../../shared/utils/localization-util";
20
19
  import SettingsContext from "../../settings-context";
21
20
  import CalendarDay from "./calendar-day";
21
+ import Icon from "../icon";
22
22
 
23
23
  interface CalendarProps {
24
24
  year?: number;
@@ -145,7 +145,7 @@ const Calendar: React.FC<CalendarProps> = ({
145
145
  ])}
146
146
  onClick={handlePreviousClick}
147
147
  >
148
- <Icon name="ui-chevron-left" />
148
+ <Icon name="ui-chevron" />
149
149
  </div>
150
150
  <div className="calendar__current-month">
151
151
  {format(focusDate, "MMMM yyyy", { locale })}
@@ -157,7 +157,7 @@ const Calendar: React.FC<CalendarProps> = ({
157
157
  ])}
158
158
  onClick={handleNextClick}
159
159
  >
160
- <Icon name="ui-chevron-right" />
160
+ <Icon name="ui-chevron" />
161
161
  </div>
162
162
  </div>
163
163
  <div className="calendar__day-labels">
@@ -35,7 +35,7 @@ const Dates: React.FC<DatesProps> = ({
35
35
  {
36
36
  name: "offset",
37
37
  options: {
38
- offset: [0, 20],
38
+ offset: [0, -40],
39
39
  },
40
40
  },
41
41
  {
@@ -57,7 +57,7 @@ const Dates: React.FC<DatesProps> = ({
57
57
  setPanelActive(false);
58
58
  }
59
59
  };
60
-
60
+
61
61
  useEffect(() => {
62
62
  document.addEventListener("mousedown", handleDocumentClick);
63
63
  return () => {
@@ -73,8 +73,8 @@ const Dates: React.FC<DatesProps> = ({
73
73
 
74
74
  return (
75
75
  <div className="booking-product__dates" ref={setReferenceElement}>
76
- <div className="booking-product__dates-title">
77
- <Icon name="ui-calendar" />
76
+ <div className="booking-product__dates-title">
77
+ <Icon name="ui-calendar" width={25} height={25} />
78
78
  {translations.PRODUCT.TRAVEL_PERIOD}
79
79
  </div>
80
80
  <div className="form__group form__group--datepicker form__group--icon">
@@ -102,22 +102,28 @@ const Dates: React.FC<DatesProps> = ({
102
102
  />
103
103
  </div>
104
104
  <div
105
- ref={setPopperElement}
106
- className={buildClassName([
107
- "qsm__panel qsm__panel--bordered qsm__panel--dates-pricing",
108
- panelActive && "qsm__panel--active",
109
- ])}
110
- style={mql?.matches ? styles.popper : undefined}
111
- {...attributes.popper}
112
- >
113
- <DateRangePicker
114
- fromDate={value?.fromDate}
115
- toDate={value?.toDate}
116
- duration={duration}
117
- disabledDaysFunction={(date) => isBefore(date, startOfDay(new Date()))}
118
- onSelectionChange={handleSelectionChange}
119
- />
120
- </div>
105
+ ref={setPopperElement}
106
+ className={buildClassName([
107
+ "qsm__panel qsm__panel--bordered qsm__panel--dates-pricing",
108
+ panelActive && "qsm__panel--active",
109
+ !mql?.matches && "qsm__panel--mobile"
110
+ ])}
111
+ style={mql?.matches ? styles.popper : undefined}
112
+ {...attributes.popper}
113
+ >
114
+ <DateRangePicker
115
+ fromDate={value?.fromDate}
116
+ toDate={value?.toDate}
117
+ duration={duration}
118
+ disabledDaysFunction={(date) => isBefore(date, startOfDay(new Date()))}
119
+ onSelectionChange={handleSelectionChange}
120
+ />
121
+ {!mql?.matches && (
122
+ <div className="qsm__close" onClick={() => setPanelActive(false)}>
123
+ <Icon name="ui-close" height={25} width={25} />
124
+ </div>
125
+ )}
126
+ </div>
121
127
  </div>
122
128
  </div>
123
129
  );
@@ -6,12 +6,14 @@ import SettingsContext from "../settings-context";
6
6
  interface FooterProps {
7
7
  priceText: string | undefined;
8
8
  isLoading: boolean;
9
+ isOffer: boolean | undefined;
9
10
  handleBookClick: () => void;
10
11
  }
11
12
 
12
13
  const Footer: React.FC<FooterProps> = ({
13
14
  priceText,
14
15
  isLoading,
16
+ isOffer,
15
17
  handleBookClick
16
18
  }) => {
17
19
  const {
@@ -32,7 +34,7 @@ const Footer: React.FC<FooterProps> = ({
32
34
  <div className="booking-product__footer-label">
33
35
  {translations.SHARED.TOTAL_PRICE}
34
36
  </div>
35
- <div className="booking-summary__footer-price">
37
+ <div className="booking-product__footer-price">
36
38
  {priceText}
37
39
  </div>
38
40
  </div>
@@ -40,7 +42,7 @@ const Footer: React.FC<FooterProps> = ({
40
42
  <div className="booking-product_footer-actions">
41
43
  {priceText ? (
42
44
  <button type="button" className="cta" onClick={handleBookClick}>
43
- {translations.PRODUCT.BOOK_NOW}
45
+ {isOffer ? translations.PRODUCT.TO_YOUR_OFFER : translations.PRODUCT.BOOK_NOW}
44
46
  </button>
45
47
  ) : ((alternativeActionText && alternativeAction)
46
48
  ? (
@@ -1,6 +1,6 @@
1
1
  import React, { useContext } from "react";
2
2
  import Loader from "../../shared/components/loader";
3
- import Rating from "../../shared/components/rating";
3
+ import Rating from "./rating";
4
4
  import { getTranslations } from "../../shared/utils/localization-util";
5
5
  import SettingsContext from "../settings-context";
6
6
  import Icon from "./icon";
@@ -44,17 +44,17 @@ const Header: React.FC<HeaderProps> = ({
44
44
  <div className="package-icons">
45
45
  {priceText && (
46
46
  <div className="package-icons__icon">
47
- <Icon name="ui-bed" title={translations.PRODUCT.STAY_INCLUDED} />
47
+ <Icon name="ui-bed" title={translations.PRODUCT.STAY_INCLUDED} width={25} height={25} />
48
48
  </div>
49
49
  )}
50
50
  {hasFlight && (
51
51
  <div className="package-icons__icon">
52
- <Icon name="ui-flight" title={translations.PRODUCT.FLIGHT_INCLUDED} />
52
+ <Icon name="ui-flight" title={translations.PRODUCT.FLIGHT_INCLUDED} width={25} height={25} />
53
53
  </div>
54
54
  )}
55
55
  {hasTransfer && (
56
56
  <div className="package-icons__icon">
57
- <Icon name="ui-transfer" title={translations.PRODUCT.TRANSFER_INCLUDED} />
57
+ <Icon name="ui-transfer" title={translations.PRODUCT.TRANSFER_INCLUDED} width={25} height={25} />
58
58
  </div>
59
59
  )}
60
60
  </div>