thm-p3-configurator 0.0.83 → 0.0.85

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.
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
  var _index = _interopRequireDefault(require("./__pages__/index"));
12
- var _TEST_ONLY_INTERNAL_ROUTES = _interopRequireDefault(require("./__pages__/internal/__TEST_ONLY_INTERNAL_ROUTES"));
13
12
  var _InternalBranchSelectorModal = _interopRequireDefault(require("./__containers__/internal/InternalBranchSelectorModal"));
14
13
  var _react = _interopRequireWildcard(require("react"));
15
14
  require("react-datepicker/src/stylesheets/datepicker-cssmodules.scss");
@@ -60,6 +59,8 @@ function _interopRequireDefault(e) {
60
59
  default: e
61
60
  };
62
61
  }
62
+ // import TEST_ONLY_INTERNAL_ROUTES from './__pages__/internal/__TEST_ONLY_INTERNAL_ROUTES';
63
+
63
64
  _reactGtmModule.default.initialize({
64
65
  gtmId: APP_CONFIG.googleTagManagerId || 'GTM-TC67SZ4'
65
66
  });
@@ -75,6 +76,6 @@ const App = () => {
75
76
  defaultCountry: APP_CONFIG.country
76
77
  }, /*#__PURE__*/_react.default.createElement(_OrderSessionContext.OrderSessionController, null, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
77
78
  client: _queryClient.default
78
- }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react.default.createElement(_reactHotLoader.AppContainer, null, /*#__PURE__*/_react.default.createElement(_ActiveMarkerContext.ActiveMarkerProvider, null, /*#__PURE__*/_react.default.createElement(_StyleWrapper.default, null, !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_Navbar.default, null), APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalBranchSelectorModal.default, null), APP_CONFIG.nodeEnv === 'development' && APP_CONFIG.internal === true && /*#__PURE__*/_react.default.createElement(_TEST_ONLY_INTERNAL_ROUTES.default, null))))))))));
79
+ }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react.default.createElement(_reactHotLoader.AppContainer, null, /*#__PURE__*/_react.default.createElement(_ActiveMarkerContext.ActiveMarkerProvider, null, /*#__PURE__*/_react.default.createElement(_StyleWrapper.default, null, !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_Navbar.default, null), APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalBranchSelectorModal.default, null), /*#__PURE__*/_react.default.createElement(_index.default, null))))))))));
79
80
  };
80
81
  var _default = exports.default = App;
@@ -45,6 +45,7 @@ const TextInput = _ref => {
45
45
  let {
46
46
  placeholder = '',
47
47
  initialValue = '',
48
+ value,
48
49
  name,
49
50
  onClick = () => {},
50
51
  isDisabled = false,
@@ -55,14 +56,15 @@ const TextInput = _ref => {
55
56
  errorMessage = '',
56
57
  className = ''
57
58
  } = _ref;
58
- const [value, setValue] = (0, _react.useState)(initialValue);
59
+ const [localValue, setLocalValue] = (0, _react.useState)(initialValue);
60
+ const displayValue = value !== undefined ? value : localValue;
59
61
  (0, _react.useEffect)(() => {
60
62
  if (initialValue) {
61
- setValue(initialValue);
63
+ setLocalValue(initialValue);
62
64
  }
63
65
  }, [initialValue]);
64
66
  const handleChange = newValue => {
65
- setValue(newValue);
67
+ setLocalValue(newValue);
66
68
  onChange(newValue);
67
69
  };
68
70
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -78,7 +80,7 @@ const TextInput = _ref => {
78
80
  type: 'text',
79
81
  onClick: onClick,
80
82
  form: form,
81
- value: value,
83
+ value: displayValue,
82
84
  disabled: isDisabled,
83
85
  onChange: e => handleChange(e.target.value),
84
86
  required: isRequired,
@@ -21,12 +21,14 @@ const ProductCardPrice = _ref => {
21
21
  className: (0, _helpers__.withStyle)('card__price')
22
22
  }, (0, _helpers__.formatPrice)(price));
23
23
  }
24
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, discountedPrice < price ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
25
25
  className: (0, _helpers__.withStyle)('card__price')
26
26
  }, /*#__PURE__*/_react.default.createElement("span", {
27
27
  className: (0, _helpers__.withStyle)('strikethrough card-price-label')
28
28
  }, (0, _helpers__.formatPrice)(price))), /*#__PURE__*/_react.default.createElement("div", {
29
29
  className: (0, _helpers__.withStyle)('card__price text-danger')
30
- }, (0, _helpers__.formatPrice)(discountedPrice)));
30
+ }, (0, _helpers__.formatPrice)(discountedPrice))) : /*#__PURE__*/_react.default.createElement("div", {
31
+ className: (0, _helpers__.withStyle)('card__price')
32
+ }, (0, _helpers__.formatPrice)(price)));
31
33
  };
32
34
  var _default = exports.default = ProductCardPrice;
@@ -147,12 +147,6 @@ const BottomNavigationBar = () => {
147
147
  currentDossierType: setType
148
148
  }
149
149
  });
150
- console.log({
151
- type: _OrderSessionContext.orderSessionActions.SET_CURRENT_DOSSIER_TYPE,
152
- payload: {
153
- currentDossierType: setType
154
- }
155
- });
156
150
  }
157
151
  }, {
158
152
  type: type,
@@ -140,8 +140,7 @@ const internalAppointmentFormSchema = (0, _yup.object)({
140
140
  date: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
141
141
  time: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
142
142
  customerAgreed: (0, _yup.boolean)().required(_constants__.FORM_ERROR_MESSAGES.required).isTrue(_constants__.FORM_ERROR_MESSAGES.required),
143
- companyName: (0, _yup.string)().nullable(),
144
- invoiceEmail: (0, _yup.string)().email(_constants__.FORM_ERROR_MESSAGES.email).nullable()
143
+ companyName: (0, _yup.string)().nullable()
145
144
  });
146
145
 
147
146
  /**
@@ -228,7 +227,7 @@ const InternalAppointmentForm = _ref => {
228
227
  };
229
228
  const handleSubmit = async () => {
230
229
  try {
231
- var _customer$firstName, _customer$lastName, _customer$phoneNumber, _customer$houseNumber, _customer$streetName, _customer$countryId, _customer$city, _customer$email, _customer$note, _customer$zipCode, _customer$companyName, _customer$invoiceEmai, _ref2;
230
+ var _customer$firstName, _customer$lastName, _customer$phoneNumber, _customer$houseNumber, _customer$streetName, _customer$countryId, _customer$city, _customer$email, _customer$note, _customer$zipCode, _customer$companyName, _ref2;
232
231
  setErrors([]);
233
232
  if (!model) {
234
233
  // Note: this does not throw on error.
@@ -268,8 +267,7 @@ const InternalAppointmentForm = _ref => {
268
267
  email: (_customer$email = customer === null || customer === void 0 ? void 0 : customer.email) !== null && _customer$email !== void 0 ? _customer$email : undefined,
269
268
  note: (_customer$note = customer === null || customer === void 0 ? void 0 : customer.note) !== null && _customer$note !== void 0 ? _customer$note : undefined,
270
269
  zipCode: (_customer$zipCode = customer === null || customer === void 0 ? void 0 : customer.zipCode) !== null && _customer$zipCode !== void 0 ? _customer$zipCode : undefined,
271
- companyName: (_customer$companyName = customer === null || customer === void 0 ? void 0 : customer.companyName) !== null && _customer$companyName !== void 0 ? _customer$companyName : undefined,
272
- invoiceEmail: (_customer$invoiceEmai = customer === null || customer === void 0 ? void 0 : customer.invoiceEmail) !== null && _customer$invoiceEmai !== void 0 ? _customer$invoiceEmai : undefined
270
+ companyName: (_customer$companyName = customer === null || customer === void 0 ? void 0 : customer.companyName) !== null && _customer$companyName !== void 0 ? _customer$companyName : undefined
273
271
  })),
274
272
  customerAgreed,
275
273
  appointment,
@@ -548,7 +546,7 @@ const InternalAppointmentForm = _ref => {
548
546
  className: (0, _helpers__.withStyle)('modal-title col-12 mb-2')
549
547
  }, "Gegevens van de auto ", /*#__PURE__*/_react.default.createElement("br", null)), /*#__PURE__*/_react.default.createElement("div", {
550
548
  className: (0, _helpers__.withStyle)('col-12')
551
- }, (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Leasemaatschappij && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
549
+ }, (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Leasemaatschappij && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TextInput.default, {
552
550
  placeholder: "",
553
551
  initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.leaseNumber,
554
552
  name: "leaseNumber",
@@ -562,7 +560,20 @@ const InternalAppointmentForm = _ref => {
562
560
  form: "quotation",
563
561
  label: "Goedkeuringsnummer:",
564
562
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['leaseNumber']
565
- }), (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", {
563
+ }), /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
564
+ name: "leaseNumberUnknown",
565
+ initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.leaseNumberUnknown,
566
+ onChange: val => {
567
+ vehicle.leaseNumber = null;
568
+ dispatch({
569
+ type: _OrderSessionContext.orderSessionActions.SET_VEHICLE_LEASE_NUMBER_UNKNOWN,
570
+ payload: {
571
+ leaseNumberUnknown: val
572
+ }
573
+ });
574
+ },
575
+ label: "Goedkeuringsnummer onbekend"
576
+ })), (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", {
566
577
  className: (0, _helpers__.withStyle)('mt-4')
567
578
  }, "Gegevens bedrijf"), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
568
579
  placeholder: "",
@@ -578,20 +589,6 @@ const InternalAppointmentForm = _ref => {
578
589
  form: "quotation",
579
590
  label: "Bedrijfsnaam:",
580
591
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['companyName']
581
- }), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
582
- placeholder: "",
583
- initialValue: customer.invoiceEmail,
584
- name: "invoiceEmail",
585
- onChange: value => dispatch({
586
- type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_INVOICE_EMAIL,
587
- payload: {
588
- invoiceEmail: value
589
- }
590
- }),
591
- isRequired: true,
592
- form: "quotation",
593
- label: "Factureringsmail:",
594
- errorMessage: errors === null || errors === void 0 ? void 0 : errors['invoiceEmail']
595
592
  })), !licensePlate && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
596
593
  placeholder: "",
597
594
  initialValue: _licensePlate,
@@ -601,7 +598,7 @@ const InternalAppointmentForm = _ref => {
601
598
  form: "quotation",
602
599
  label: "Kenteken:",
603
600
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['licensePlate']
604
- }), (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Leasemaatschappij && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
601
+ }), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
605
602
  placeholder: "",
606
603
  initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.chassisNumber,
607
604
  name: "chassisNumber",
@@ -30,6 +30,7 @@ var _queries = require("../../__api__/queries");
30
30
  var _NavigationButton = _interopRequireDefault(require("../../__components__/Buttons/NavigationButton"));
31
31
  var _PrimaryButton = _interopRequireDefault(require("../../__components__/Buttons/PrimaryButton"));
32
32
  var _Card = _interopRequireDefault(require("../../__components__/Cards/Card"));
33
+ var _CheckboxInput = _interopRequireDefault(require("../../__components__/Form/CheckboxInput"));
33
34
  var _DropdownInput = _interopRequireDefault(require("../../__components__/Form/DropdownInput"));
34
35
  var _ErrorMessage = _interopRequireDefault(require("../../__components__/Form/ErrorMessage"));
35
36
  var _RadioButtons = _interopRequireDefault(require("../../__components__/Form/RadioButtons"));
@@ -128,8 +129,7 @@ const internalQuotationFormSchema = (0, _yup.object)({
128
129
  lastName: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
129
130
  email: (0, _yup.string)().email(_constants__.FORM_ERROR_MESSAGES.email).required(_constants__.FORM_ERROR_MESSAGES.required),
130
131
  phoneNumber: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
131
- companyName: (0, _yup.string)().nullable(),
132
- invoiceEmail: (0, _yup.string)().email(_constants__.FORM_ERROR_MESSAGES.email).nullable()
132
+ companyName: (0, _yup.string)().nullable()
133
133
  });
134
134
  const InternalQuotationForm = _ref => {
135
135
  var _branchTypes$byId$aut, _authSession$branch, _marketingChannels$fi;
@@ -172,6 +172,22 @@ const InternalQuotationForm = _ref => {
172
172
  isLoadingMarketingChannels
173
173
  } = (0, _queries.useMarketingChannels)(branchType);
174
174
  const formula = (0, _FormulaContext.useFormula)();
175
+ const {
176
+ products
177
+ } = (0, _queries.useProductsQuery)({
178
+ licensePlate,
179
+ model,
180
+ executionAnswer1,
181
+ executionAnswer2,
182
+ durationAnswer,
183
+ formula,
184
+ priceCalculationDate,
185
+ discountCode
186
+ });
187
+ const productSpecifications = (0, _react.useMemo)(() => {
188
+ var _products$PRODUCT_CAT, _products$PRODUCT_CAT2, _products$PRODUCT_CAT3;
189
+ return (0, _product.parseProductSpecifications)([(_products$PRODUCT_CAT = products[_constants__.PRODUCT_CATEGORIES.TOWBAR]) === null || _products$PRODUCT_CAT === void 0 ? void 0 : _products$PRODUCT_CAT.find(towbar => towbar.articleNumber === selectedTowbar), (_products$PRODUCT_CAT2 = products[_constants__.PRODUCT_CATEGORIES.CABLESET]) === null || _products$PRODUCT_CAT2 === void 0 ? void 0 : _products$PRODUCT_CAT2.find(cableset => cableset.articleNumber === selectedCableset), (_products$PRODUCT_CAT3 = products[_constants__.PRODUCT_CATEGORIES.COMBISET]) === null || _products$PRODUCT_CAT3 === void 0 ? void 0 : _products$PRODUCT_CAT3.find(combiset => combiset.articleNumber === selectedCombiset)]);
190
+ }, [products]);
175
191
  (0, _react.useEffect)(() => {
176
192
  (0, _ui.scrollToFirstErrorMessage)();
177
193
  }, [errors]);
@@ -193,7 +209,7 @@ const InternalQuotationForm = _ref => {
193
209
  */
194
210
  const handleSubmit = async () => {
195
211
  try {
196
- var _customer$firstName, _customer$lastName, _customer$phoneNumber, _customer$houseNumber, _customer$streetName, _customer$countryId, _customer$city, _customer$email, _customer$note, _customer$zipCode, _customer$companyName, _customer$invoiceEmai, _ref2;
212
+ var _customer$firstName, _customer$lastName, _customer$phoneNumber, _customer$houseNumber, _customer$streetName, _customer$countryId, _customer$city, _customer$email, _customer$note, _customer$zipCode, _customer$companyName, _ref2;
197
213
  setErrors(null);
198
214
  if (!model) {
199
215
  // Note: this does not throw on error.
@@ -230,8 +246,7 @@ const InternalQuotationForm = _ref => {
230
246
  email: (_customer$email = customer === null || customer === void 0 ? void 0 : customer.email) !== null && _customer$email !== void 0 ? _customer$email : undefined,
231
247
  note: (_customer$note = customer === null || customer === void 0 ? void 0 : customer.note) !== null && _customer$note !== void 0 ? _customer$note : undefined,
232
248
  zipCode: (_customer$zipCode = customer === null || customer === void 0 ? void 0 : customer.zipCode) !== null && _customer$zipCode !== void 0 ? _customer$zipCode : undefined,
233
- companyName: (_customer$companyName = customer === null || customer === void 0 ? void 0 : customer.companyName) !== null && _customer$companyName !== void 0 ? _customer$companyName : undefined,
234
- invoiceEmail: (_customer$invoiceEmai = customer === null || customer === void 0 ? void 0 : customer.invoiceEmail) !== null && _customer$invoiceEmai !== void 0 ? _customer$invoiceEmai : undefined
249
+ companyName: (_customer$companyName = customer === null || customer === void 0 ? void 0 : customer.companyName) !== null && _customer$companyName !== void 0 ? _customer$companyName : undefined
235
250
  }),
236
251
  chassisNumber: chassisNumber !== null && chassisNumber !== void 0 ? chassisNumber : undefined,
237
252
  channel,
@@ -410,6 +425,19 @@ const InternalQuotationForm = _ref => {
410
425
  form: "quotation",
411
426
  label: "Goedkeuringsnummer:",
412
427
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['leaseNumber']
428
+ }), /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
429
+ name: "leaseNumberUnknown",
430
+ initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.leaseNumberUnknown,
431
+ onChange: val => {
432
+ vehicle.leaseNumber = null;
433
+ dispatch({
434
+ type: _OrderSessionContext.orderSessionActions.SET_VEHICLE_LEASE_NUMBER_UNKNOWN,
435
+ payload: {
436
+ leaseNumberUnknown: val
437
+ }
438
+ });
439
+ },
440
+ label: "Goedkeuringsnummer onbekend"
413
441
  })), (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", {
414
442
  className: (0, _helpers__.withStyle)('mt-4')
415
443
  }, "Gegevens bedrijf"), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
@@ -426,21 +454,9 @@ const InternalQuotationForm = _ref => {
426
454
  form: "quotation",
427
455
  label: "Bedrijfsnaam:",
428
456
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['companyName']
429
- }), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
430
- placeholder: "",
431
- initialValue: customer.invoiceEmail,
432
- name: "invoiceEmail",
433
- onChange: value => dispatch({
434
- type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_INVOICE_EMAIL,
435
- payload: {
436
- invoiceEmail: value
437
- }
438
- }),
439
- isRequired: true,
440
- form: "quotation",
441
- label: "Factureringsmail:",
442
- errorMessage: errors === null || errors === void 0 ? void 0 : errors['invoiceEmail']
443
- })), !licensePlate && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
457
+ })), /*#__PURE__*/_react.default.createElement("h5", {
458
+ className: (0, _helpers__.withStyle)('mt-4')
459
+ }, "Voertuiggegevens"), !licensePlate && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
444
460
  placeholder: "",
445
461
  initialValue: _licensePlate,
446
462
  name: "licensePlate",
@@ -449,7 +465,7 @@ const InternalQuotationForm = _ref => {
449
465
  form: "quotation",
450
466
  label: "Kenteken:",
451
467
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['licensePlate']
452
- }), (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Leasemaatschappij && /*#__PURE__*/_react.default.createElement(_TextInput.default, {
468
+ }), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
453
469
  placeholder: "",
454
470
  initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.chassisNumber,
455
471
  name: "chassisNumber",
@@ -463,7 +479,13 @@ const InternalQuotationForm = _ref => {
463
479
  form: "quotation",
464
480
  label: "Chassisnummer:",
465
481
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['chassisNumber']
466
- }), isError && /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, {
482
+ }), /*#__PURE__*/_react.default.createElement("div", {
483
+ className: (0, _helpers__.withStyle)('my-2 fw-bold')
484
+ }, "Opties aanwezig:"), productSpecifications !== null && productSpecifications !== void 0 && productSpecifications.length ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("ul", null, productSpecifications === null || productSpecifications === void 0 ? void 0 : productSpecifications.map(specification => /*#__PURE__*/_react.default.createElement("li", {
485
+ key: specification
486
+ }, specification)))) : /*#__PURE__*/_react.default.createElement("div", {
487
+ className: (0, _helpers__.withStyle)('text-muted my-2')
488
+ }, "Geen opties gevonden...")), isError && /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, {
467
489
  message: 'Er is een fout opgetreden bij het maken van de offerte, probeer het opnieuw.'
468
490
  }), /*#__PURE__*/_react.default.createElement("div", {
469
491
  className: (0, _helpers__.withStyle)('d-flex align-items-center justify-content-end mt-4')
@@ -475,7 +497,7 @@ const InternalQuotationForm = _ref => {
475
497
  onClick: handleSubmit,
476
498
  isDisabled: isLoading,
477
499
  label: 'Offerte maken'
478
- }))), /*#__PURE__*/_react.default.createElement(_InternalQuotationSuccessModal.default, {
500
+ })), /*#__PURE__*/_react.default.createElement(_InternalQuotationSuccessModal.default, {
479
501
  isOpen: isSuccess,
480
502
  email: customer === null || customer === void 0 ? void 0 : customer.email
481
503
  }));
@@ -7,7 +7,7 @@ require("core-js/modules/es.weak-map.js");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = InternalSingleOrderFilters;
10
+ exports.default = void 0;
11
11
  require("core-js/modules/esnext.iterator.map.js");
12
12
  require("core-js/modules/web.dom-collections.iterator.js");
13
13
  var _react = _interopRequireWildcard(require("react"));
@@ -53,7 +53,7 @@ function _interopRequireWildcard(e, r) {
53
53
  }
54
54
  return n.default = e, t && t.set(e, n), n;
55
55
  }
56
- function InternalSingleOrderFilters(_ref) {
56
+ const InternalSingleOrderFilters = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
57
57
  let {
58
58
  onFilterChange,
59
59
  openModal,
@@ -61,8 +61,10 @@ function InternalSingleOrderFilters(_ref) {
61
61
  } = _ref;
62
62
  const baseFormula = (0, _FormulaContext.useFormula)();
63
63
  const [{
64
- singleOrderFormulaCode
65
- }, _] = (0, _OrderSessionContext.useOrderSession)();
64
+ singleOrderFormulaCode,
65
+ licensePlate,
66
+ model
67
+ }, dispatch] = (0, _OrderSessionContext.useOrderSession)();
66
68
  let formula = baseFormula;
67
69
  if (singleOrderFormulaCode) {
68
70
  formula = singleOrderFormulaCode;
@@ -90,35 +92,58 @@ function InternalSingleOrderFilters(_ref) {
90
92
  const [selectedArticleSubGroup, setSelectedArticleSubGroup] = (0, _react.useState)('');
91
93
  const [selectedArticleNumber, setSelectedArticleNumber] = (0, _react.useState)('');
92
94
  const [showAllArticles, setShowAllArticles] = (0, _react.useState)(false);
93
- const handleResetFilters = () => {
95
+ const resetLicensePlateFilters = () => {
96
+ if (licensePlate || model) {
97
+ dispatch({
98
+ type: _OrderSessionContext.orderSessionActions.RESET_LICENSEPLATE_FILTERS
99
+ });
100
+ }
101
+ };
102
+ const handleResetFilters = function handleResetFilters() {
103
+ let dontReset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
94
104
  setSelectedArticleType('');
95
105
  setSelectedArticleGroup('');
96
106
  setSelectedArticleSubGroup('');
97
107
  setSelectedArticleNumber('');
98
108
  setShowAllArticles(false);
99
- resetFilters();
109
+ if (!dontReset) {
110
+ resetFilters();
111
+ }
100
112
  };
113
+ (0, _react.useImperativeHandle)(ref, () => ({
114
+ resetFilters: dontReset => handleResetFilters(dontReset)
115
+ }));
101
116
  (0, _react.useEffect)(() => {
102
- onFilterChange('type', selectedArticleType);
117
+ if (!licensePlate && !model) {
118
+ onFilterChange('type', selectedArticleType);
119
+ }
103
120
  if (!selectedArticleType) {
104
121
  setSelectedArticleGroup('');
105
122
  setSelectedArticleSubGroup('');
106
123
  }
107
124
  }, [selectedArticleType]);
108
125
  (0, _react.useEffect)(() => {
109
- onFilterChange('group', selectedArticleGroup);
126
+ if (!licensePlate && !model) {
127
+ onFilterChange('group', selectedArticleGroup);
128
+ }
110
129
  if (!selectedArticleGroup) {
111
130
  setSelectedArticleSubGroup('');
112
131
  }
113
132
  }, [selectedArticleGroup]);
114
133
  (0, _react.useEffect)(() => {
115
- onFilterChange('showAllArticles', showAllArticles);
134
+ if (!licensePlate && !model) {
135
+ onFilterChange('showAllArticles', showAllArticles);
136
+ }
116
137
  }, [showAllArticles]);
117
138
  (0, _react.useEffect)(() => {
118
- onFilterChange('subgroup', selectedArticleSubGroup);
139
+ if (!licensePlate && !model) {
140
+ onFilterChange('subgroup', selectedArticleSubGroup);
141
+ }
119
142
  }, [selectedArticleSubGroup]);
120
143
  (0, _react.useEffect)(() => {
121
- onFilterChange('articleNumber', selectedArticleNumber);
144
+ if (!licensePlate && !model) {
145
+ onFilterChange('articleNumber', selectedArticleNumber);
146
+ }
122
147
  }, [selectedArticleNumber]);
123
148
  const {
124
149
  articleGroups,
@@ -136,7 +161,7 @@ function InternalSingleOrderFilters(_ref) {
136
161
  className: (0, _helpers__.withStyle)('card-body d-flex justify-content-between align-items-center')
137
162
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h2", null, "Filters"), /*#__PURE__*/_react.default.createElement(_LinkButton.default, {
138
163
  label: "Reset filters",
139
- onClick: handleResetFilters
164
+ onClick: () => handleResetFilters(false)
140
165
  })), /*#__PURE__*/_react.default.createElement(_OutlinedButton.default, {
141
166
  label: "Filter op auto",
142
167
  icon: "fa fa-car",
@@ -162,7 +187,10 @@ function InternalSingleOrderFilters(_ref) {
162
187
  initialValue: selectedArticleType,
163
188
  label: "Artikel soort",
164
189
  placeholder: "Maak een keuze",
165
- onChange: option => setSelectedArticleType(option.value),
190
+ onChange: option => {
191
+ resetLicensePlateFilters();
192
+ setSelectedArticleType(option.value);
193
+ },
166
194
  className: "w-100"
167
195
  })), /*#__PURE__*/_react.default.createElement("div", {
168
196
  className: (0, _helpers__.withStyle)('col')
@@ -178,6 +206,7 @@ function InternalSingleOrderFilters(_ref) {
178
206
  label: "Artikel groep",
179
207
  placeholder: "Maak een keuze",
180
208
  onChange: option => {
209
+ resetLicensePlateFilters();
181
210
  setSelectedArticleGroup(option.value);
182
211
  setSelectedArticleSubGroup('');
183
212
  },
@@ -196,6 +225,7 @@ function InternalSingleOrderFilters(_ref) {
196
225
  label: "Artikel subgroep",
197
226
  placeholder: "Maak een keuze",
198
227
  onChange: option => {
228
+ resetLicensePlateFilters();
199
229
  setSelectedArticleSubGroup(option.value);
200
230
  },
201
231
  className: "w-100"
@@ -203,14 +233,22 @@ function InternalSingleOrderFilters(_ref) {
203
233
  className: (0, _helpers__.withStyle)('col')
204
234
  }, /*#__PURE__*/_react.default.createElement(_TextInput.default, {
205
235
  isRequired: false,
236
+ value: selectedArticleNumber,
206
237
  label: "Artikel nummer",
207
238
  placeholder: "Zoeken",
208
- onChange: value => setSelectedArticleNumber(value),
239
+ onChange: value => {
240
+ resetLicensePlateFilters();
241
+ setSelectedArticleNumber(value);
242
+ },
209
243
  className: "w-100"
210
244
  })), isTmg && /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
211
245
  name: 'showAllArticles',
212
246
  initialValue: showAllArticles,
213
- onChange: value => setShowAllArticles(value),
247
+ onChange: value => {
248
+ resetLicensePlateFilters();
249
+ setShowAllArticles(value);
250
+ },
214
251
  label: "Toon alle artikelen"
215
252
  }))));
216
- }
253
+ });
254
+ var _default = exports.default = InternalSingleOrderFilters;
@@ -122,6 +122,7 @@ const INITIAL_ORDER_SESSION_STATE = {
122
122
  selectedTowbar: null,
123
123
  selectedCableset: null,
124
124
  selectedCombiset: null,
125
+ leaseNumberUnknown: true,
125
126
  selectedDiscountedProducts: [],
126
127
  discountsInitialized: false,
127
128
  internalNote: null,
@@ -155,8 +156,7 @@ const INITIAL_ORDER_SESSION_STATE = {
155
156
  note: '',
156
157
  zipCode: '',
157
158
  houseNumber: '',
158
- companyName: '',
159
- invoiceEmail: ''
159
+ companyName: ''
160
160
  }
161
161
  };
162
162
  const orderSessionActions = exports.orderSessionActions = {
@@ -205,6 +205,7 @@ const orderSessionActions = exports.orderSessionActions = {
205
205
  SET_DISCOUNT_CODE: 'SET_DISCOUNT_CODE',
206
206
  SET_CUSTOMER_ANWB_ID: 'SET_CUSTOMER_ANWB_ID',
207
207
  SET_VEHICLE_LEASE_NUMBER: 'SET_VEHICLE_LEASE_NUMBER',
208
+ SET_VEHICLE_LEASE_NUMBER_UNKNOWN: 'SET_VEHICLE_LEASE_NUMBER_UNKNOWN',
208
209
  SET_VEHICLE_OWNERSHIP_TYPE: 'SET_VEHICLE_OWNERSHIP_TYPE',
209
210
  SET_MARKETING_CHANNEL: 'SET_MARKETING_CHANNEL',
210
211
  SET_CUSTOMER_ZIP_CODE: 'SET_CUSTOMER_ZIP_CODE',
@@ -221,8 +222,7 @@ const orderSessionActions = exports.orderSessionActions = {
221
222
  SET_FRANCHISE_NAME: 'SET_FRANCHISE_NAME',
222
223
  SET_PRICE_CALCULATION_DATE: 'SET_PRICE_CALCULATION_DATE',
223
224
  SET_CUSTOMER_AGREED: 'SET_CUSTOMER_AGREED',
224
- SET_CUSTOMER_COMPANY_NAME: 'SET_CUSTOMER_COMPANY_NAME',
225
- SET_CUSTOMER_INVOICE_EMAIL: 'SET_CUSTOMER_INVOICE_EMAIL'
225
+ SET_CUSTOMER_COMPANY_NAME: 'SET_CUSTOMER_COMPANY_NAME'
226
226
  };
227
227
  const orderSessionReducer = (state, action) => {
228
228
  switch (action.type) {
@@ -797,7 +797,19 @@ const orderSessionReducer = (state, action) => {
797
797
  } = action.payload;
798
798
  return _objectSpread(_objectSpread({}, state), {}, {
799
799
  vehicle: _objectSpread(_objectSpread({}, state === null || state === void 0 ? void 0 : state.vehicle), {}, {
800
- leaseNumber
800
+ leaseNumber,
801
+ leaseNumberUnknown: leaseNumber.length === 0
802
+ })
803
+ });
804
+ }
805
+ case orderSessionActions.SET_VEHICLE_LEASE_NUMBER_UNKNOWN:
806
+ {
807
+ const {
808
+ leaseNumberUnknown
809
+ } = action.payload;
810
+ return _objectSpread(_objectSpread({}, state), {}, {
811
+ vehicle: _objectSpread(_objectSpread({}, state === null || state === void 0 ? void 0 : state.vehicle), {}, {
812
+ leaseNumberUnknown
801
813
  })
802
814
  });
803
815
  }
@@ -949,17 +961,6 @@ const orderSessionReducer = (state, action) => {
949
961
  })
950
962
  });
951
963
  }
952
- case orderSessionActions.SET_CUSTOMER_INVOICE_EMAIL:
953
- {
954
- const {
955
- invoiceEmail
956
- } = action.payload;
957
- return _objectSpread(_objectSpread({}, state), {}, {
958
- customer: _objectSpread(_objectSpread({}, state.customer), {}, {
959
- invoiceEmail
960
- })
961
- });
962
- }
963
964
  default:
964
965
  return state;
965
966
  }
@@ -123,6 +123,7 @@ const InternalSingleOrderPage = () => {
123
123
  page: 0
124
124
  });
125
125
  const customerFormRef = (0, _react.useRef)();
126
+ const filtersRef = (0, _react.useRef)();
126
127
  const {
127
128
  createSingleOrder,
128
129
  isCreatingSingleOrder,
@@ -212,7 +213,11 @@ const InternalSingleOrderPage = () => {
212
213
  });
213
214
  }
214
215
  };
216
+ const [filtersResetTrigger, setFiltersResetTrigger] = (0, _react.useState)(false);
215
217
  const filterModelOrLicenseplate = filter => {
218
+ var _filtersRef$current;
219
+ (_filtersRef$current = filtersRef.current) === null || _filtersRef$current === void 0 || _filtersRef$current.resetFilters(true);
220
+ resetFilters();
216
221
  if (filter.type === 'model') {
217
222
  dispatch({
218
223
  type: _OrderSessionContext.orderSessionActions.SET_MODEL,
@@ -280,6 +285,7 @@ const InternalSingleOrderPage = () => {
280
285
  }), /*#__PURE__*/_react.default.createElement("div", {
281
286
  className: (0, _helpers__.withStyle)('container page-content')
282
287
  }, showProductOverview && /*#__PURE__*/_react.default.createElement(_InternalSingleOrderFilters.default, {
288
+ ref: filtersRef,
283
289
  resetFilters: resetFilters,
284
290
  onFilterChange: handleSelectedFilterChange,
285
291
  openModal: () => setIsLicenseplateModalOpen(true)
@@ -28,3 +28,25 @@ button[class*='link']:not([class*='btn']) {
28
28
  border: 0;
29
29
  text-decoration: underline;
30
30
  }
31
+
32
+ .strikethrough {
33
+ @include font-size(16);
34
+
35
+ position: relative;
36
+
37
+ &::before {
38
+ color: red;
39
+ position: absolute;
40
+ content: '';
41
+ left: 0;
42
+ top: 50%;
43
+ right: 0;
44
+ border-top: 2px solid;
45
+ border-color: red;
46
+ -webkit-transform: rotate(-5deg);
47
+ -moz-transform: rotate(-5deg);
48
+ -ms-transform: rotate(-5deg);
49
+ -o-transform: rotate(-5deg);
50
+ transform: rotate(-5deg);
51
+ }
52
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.83",
3
+ "version": "0.0.85",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",