thm-p3-configurator 0.0.278 → 0.0.279

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.
@@ -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 _matchingDossier$klan, _matchingDossier$klan2;
38
+ var _matchingDossier6, _matchingDossier7, _matchingDossier8;
34
39
  const hasMatchingDossier = response.data.results.length > 0;
35
- const matchingDossier = hasMatchingDossier ? response.data.results[0] : null;
36
- const matchingCustomerId = (matchingDossier === null || matchingDossier === void 0 || (_matchingDossier$klan = matchingDossier.klant) === null || _matchingDossier$klan === void 0 ? void 0 : _matchingDossier$klan.entityId) || (matchingDossier === null || matchingDossier === void 0 || (_matchingDossier$klan2 = matchingDossier.klant) === null || _matchingDossier$klan2 === void 0 ? void 0 : _matchingDossier$klan2.id) || (matchingDossier === null || matchingDossier === void 0 ? void 0 : matchingDossier.klant) || null;
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 (hasMatchingDossier) {
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
- const emailCheckResult = await checkEmailExists(payload.customer.email);
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
- const emailCheckResult = await checkEmailExists(payload.customer.email);
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.278",
3
+ "version": "0.0.279",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",