thm-p3-configurator 0.0.154 → 0.0.156

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.
@@ -99,6 +99,7 @@ const useCreateSingleOrderMutation = () => {
99
99
  model,
100
100
  cart,
101
101
  customer,
102
+ channel,
102
103
  formula,
103
104
  branchId,
104
105
  vehicle,
@@ -110,6 +111,7 @@ const useCreateSingleOrderMutation = () => {
110
111
  model,
111
112
  cart,
112
113
  customer,
114
+ channel,
113
115
  formula,
114
116
  branchId,
115
117
  vehicle,
@@ -4,10 +4,11 @@ require("core-js/modules/es.promise.js");
4
4
  require("core-js/modules/es.weak-map.js");
5
5
  require("core-js/modules/esnext.iterator.constructor.js");
6
6
  require("core-js/modules/esnext.iterator.filter.js");
7
+ require("core-js/modules/esnext.iterator.find.js");
7
8
  require("core-js/modules/esnext.iterator.for-each.js");
9
+ require("core-js/modules/esnext.iterator.map.js");
8
10
  require("core-js/modules/web.dom-collections.iterator.js");
9
11
  require("core-js/modules/es.weak-map.js");
10
- require("core-js/modules/esnext.iterator.constructor.js");
11
12
  require("core-js/modules/esnext.iterator.filter.js");
12
13
  require("core-js/modules/esnext.iterator.for-each.js");
13
14
  Object.defineProperty(exports, "__esModule", {
@@ -15,6 +16,9 @@ Object.defineProperty(exports, "__esModule", {
15
16
  });
16
17
  exports.default = void 0;
17
18
  require("core-js/modules/es.promise.js");
19
+ require("core-js/modules/esnext.iterator.constructor.js");
20
+ require("core-js/modules/esnext.iterator.find.js");
21
+ require("core-js/modules/esnext.iterator.map.js");
18
22
  require("core-js/modules/web.dom-collections.iterator.js");
19
23
  var _react = _interopRequireWildcard(require("react"));
20
24
  var _yup = require("yup");
@@ -26,6 +30,7 @@ var _LocalStorageWorker = require("../../__services__/LocalStorageWorker");
26
30
  var _LinkButton = _interopRequireDefault(require("../Buttons/LinkButton"));
27
31
  var _CardWide = _interopRequireDefault(require("../Cards/CardWide"));
28
32
  var _DatePickerInput = _interopRequireDefault(require("../Form/DatePickerInput"));
33
+ var _DropdownInput = _interopRequireDefault(require("../Form/DropdownInput"));
29
34
  var _RadioButtons = _interopRequireDefault(require("../Form/RadioButtons"));
30
35
  var _TextAreaInput = _interopRequireDefault(require("../Form/TextAreaInput"));
31
36
  var _TextInput = _interopRequireDefault(require("../Form/TextInput"));
@@ -115,7 +120,9 @@ const customerDetailsFormSchema = (0, _yup.object)({
115
120
  city: (0, _yup.string)().nullable(),
116
121
  date: (0, _yup.string)().nullable(),
117
122
  time: (0, _yup.string)().nullable(),
118
- internalNote: (0, _yup.string)().nullable()
123
+ internalNote: (0, _yup.string)().nullable(),
124
+ channelType: (0, _yup.string)().required('Kanaal is verplicht'),
125
+ channelId: (0, _yup.string)().required('Kanaal is verplicht')
119
126
  });
120
127
  const InternalCustomerDetailsForm = (_ref, ref) => {
121
128
  var _branchTypes$byId$aut, _authSession$branch;
@@ -144,6 +151,14 @@ const InternalCustomerDetailsForm = (_ref, ref) => {
144
151
  marketingChannels,
145
152
  isLoadingMarketingChannels
146
153
  } = (0, _queries.useMarketingChannels)(branchType);
154
+ const initialChannel = (0, _react.useMemo)(() => {
155
+ if (!(channel !== null && channel !== void 0 && channel.channelId) || !(marketingChannels !== null && marketingChannels !== void 0 && marketingChannels.length)) return null;
156
+ const selectedChannel = marketingChannels === null || marketingChannels === void 0 ? void 0 : marketingChannels.find(marketingC => (marketingC === null || marketingC === void 0 ? void 0 : marketingC.entityId) === (channel === null || channel === void 0 ? void 0 : channel.channelId));
157
+ return selectedChannel ? {
158
+ label: selectedChannel === null || selectedChannel === void 0 ? void 0 : selectedChannel.title,
159
+ value: selectedChannel
160
+ } : null;
161
+ }, [channel, marketingChannels]);
147
162
  const handleAutofillButtonClicked = () => {
148
163
  dispatch({
149
164
  type: _OrderSessionContext.orderSessionActions.SET_CUSTOMER_LAST_NAME,
@@ -222,6 +237,37 @@ const InternalCustomerDetailsForm = (_ref, ref) => {
222
237
  label: 'Vestiginggegevens invullen?',
223
238
  onClick: handleAutofillButtonClicked,
224
239
  isDisabled: !branchById
240
+ })), /*#__PURE__*/_react.default.createElement("div", {
241
+ className: (0, _helpers__.withStyle)('col-12 mb-2')
242
+ }, /*#__PURE__*/_react.default.createElement(_DropdownInput.default, {
243
+ options: marketingChannels === null || marketingChannels === void 0 ? void 0 : marketingChannels.map(channel => ({
244
+ label: channel === null || channel === void 0 ? void 0 : channel.title,
245
+ value: channel
246
+ })),
247
+ name: "channel",
248
+ label: "Kanaal:",
249
+ isRequired: true,
250
+ isLoading: isLoadingMarketingChannels,
251
+ noOptionsMessage: "Geen opties beschikbaar",
252
+ placeholder: "Maak een keuze",
253
+ errorMessage: (errors === null || errors === void 0 ? void 0 : errors['channelType']) || (errors === null || errors === void 0 ? void 0 : errors['channelId']),
254
+ initialValue: initialChannel,
255
+ onChange: _ref2 => {
256
+ var _value$kanaalType;
257
+ let {
258
+ label,
259
+ value
260
+ } = _ref2;
261
+ return dispatch({
262
+ type: _OrderSessionContext.orderSessionActions.SET_MARKETING_CHANNEL,
263
+ payload: {
264
+ channel: {
265
+ channelType: value === null || value === void 0 || (_value$kanaalType = value.kanaalType) === null || _value$kanaalType === void 0 || (_value$kanaalType = _value$kanaalType[0]) === null || _value$kanaalType === void 0 ? void 0 : _value$kanaalType.entityId,
266
+ channelId: value === null || value === void 0 ? void 0 : value.entityId
267
+ }
268
+ }
269
+ });
270
+ }
225
271
  })), /*#__PURE__*/_react.default.createElement(_RadioButtons.default, {
226
272
  name: "singleOrderOwnershipType",
227
273
  label: "Type:",
@@ -62,7 +62,7 @@ function _interopRequireWildcard(e, r) {
62
62
  return n.default = e, t && t.set(e, n), n;
63
63
  }
64
64
  const ProductsOverview = () => {
65
- var _products$Trekhaak, _products$Kabelset, _products$Combiset;
65
+ var _products$Trekhaak2, _products$Kabelset, _products$Combiset;
66
66
  const isProductsInitialLoad = (0, _react.useRef)(true);
67
67
  const formula = (0, _FormulaContext.useFormula)();
68
68
  const isTmg = (0, _useIsTmg.useIsTmg)();
@@ -115,11 +115,36 @@ const ProductsOverview = () => {
115
115
  priceCalculationDate,
116
116
  skipFilters
117
117
  });
118
+ (0, _react.useEffect)(() => {
119
+ var _products$Trekhaak;
120
+ // Only run this if we have products loaded and no towbar is currently selected
121
+ if (!isLoadingProducts && (products === null || products === void 0 || (_products$Trekhaak = products.Trekhaak) === null || _products$Trekhaak === void 0 ? void 0 : _products$Trekhaak.length) === 1 && !selectedTowbar) {
122
+ var _products$PRODUCT_CAT;
123
+ const towbarId = products.Trekhaak[0].articleNumber;
124
+ dispatch({
125
+ type: _OrderSessionContext.orderSessionActions.SET_SELECTED_TOWBAR,
126
+ payload: {
127
+ towbarId
128
+ }
129
+ });
130
+
131
+ // Auto-select kabelset if there's exactly one kabelset available (reusing existing logic)
132
+ if (!selectedCableset && ((_products$PRODUCT_CAT = products[_constants__.PRODUCT_CATEGORIES.CABLESET]) === null || _products$PRODUCT_CAT === void 0 ? void 0 : _products$PRODUCT_CAT.length) === 1) {
133
+ const kabelsetId = products[_constants__.PRODUCT_CATEGORIES.CABLESET][0].articleNumber;
134
+ dispatch({
135
+ type: _OrderSessionContext.orderSessionActions.SET_SELECTED_CABLESET,
136
+ payload: {
137
+ cabelsetId: kabelsetId
138
+ }
139
+ });
140
+ }
141
+ }
142
+ }, [isLoadingProducts, products, selectedTowbar, selectedCableset, dispatch]);
118
143
  if (isLoadingProducts && isProductsInitialLoad.current === true) {
119
144
  isProductsInitialLoad.current = false;
120
145
  return /*#__PURE__*/_react.default.createElement(_FullPageSpinner.default, null);
121
146
  }
122
- if (isProductsError || !isLoadingProducts && (!(products !== null && products !== void 0 && (_products$Trekhaak = products.Trekhaak) !== null && _products$Trekhaak !== void 0 && _products$Trekhaak.length) || !(products !== null && products !== void 0 && (_products$Kabelset = products.Kabelset) !== null && _products$Kabelset !== void 0 && _products$Kabelset.length)) && !(products !== null && products !== void 0 && (_products$Combiset = products.Combiset) !== null && _products$Combiset !== void 0 && _products$Combiset.length)) {
147
+ if (isProductsError || !isLoadingProducts && (!(products !== null && products !== void 0 && (_products$Trekhaak2 = products.Trekhaak) !== null && _products$Trekhaak2 !== void 0 && _products$Trekhaak2.length) || !(products !== null && products !== void 0 && (_products$Kabelset = products.Kabelset) !== null && _products$Kabelset !== void 0 && _products$Kabelset.length)) && !(products !== null && products !== void 0 && (_products$Combiset = products.Combiset) !== null && _products$Combiset !== void 0 && _products$Combiset.length)) {
123
148
  return /*#__PURE__*/_react.default.createElement(_reactRouter.Redirect, {
124
149
  to: "/configurator/geen-producten"
125
150
  });
@@ -151,9 +176,9 @@ const ProductsOverview = () => {
151
176
 
152
177
  // Auto-select kabelset if towbar is selected and no kabelset is currently selected
153
178
  if (isSelected && !selectedCableset) {
154
- var _products$PRODUCT_CAT;
179
+ var _products$PRODUCT_CAT2;
155
180
  // Check if there's exactly one kabelset available
156
- if (((_products$PRODUCT_CAT = products[_constants__.PRODUCT_CATEGORIES.CABLESET]) === null || _products$PRODUCT_CAT === void 0 ? void 0 : _products$PRODUCT_CAT.length) === 1) {
181
+ if (((_products$PRODUCT_CAT2 = products[_constants__.PRODUCT_CATEGORIES.CABLESET]) === null || _products$PRODUCT_CAT2 === void 0 ? void 0 : _products$PRODUCT_CAT2.length) === 1) {
157
182
  const kabelsetId = products[_constants__.PRODUCT_CATEGORIES.CABLESET][0].articleNumber;
158
183
  dispatch({
159
184
  type: _OrderSessionContext.orderSessionActions.SET_SELECTED_CABLESET,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.154",
3
+ "version": "0.0.156",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",