thm-p3-configurator 0.0.278 → 0.0.281
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/dist/src/shared/App.js +1 -1
- package/dist/src/shared/__components__/Form/DatePickerInput.js +5 -2
- package/dist/src/shared/__containers__/internal/InternalPriceCalculationSelector.js +5 -1
- package/dist/src/shared/__hooks__/useCheckEmailExists.js +22 -5
- package/dist/src/shared/__pages__/internal/InternalAppointmentPage.js +8 -3
- package/dist/src/shared/__pages__/internal/InternalQuotationPage.js +8 -3
- package/package.json +1 -1
package/dist/src/shared/App.js
CHANGED
|
@@ -75,6 +75,6 @@ const App = () => {
|
|
|
75
75
|
defaultCountry: APP_CONFIG.country
|
|
76
76
|
}, /*#__PURE__*/_react.default.createElement(_OrderSessionContext.OrderSessionController, null, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
|
|
77
77
|
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), /*#__PURE__*/_react.default.createElement(
|
|
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
79
|
};
|
|
80
80
|
var _default = exports.default = App;
|
|
@@ -52,7 +52,9 @@ const DatePickerInput = _ref => {
|
|
|
52
52
|
name,
|
|
53
53
|
isRequired,
|
|
54
54
|
label,
|
|
55
|
-
errorMessage
|
|
55
|
+
errorMessage,
|
|
56
|
+
minDate = new Date(),
|
|
57
|
+
maxDate
|
|
56
58
|
} = _ref;
|
|
57
59
|
const [value, setValue] = (0, _react.useState)();
|
|
58
60
|
const [isTouched, setIsTouched] = (0, _react.useState)(false);
|
|
@@ -86,7 +88,8 @@ const DatePickerInput = _ref => {
|
|
|
86
88
|
e.preventDefault();
|
|
87
89
|
},
|
|
88
90
|
wrapperClassName: (0, _helpers__.withStyle)('react-datepicker-wrapper'),
|
|
89
|
-
minDate:
|
|
91
|
+
minDate: minDate,
|
|
92
|
+
maxDate: maxDate,
|
|
90
93
|
locale: "nl",
|
|
91
94
|
onFocus: handleFocus,
|
|
92
95
|
onChange: date => handleChange(date),
|
|
@@ -41,7 +41,11 @@ const InternalPriceCalculationSelector = () => {
|
|
|
41
41
|
name: 'Prijsberekeningsdatum',
|
|
42
42
|
isRequired: true,
|
|
43
43
|
label: "Prijsberekeningsdatum:",
|
|
44
|
-
initialValue: priceCalculationDate ? new Date(priceCalculationDate) : null
|
|
44
|
+
initialValue: priceCalculationDate ? new Date(priceCalculationDate) : null
|
|
45
|
+
// Allow any date (past and future) for price calculation.
|
|
46
|
+
,
|
|
47
|
+
|
|
48
|
+
minDate: null,
|
|
45
49
|
isStrict: false
|
|
46
50
|
});
|
|
47
51
|
};
|
|
@@ -14,7 +14,12 @@ var _react = require("react");
|
|
|
14
14
|
var _authenticatedProxyApi = require("../__api__/authenticatedProxyApi");
|
|
15
15
|
const useCheckEmailExists = () => {
|
|
16
16
|
const [isChecking, setIsChecking] = (0, _react.useState)(false);
|
|
17
|
-
const checkEmailExists = async email
|
|
17
|
+
const checkEmailExists = async function checkEmailExists(email) {
|
|
18
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
19
|
+
const {
|
|
20
|
+
excludeDossierId,
|
|
21
|
+
excludeCustomerId
|
|
22
|
+
} = options;
|
|
18
23
|
if (!email || !email.trim()) {
|
|
19
24
|
return {
|
|
20
25
|
status: 'error',
|
|
@@ -30,12 +35,24 @@ const useCheckEmailExists = () => {
|
|
|
30
35
|
limit: 1
|
|
31
36
|
});
|
|
32
37
|
if (response.status === 200 && (_response$data = response.data) !== null && _response$data !== void 0 && _response$data.results) {
|
|
33
|
-
var
|
|
38
|
+
var _matchingDossier6, _matchingDossier7, _matchingDossier8;
|
|
34
39
|
const hasMatchingDossier = response.data.results.length > 0;
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
let matchingDossier = hasMatchingDossier ? response.data.results[0] : null;
|
|
41
|
+
|
|
42
|
+
// Filter out self-matches if exclusion options are provided
|
|
43
|
+
if (matchingDossier) {
|
|
44
|
+
var _matchingDossier, _matchingDossier2, _matchingDossier3, _matchingDossier4, _matchingDossier5;
|
|
45
|
+
const matchingDossierId = ((_matchingDossier = matchingDossier) === null || _matchingDossier === void 0 ? void 0 : _matchingDossier.entityId) || ((_matchingDossier2 = matchingDossier) === null || _matchingDossier2 === void 0 ? void 0 : _matchingDossier2.dossierId) || null;
|
|
46
|
+
const matchingCustomerId = ((_matchingDossier3 = matchingDossier) === null || _matchingDossier3 === void 0 || (_matchingDossier3 = _matchingDossier3.klant) === null || _matchingDossier3 === void 0 ? void 0 : _matchingDossier3.entityId) || ((_matchingDossier4 = matchingDossier) === null || _matchingDossier4 === void 0 || (_matchingDossier4 = _matchingDossier4.klant) === null || _matchingDossier4 === void 0 ? void 0 : _matchingDossier4.id) || ((_matchingDossier5 = matchingDossier) === null || _matchingDossier5 === void 0 ? void 0 : _matchingDossier5.klant) || null;
|
|
47
|
+
|
|
48
|
+
// Skip if this is a self-match
|
|
49
|
+
if (excludeDossierId && matchingDossierId === excludeDossierId || excludeCustomerId && matchingCustomerId === excludeCustomerId) {
|
|
50
|
+
matchingDossier = null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const matchingCustomerId = matchingDossier ? ((_matchingDossier6 = matchingDossier) === null || _matchingDossier6 === void 0 || (_matchingDossier6 = _matchingDossier6.klant) === null || _matchingDossier6 === void 0 ? void 0 : _matchingDossier6.entityId) || ((_matchingDossier7 = matchingDossier) === null || _matchingDossier7 === void 0 || (_matchingDossier7 = _matchingDossier7.klant) === null || _matchingDossier7 === void 0 ? void 0 : _matchingDossier7.id) || ((_matchingDossier8 = matchingDossier) === null || _matchingDossier8 === void 0 ? void 0 : _matchingDossier8.klant) || null : null;
|
|
37
54
|
setIsChecking(false);
|
|
38
|
-
if (
|
|
55
|
+
if (matchingDossier) {
|
|
39
56
|
return {
|
|
40
57
|
status: 'success',
|
|
41
58
|
emailExists: true,
|
|
@@ -195,12 +195,17 @@ const InternalAppointmentPage = () => {
|
|
|
195
195
|
}
|
|
196
196
|
};
|
|
197
197
|
const handleSubmit = async payload => {
|
|
198
|
-
var _dossierById$klant, _payload$customer;
|
|
199
|
-
const originalEmail = (dossierById === null || dossierById === void 0 || (_dossierById$klant = dossierById.klant) === null || _dossierById$klant === void 0 ? void 0 : _dossierById$klant.email2) || '';
|
|
198
|
+
var _dossierById$klant, _dossierById$klant2, _payload$customer;
|
|
199
|
+
const originalEmail = (dossierById === null || dossierById === void 0 ? void 0 : dossierById.email2) || (dossierById === null || dossierById === void 0 ? void 0 : dossierById.email1) || (dossierById === null || dossierById === void 0 || (_dossierById$klant = dossierById.klant) === null || _dossierById$klant === void 0 ? void 0 : _dossierById$klant.email2) || (dossierById === null || dossierById === void 0 || (_dossierById$klant2 = dossierById.klant) === null || _dossierById$klant2 === void 0 ? void 0 : _dossierById$klant2.email1) || '';
|
|
200
200
|
const normalizedOriginalEmail = originalEmail.trim().toLowerCase();
|
|
201
201
|
const normalizedCurrentEmail = (((_payload$customer = payload.customer) === null || _payload$customer === void 0 ? void 0 : _payload$customer.email) || '').trim().toLowerCase();
|
|
202
202
|
if (normalizedCurrentEmail && normalizedCurrentEmail !== normalizedOriginalEmail) {
|
|
203
|
-
|
|
203
|
+
var _dossierById$klant3, _dossierById$klant4;
|
|
204
|
+
const currentCustomerId = (dossierById === null || dossierById === void 0 || (_dossierById$klant3 = dossierById.klant) === null || _dossierById$klant3 === void 0 ? void 0 : _dossierById$klant3.entityId) || (dossierById === null || dossierById === void 0 || (_dossierById$klant4 = dossierById.klant) === null || _dossierById$klant4 === void 0 ? void 0 : _dossierById$klant4.id) || (dossierById === null || dossierById === void 0 ? void 0 : dossierById.klant) || null;
|
|
205
|
+
const emailCheckResult = await checkEmailExists(payload.customer.email, {
|
|
206
|
+
excludeDossierId: existingDossierId,
|
|
207
|
+
excludeCustomerId: currentCustomerId
|
|
208
|
+
});
|
|
204
209
|
if (emailCheckResult.status === 'success' && emailCheckResult.emailExists) {
|
|
205
210
|
setPendingPayload(payload);
|
|
206
211
|
setEmailConflictData(emailCheckResult);
|
|
@@ -162,12 +162,17 @@ const InternalQuotationPage = () => {
|
|
|
162
162
|
}
|
|
163
163
|
};
|
|
164
164
|
const handleSubmit = async payload => {
|
|
165
|
-
var _dossierById$klant, _payload$customer;
|
|
166
|
-
const originalEmail = (dossierById === null || dossierById === void 0 || (_dossierById$klant = dossierById.klant) === null || _dossierById$klant === void 0 ? void 0 : _dossierById$klant.email2) || '';
|
|
165
|
+
var _dossierById$klant, _dossierById$klant2, _payload$customer;
|
|
166
|
+
const originalEmail = (dossierById === null || dossierById === void 0 ? void 0 : dossierById.email2) || (dossierById === null || dossierById === void 0 ? void 0 : dossierById.email1) || (dossierById === null || dossierById === void 0 || (_dossierById$klant = dossierById.klant) === null || _dossierById$klant === void 0 ? void 0 : _dossierById$klant.email2) || (dossierById === null || dossierById === void 0 || (_dossierById$klant2 = dossierById.klant) === null || _dossierById$klant2 === void 0 ? void 0 : _dossierById$klant2.email1) || '';
|
|
167
167
|
const normalizedOriginalEmail = originalEmail.trim().toLowerCase();
|
|
168
168
|
const normalizedCurrentEmail = (((_payload$customer = payload.customer) === null || _payload$customer === void 0 ? void 0 : _payload$customer.email) || '').trim().toLowerCase();
|
|
169
169
|
if (normalizedCurrentEmail && normalizedCurrentEmail !== normalizedOriginalEmail) {
|
|
170
|
-
|
|
170
|
+
var _dossierById$klant3, _dossierById$klant4;
|
|
171
|
+
const currentCustomerId = (dossierById === null || dossierById === void 0 || (_dossierById$klant3 = dossierById.klant) === null || _dossierById$klant3 === void 0 ? void 0 : _dossierById$klant3.entityId) || (dossierById === null || dossierById === void 0 || (_dossierById$klant4 = dossierById.klant) === null || _dossierById$klant4 === void 0 ? void 0 : _dossierById$klant4.id) || (dossierById === null || dossierById === void 0 ? void 0 : dossierById.klant) || null;
|
|
172
|
+
const emailCheckResult = await checkEmailExists(payload.customer.email, {
|
|
173
|
+
excludeDossierId: existingDossierId,
|
|
174
|
+
excludeCustomerId: currentCustomerId
|
|
175
|
+
});
|
|
171
176
|
if (emailCheckResult.status === 'success' && emailCheckResult.emailExists) {
|
|
172
177
|
setPendingPayload(payload);
|
|
173
178
|
setEmailConflictData(emailCheckResult);
|