thm-p3-configurator 0.0.172 → 0.0.173

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.
@@ -31,6 +31,7 @@ var _PrimaryButton = _interopRequireDefault(require("../__components__/Buttons/P
31
31
  var _CardWide = _interopRequireDefault(require("../__components__/Cards/CardWide"));
32
32
  var _CheckboxInput = _interopRequireDefault(require("../__components__/Form/CheckboxInput"));
33
33
  var _ErrorMessage = _interopRequireDefault(require("../__components__/Form/ErrorMessage"));
34
+ var _RadioButtons = _interopRequireDefault(require("../__components__/Form/RadioButtons"));
34
35
  var _TextAreaInput = _interopRequireDefault(require("../__components__/Form/TextAreaInput"));
35
36
  var _TextInput = _interopRequireDefault(require("../__components__/Form/TextInput"));
36
37
  var _constants__ = require("../__constants__");
@@ -112,16 +113,23 @@ function _toPrimitive(t, r) {
112
113
  return ("string" === r ? String : Number)(t);
113
114
  }
114
115
  const appointmentFormSchema = (0, _yup.object)({
115
- firstName: (0, _yup.string)().nullable(),
116
+ firstName: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
116
117
  infix: (0, _yup.string)().nullable(),
117
118
  lastName: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
118
119
  email: (0, _yup.string)().email(_constants__.FORM_ERROR_MESSAGES.email).required(_constants__.FORM_ERROR_MESSAGES.required),
119
120
  phoneNumber: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
121
+ ownershipType: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
122
+ companyName: (0, _yup.string)().when('ownershipType', {
123
+ is: _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk,
124
+ then: schema => schema.required(_constants__.FORM_ERROR_MESSAGES.required),
125
+ otherwise: schema => schema.nullable()
126
+ }),
120
127
  termsAndConditions: (0, _yup.boolean)().isTrue(_constants__.FORM_ERROR_MESSAGES.required).required(_constants__.FORM_ERROR_MESSAGES.required)
121
128
  });
122
129
  const AppointmentForm = () => {
123
130
  const [{
124
131
  customer,
132
+ vehicle,
125
133
  licensePlate,
126
134
  model,
127
135
  durationAnswer,
@@ -152,6 +160,7 @@ const AppointmentForm = () => {
152
160
  var _customer$firstName, _customer$lastName;
153
161
  setErrors(null);
154
162
  appointmentFormSchema.validateSync(_objectSpread(_objectSpread({}, customer), {}, {
163
+ ownershipType: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType,
155
164
  termsAndConditions: isTermsAccepted
156
165
  }), {
157
166
  strict: false,
@@ -165,6 +174,9 @@ const AppointmentForm = () => {
165
174
  execution1: executionAnswer1,
166
175
  execution2: executionAnswer2
167
176
  }),
177
+ vehicle: (0, _helpers__.removeNullishProps)({
178
+ ownershipType: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType
179
+ }),
168
180
  customer: (0, _helpers__.removeNullishProps)(_objectSpread(_objectSpread({}, customer), {}, {
169
181
  firstName: (_customer$firstName = customer === null || customer === void 0 ? void 0 : customer.firstName) !== null && _customer$firstName !== void 0 ? _customer$firstName : undefined,
170
182
  lastName: (_customer$lastName = customer === null || customer === void 0 ? void 0 : customer.lastName) !== null && _customer$lastName !== void 0 ? _customer$lastName : undefined
@@ -216,6 +228,23 @@ const AppointmentForm = () => {
216
228
  }, /*#__PURE__*/_react.default.createElement("h6", {
217
229
  className: (0, _helpers__.withStyle)('modal-title col-12 mb-2')
218
230
  }, "Gegevens"), /*#__PURE__*/_react.default.createElement("div", {
231
+ className: (0, _helpers__.withStyle)('col-12 mb-3')
232
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtons.default, {
233
+ name: "ownershipType",
234
+ label: "Type:",
235
+ initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType,
236
+ onChange: val => {
237
+ dispatch({
238
+ type: _OrderSessionContext.orderSessionActions.SET_VEHICLE_OWNERSHIP_TYPE,
239
+ payload: {
240
+ ownershipType: val
241
+ }
242
+ });
243
+ },
244
+ options: Object.values(_constants__.VEHICLE_OWNERSHIP_TYPE),
245
+ isRequired: true,
246
+ errorMessage: errors === null || errors === void 0 ? void 0 : errors['ownershipType']
247
+ })), /*#__PURE__*/_react.default.createElement("div", {
219
248
  className: (0, _helpers__.withStyle)('col-12 col-md-6')
220
249
  }, /*#__PURE__*/_react.default.createElement(_TextInput.default, {
221
250
  placeholder: "",
@@ -227,7 +256,7 @@ const AppointmentForm = () => {
227
256
  firstName: value
228
257
  }
229
258
  }),
230
- isRequired: false,
259
+ isRequired: true,
231
260
  form: "appointment",
232
261
  label: "Voornaam:",
233
262
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['firstName']
@@ -289,7 +318,25 @@ const AppointmentForm = () => {
289
318
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['phoneNumber']
290
319
  })), /*#__PURE__*/_react.default.createElement("div", {
291
320
  className: (0, _helpers__.withStyle)('col-12 col-md-6')
292
- }, /*#__PURE__*/_react.default.createElement(_TextAreaInput.default, {
321
+ }, (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk && /*#__PURE__*/_react.default.createElement("div", {
322
+ className: (0, _helpers__.withStyle)('mb-3')
323
+ }, /*#__PURE__*/_react.default.createElement("h6", {
324
+ className: (0, _helpers__.withStyle)('mb-2')
325
+ }, "Gegevens bedrijf"), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
326
+ placeholder: "",
327
+ initialValue: customer.companyName,
328
+ name: "companyName",
329
+ onChange: value => dispatch({
330
+ type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_COMPANY_NAME,
331
+ payload: {
332
+ companyName: value
333
+ }
334
+ }),
335
+ isRequired: true,
336
+ form: "appointment",
337
+ label: "Bedrijfsnaam:",
338
+ errorMessage: errors === null || errors === void 0 ? void 0 : errors['companyName']
339
+ })), /*#__PURE__*/_react.default.createElement(_TextAreaInput.default, {
293
340
  placeholder: "",
294
341
  initialValue: "",
295
342
  name: "note",
@@ -27,6 +27,8 @@ var _PrimaryButton = _interopRequireDefault(require("../__components__/Buttons/P
27
27
  var _Card = _interopRequireDefault(require("../__components__/Cards/Card"));
28
28
  var _CheckboxInput = _interopRequireDefault(require("../__components__/Form/CheckboxInput"));
29
29
  var _ErrorMessage = _interopRequireDefault(require("../__components__/Form/ErrorMessage"));
30
+ var _RadioButtons = _interopRequireDefault(require("../__components__/Form/RadioButtons"));
31
+ var _TextAreaInput = _interopRequireDefault(require("../__components__/Form/TextAreaInput"));
30
32
  var _TextInput = _interopRequireDefault(require("../__components__/Form/TextInput"));
31
33
  var _constants__ = require("../__constants__");
32
34
  var _FormulaContext = require("../__context__/FormulaContext");
@@ -113,11 +115,18 @@ const quotationFormSchema = (0, _yup.object)({
113
115
  lastName: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
114
116
  email: (0, _yup.string)().email(_constants__.FORM_ERROR_MESSAGES.email).required(_constants__.FORM_ERROR_MESSAGES.required),
115
117
  phoneNumber: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
118
+ ownershipType: (0, _yup.string)().required(_constants__.FORM_ERROR_MESSAGES.required),
119
+ companyName: (0, _yup.string)().when('ownershipType', {
120
+ is: _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk,
121
+ then: schema => schema.required(_constants__.FORM_ERROR_MESSAGES.required),
122
+ otherwise: schema => schema.nullable()
123
+ }),
116
124
  termsAndConditions: (0, _yup.boolean)().isTrue(_constants__.FORM_ERROR_MESSAGES.required).required(_constants__.FORM_ERROR_MESSAGES.required)
117
125
  });
118
126
  const QuotationForm = () => {
119
127
  const [{
120
128
  customer,
129
+ vehicle,
121
130
  licensePlate,
122
131
  model,
123
132
  durationAnswer,
@@ -148,6 +157,7 @@ const QuotationForm = () => {
148
157
  try {
149
158
  setErrors(null);
150
159
  quotationFormSchema.validateSync(_objectSpread(_objectSpread({}, customer), {}, {
160
+ ownershipType: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType,
151
161
  termsAndConditions: isTermsAccepted
152
162
  }), {
153
163
  strict: false,
@@ -162,6 +172,9 @@ const QuotationForm = () => {
162
172
  execution1: executionAnswer1,
163
173
  execution2: executionAnswer2
164
174
  }),
175
+ vehicle: (0, _helpers__.removeNullishProps)({
176
+ ownershipType: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType
177
+ }),
165
178
  discount: discountCode ? {
166
179
  code: discountCode
167
180
  } : null,
@@ -205,15 +218,35 @@ const QuotationForm = () => {
205
218
  title: '',
206
219
  isCentered: true,
207
220
  isScrollable: true,
208
- isWide: false,
209
- isNarrow: true
221
+ isWide: true
210
222
  }, /*#__PURE__*/_react.default.createElement("h2", {
211
223
  className: (0, _helpers__.withStyle)('modal-title text-center my-2')
212
224
  }, "Even controleren"), /*#__PURE__*/_react.default.createElement("div", {
213
225
  className: (0, _helpers__.withStyle)('quotation-form')
214
226
  }, /*#__PURE__*/_react.default.createElement("p", {
215
227
  className: (0, _helpers__.withStyle)('text-center')
216
- }, "Zijn de onderstaande gegevens juist ingevuld?"), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
228
+ }, "Zijn de onderstaande gegevens juist ingevuld?"), /*#__PURE__*/_react.default.createElement("div", {
229
+ className: (0, _helpers__.withStyle)('col-12 mb-3')
230
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtons.default, {
231
+ name: "ownershipType",
232
+ label: "Type:",
233
+ initialValue: vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType,
234
+ onChange: val => {
235
+ dispatch({
236
+ type: _OrderSessionContext.orderSessionActions.SET_VEHICLE_OWNERSHIP_TYPE,
237
+ payload: {
238
+ ownershipType: val
239
+ }
240
+ });
241
+ },
242
+ options: Object.values(_constants__.VEHICLE_OWNERSHIP_TYPE),
243
+ isRequired: true,
244
+ errorMessage: errors === null || errors === void 0 ? void 0 : errors['ownershipType']
245
+ })), /*#__PURE__*/_react.default.createElement("div", {
246
+ className: (0, _helpers__.withStyle)('row')
247
+ }, /*#__PURE__*/_react.default.createElement("div", {
248
+ className: (0, _helpers__.withStyle)('col-12 col-md-6')
249
+ }, /*#__PURE__*/_react.default.createElement(_TextInput.default, {
217
250
  placeholder: "",
218
251
  initialValue: customer.firstName,
219
252
  name: "firstName",
@@ -283,6 +316,40 @@ const QuotationForm = () => {
283
316
  form: "quotation",
284
317
  label: "Telefoonnummer:",
285
318
  errorMessage: errors === null || errors === void 0 ? void 0 : errors['phoneNumber']
319
+ })), /*#__PURE__*/_react.default.createElement("div", {
320
+ className: (0, _helpers__.withStyle)('col-12 col-md-6')
321
+ }, (vehicle === null || vehicle === void 0 ? void 0 : vehicle.ownershipType) === _constants__.VEHICLE_OWNERSHIP_TYPE.Zakelijk && /*#__PURE__*/_react.default.createElement("div", {
322
+ className: (0, _helpers__.withStyle)('mb-3')
323
+ }, /*#__PURE__*/_react.default.createElement("h6", {
324
+ className: (0, _helpers__.withStyle)('mb-2')
325
+ }, "Gegevens bedrijf"), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
326
+ placeholder: "",
327
+ initialValue: customer.companyName,
328
+ name: "companyName",
329
+ onChange: value => dispatch({
330
+ type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_COMPANY_NAME,
331
+ payload: {
332
+ companyName: value
333
+ }
334
+ }),
335
+ isRequired: true,
336
+ form: "quotation",
337
+ label: "Bedrijfsnaam:",
338
+ errorMessage: errors === null || errors === void 0 ? void 0 : errors['companyName']
339
+ })), /*#__PURE__*/_react.default.createElement(_TextAreaInput.default, {
340
+ placeholder: "",
341
+ initialValue: customer.note,
342
+ name: "note",
343
+ onChange: value => dispatch({
344
+ type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_NOTE,
345
+ payload: {
346
+ note: value
347
+ }
348
+ }),
349
+ isRequired: false,
350
+ form: "quotation",
351
+ label: "Eventuele vragen of opmerkingen:",
352
+ errorMessage: errors === null || errors === void 0 ? void 0 : errors['note']
286
353
  }), /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
287
354
  isRequired: true,
288
355
  name: 'termsAndConditions',
@@ -297,7 +364,7 @@ const QuotationForm = () => {
297
364
  form: "quotation"
298
365
  }), isCreateQuotationError && /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, {
299
366
  message: 'Er is een fout opgetreden bij het maken van de offerte, probeer het opnieuw.'
300
- }), /*#__PURE__*/_react.default.createElement("div", {
367
+ }))), /*#__PURE__*/_react.default.createElement("div", {
301
368
  className: (0, _helpers__.withStyle)('d-flex align-items-center justify-content-end mt-4')
302
369
  }, /*#__PURE__*/_react.default.createElement(_NavigationButton.default, {
303
370
  variant: "link",
@@ -34,6 +34,8 @@ const ExtraProductsPage = () => {
34
34
  className: (0, _helpers__.withStyle)('col-lg')
35
35
  }, /*#__PURE__*/_react.default.createElement(_ExtraProductsOverview.default, null)), /*#__PURE__*/_react.default.createElement("div", {
36
36
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-4 pt-5")
37
- }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null));
37
+ }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
38
+ key: "configurator-vehicle-data"
39
+ })))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null));
38
40
  };
39
41
  var _default = exports.default = ExtraProductsPage;
@@ -37,7 +37,9 @@ const ProductsPage = () => {
37
37
  className: (0, _helpers__.withStyle)('col-lg')
38
38
  }, /*#__PURE__*/_react.default.createElement(_ProductsOverview.default, null)), /*#__PURE__*/_react.default.createElement("div", {
39
39
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-4 pt-5")
40
- }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, null), /*#__PURE__*/_react.default.createElement("h6", {
40
+ }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
41
+ key: "configurator-vehicle-data"
42
+ }), /*#__PURE__*/_react.default.createElement("h6", {
41
43
  className: (0, _helpers__.withStyle)('mt-5')
42
44
  }, "Trekhaakmontage"), /*#__PURE__*/_react.default.createElement(_UspsList.default, {
43
45
  usps: ['Altijd een specialist in de buurt', 'All-in prijzen, zonder verrassingen', "Óók voor elektrische auto's"]
@@ -41,6 +41,8 @@ const InternalExtraProductsPage = () => {
41
41
  className: (0, _helpers__.withStyle)('col-xxl')
42
42
  }, /*#__PURE__*/_react.default.createElement(_ExtraProductsOverview.default, null)), /*#__PURE__*/_react.default.createElement("div", {
43
43
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-12 pt-5")
44
- }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, null), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
44
+ }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
45
+ key: "configurator-vehicle-data"
46
+ }), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
45
47
  };
46
48
  var _default = exports.default = InternalExtraProductsPage;
@@ -48,7 +48,9 @@ const InternalOverviewPage = () => {
48
48
  className: (0, _helpers__.withStyle)('col-xxl')
49
49
  }, /*#__PURE__*/_react.default.createElement(_internal.InternalDiscountCodeSelector, null), /*#__PURE__*/_react.default.createElement(_ProductsCartOverview.default, null), /*#__PURE__*/_react.default.createElement(_ProductDiscountCard.default, null)), /*#__PURE__*/_react.default.createElement("div", {
50
50
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-12 pt-5")
51
- }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, null), /*#__PURE__*/_react.default.createElement("div", {
51
+ }, /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
52
+ key: "configurator-vehicle-data"
53
+ }), /*#__PURE__*/_react.default.createElement("div", {
52
54
  className: (0, _helpers__.withStyle)('d-grid gap-2 mt-3')
53
55
  }, (!existingDossierType || existingDossierType === _constants__.DOSSIER_TYPES.Quotation) && /*#__PURE__*/_react.default.createElement(_NavigationButton.default, {
54
56
  to: '/configurator/offerte',
@@ -42,6 +42,8 @@ const InternalProductsPage = () => {
42
42
  className: (0, _helpers__.withStyle)("col-xxl")
43
43
  }, /*#__PURE__*/_react.default.createElement(_ProductsOverview.default, null)), /*#__PURE__*/_react.default.createElement("div", {
44
44
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-12 pt-5")
45
- }, APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalPriceCalculationSelector.default, null), /*#__PURE__*/_react.default.createElement(_VehicleData.default, null), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
45
+ }, APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalPriceCalculationSelector.default, null), /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
46
+ key: "configurator-vehicle-data"
47
+ }), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
46
48
  };
47
49
  var _default = exports.default = InternalProductsPage;
@@ -317,6 +317,7 @@ const InternalSingleOrderPage = () => {
317
317
  }))), /*#__PURE__*/_react.default.createElement("div", {
318
318
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-12 pt-3")
319
319
  }, (licensePlate || model) && /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
320
+ key: "single-order-vehicle-data",
320
321
  isFilter: true
321
322
  }), /*#__PURE__*/_react.default.createElement(_InternalSingleOrderCart.default, {
322
323
  resetOrderSession: resetOrderSession,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.172",
3
+ "version": "0.0.173",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",