ordering-ui-admin-external 1.43.34 → 1.43.35

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.
@@ -55,7 +55,8 @@ var UserAddFormUI = function UserAddFormUI(props) {
55
55
  isTourOpen = props.isTourOpen,
56
56
  driversGroupsState = props.driversGroupsState,
57
57
  selectedDriverGroupIds = props.selectedDriverGroupIds,
58
- handleDriverGroupClick = props.handleDriverGroupClick;
58
+ handleDriverGroupClick = props.handleDriverGroupClick,
59
+ setCellphoneStartZero = props.setCellphoneStartZero;
59
60
  var formMethods = (0, _reactHookForm.useForm)();
60
61
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
61
62
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -188,7 +189,7 @@ var UserAddFormUI = function UserAddFormUI(props) {
188
189
  open: false
189
190
  });
190
191
  };
191
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
192
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
192
193
  setUserPhoneNumber(number);
193
194
  var phoneNumberParser = null;
194
195
  var phoneNumber = {
@@ -216,6 +217,7 @@ var UserAddFormUI = function UserAddFormUI(props) {
216
217
  }
217
218
  };
218
219
  }
220
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
219
221
  handleChangeInput(phoneNumber, true);
220
222
  };
221
223
  var handleChangeInputEmail = function handleChangeInputEmail(e) {
@@ -41,7 +41,8 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
41
41
  userData = props.userData,
42
42
  isCustomerMode = props.isCustomerMode,
43
43
  isDriversPage = props.isDriversPage,
44
- handleChangeSwtich = props.handleChangeSwtich;
44
+ handleChangeSwtich = props.handleChangeSwtich,
45
+ setCellphoneStartZero = props.setCellphoneStartZero;
45
46
  var formMethods = (0, _reactHookForm.useForm)();
46
47
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
47
48
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -159,7 +160,7 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
159
160
  handleButtonUpdateClick(changes);
160
161
  }
161
162
  };
162
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
163
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
163
164
  setUserPhoneNumber(number);
164
165
  var phoneNumberParser = null;
165
166
  var phoneNumber = {
@@ -187,6 +188,7 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
187
188
  }
188
189
  };
189
190
  }
191
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
190
192
  handleChangeInput(phoneNumber, true);
191
193
  };
192
194
  var handleChangeInputEmail = function handleChangeInputEmail(e) {
@@ -64,7 +64,8 @@ var LoginFormUI = function LoginFormUI(props) {
64
64
  setOtpState = props.setOtpState,
65
65
  useLoginByEmail = props.useLoginByEmail,
66
66
  handleChangeCredentials = props.handleChangeCredentials,
67
- credentials = props.credentials;
67
+ credentials = props.credentials,
68
+ setCellphoneStartZero = props.setCellphoneStartZero;
68
69
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
69
70
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
70
71
  t = _useLanguage2[1];
@@ -160,7 +161,7 @@ var LoginFormUI = function LoginFormUI(props) {
160
161
  }
161
162
  }
162
163
  };
163
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
164
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
164
165
  var phoneNumberParser = null;
165
166
  var values = {
166
167
  country_phone_code: '',
@@ -175,6 +176,7 @@ var LoginFormUI = function LoginFormUI(props) {
175
176
  cellphone: phoneNumberParser.nationalNumber
176
177
  };
177
178
  }
179
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
178
180
  handleChangeCredentials(values);
179
181
  };
180
182
  (0, _react.useEffect)(function () {
@@ -50,7 +50,8 @@ var ConfirmAdminUI = function ConfirmAdminUI(props) {
50
50
  generateOtpCode = props.generateOtpCode,
51
51
  checkCodeState = props.checkCodeState,
52
52
  handleChangeInput = props.handleChangeInput,
53
- handleChangeCredentials = props.handleChangeCredentials;
53
+ handleChangeCredentials = props.handleChangeCredentials,
54
+ setCellphoneStartZero = props.setCellphoneStartZero;
54
55
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
55
56
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
56
57
  t = _useLanguage2[1];
@@ -100,7 +101,7 @@ var ConfirmAdminUI = function ConfirmAdminUI(props) {
100
101
  });
101
102
  setOtpState('');
102
103
  };
103
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
104
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
104
105
  setUserPhoneNumber(number);
105
106
  var phoneNumberParser = null;
106
107
  var values = {
@@ -116,6 +117,7 @@ var ConfirmAdminUI = function ConfirmAdminUI(props) {
116
117
  cellphone: phoneNumberParser.nationalNumber
117
118
  };
118
119
  }
120
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
119
121
  handleChangeCredentials(values);
120
122
  };
121
123
  var handleSendOtp = function handleSendOtp() {
@@ -38,14 +38,51 @@ var InputPhoneNumber = exports.InputPhoneNumber = function InputPhoneNumber(prop
38
38
  var _useConfig = (0, _orderingComponentsAdminExternal.useConfig)(),
39
39
  _useConfig2 = _slicedToArray(_useConfig, 1),
40
40
  configs = _useConfig2[0].configs;
41
+ var phoneRef = (0, _react.useRef)(null);
42
+ var codesStartsWithZero = ['44'];
41
43
  var isValidPhoneNumber = function isValidPhoneNumber(number) {
42
- var _configs$validation_p, _configs$validation_p2;
44
+ var _configs$validation_p, _configs$validation_p2, _numberParser$isPossi, _numberParser$isValid;
43
45
  if (!number) return;
44
46
  if (!parseInt((_configs$validation_p = configs === null || configs === void 0 || (_configs$validation_p2 = configs.validation_phone_number_lib) === null || _configs$validation_p2 === void 0 ? void 0 : _configs$validation_p2.value) !== null && _configs$validation_p !== void 0 ? _configs$validation_p : 1, 10)) {
45
47
  return true;
46
48
  }
47
49
  var numberParser = (0, _libphonenumberJs.default)(number);
48
- return numberParser === null || numberParser === void 0 ? void 0 : numberParser.isValid();
50
+ var enableIspossibly = false;
51
+ if (codesStartsWithZero.includes(numberParser === null || numberParser === void 0 ? void 0 : numberParser.countryCallingCode)) {
52
+ var inputNumber = returnRawNumber(number);
53
+ var validationsForUK = ['01', '02', '07', '0800', '0808', '0845', '0870', '0871'];
54
+ var result = validationsForUK.some(function (areaCode) {
55
+ var _inputNumber$number;
56
+ return inputNumber === null || inputNumber === void 0 || (_inputNumber$number = inputNumber.number) === null || _inputNumber$number === void 0 ? void 0 : _inputNumber$number.startsWith(areaCode);
57
+ });
58
+ enableIspossibly = result;
59
+ }
60
+ return enableIspossibly ? numberParser === null || numberParser === void 0 || (_numberParser$isPossi = numberParser.isPossible) === null || _numberParser$isPossi === void 0 ? void 0 : _numberParser$isPossi.call(numberParser) : numberParser === null || numberParser === void 0 || (_numberParser$isValid = numberParser.isValid) === null || _numberParser$isValid === void 0 ? void 0 : _numberParser$isValid.call(numberParser);
61
+ };
62
+ var returnRawNumber = function returnRawNumber(number) {
63
+ var _configs$validation_p3, _configs$validation_p4, _phoneRef$current;
64
+ if (!number) return null;
65
+ if (!parseInt((_configs$validation_p3 = configs === null || configs === void 0 || (_configs$validation_p4 = configs.validation_phone_number_lib) === null || _configs$validation_p4 === void 0 ? void 0 : _configs$validation_p4.value) !== null && _configs$validation_p3 !== void 0 ? _configs$validation_p3 : 1, 10)) {
66
+ return null;
67
+ }
68
+ var numberParser = (0, _libphonenumberJs.default)(number);
69
+ var validations = ['0', '+'];
70
+ if (validations.includes(phoneRef === null || phoneRef === void 0 || (_phoneRef$current = phoneRef.current) === null || _phoneRef$current === void 0 ? void 0 : _phoneRef$current.value[0]) && codesStartsWithZero.includes(numberParser === null || numberParser === void 0 ? void 0 : numberParser.countryCallingCode)) {
71
+ var _phoneRef$current2, _numberInput$split;
72
+ var numberInput = phoneRef === null || phoneRef === void 0 || (_phoneRef$current2 = phoneRef.current) === null || _phoneRef$current2 === void 0 ? void 0 : _phoneRef$current2.value.replace('-', '');
73
+ var numberRaw = '';
74
+ numberInput === null || numberInput === void 0 || (_numberInput$split = numberInput.split(' ')) === null || _numberInput$split === void 0 || (_numberInput$split = _numberInput$split.filter(function (_splited, i) {
75
+ return i > 0 || i === 0 && _splited[0] === '0';
76
+ })) === null || _numberInput$split === void 0 || _numberInput$split.map(function (splited) {
77
+ numberRaw = "".concat(numberRaw).concat(splited);
78
+ return numberRaw;
79
+ });
80
+ return {
81
+ number: numberRaw,
82
+ countryCallingCode: numberParser !== null && numberParser !== void 0 && numberParser.countryCallingCode ? "+".concat(numberParser === null || numberParser === void 0 ? void 0 : numberParser.countryCallingCode) : null
83
+ };
84
+ }
85
+ return number;
49
86
  };
50
87
  (0, _react.useEffect)(function () {
51
88
  if (value) {
@@ -65,13 +102,15 @@ var InputPhoneNumber = exports.InputPhoneNumber = function InputPhoneNumber(prop
65
102
  key: i
66
103
  }, props));
67
104
  }), /*#__PURE__*/_react.default.createElement(_reactPhoneNumberInput.default, {
105
+ ref: phoneRef,
68
106
  disabled: disabled,
69
107
  placeholder: t('PHONE_NUMBER', 'Phone number'),
70
108
  defaultCountry: (0, _utils.findExitingCode)(configs === null || configs === void 0 || (_configs$default_coun = configs.default_country_code) === null || _configs$default_coun === void 0 || (_configs$default_coun = _configs$default_coun.value) === null || _configs$default_coun === void 0 ? void 0 : _configs$default_coun.toUpperCase()),
71
109
  value: value,
72
- displayInitialValueAsLocalNumber: true,
110
+ displayInitialValueAsLocalNumber: !isUser,
111
+ international: isUser,
73
112
  onChange: function onChange(val) {
74
- return setValue && setValue(val, isValidPhoneNumber(val));
113
+ return setValue && setValue(val, isValidPhoneNumber(val), returnRawNumber(val));
75
114
  }
76
115
  }), value && !isValidPhoneNumber(value) && !disabled && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (auth && (user === null || user === void 0 ? void 0 : user.country_phone_code) || !auth || value.includes('+')) && /*#__PURE__*/_react.default.createElement(_styles.ErrorMsg, null, t('INVALID_ERROR_PHONE_NUMBER', 'The Phone Number field is invalid')), auth && !(user !== null && user !== void 0 && user.country_phone_code) && !value.includes('+') && /*#__PURE__*/_react.default.createElement(_styles.ErrorMsg, null, t('INVALID_ERROR_COUNTRY_CODE_PHONE_NUMBER', 'The country code of the phone number is invalid'))), (_props$afterComponent = props.afterComponents) === null || _props$afterComponent === void 0 ? void 0 : _props$afterComponent.map(function (AfterComponent, i) {
77
116
  return /*#__PURE__*/_react.default.createElement(AfterComponent, _extends({
@@ -50,7 +50,8 @@ var ProfessionalAddFormUI = function ProfessionalAddFormUI(props) {
50
50
  handleChangeSwtich = props.handleChangeSwtich,
51
51
  onClose = props.onClose,
52
52
  isService = props.isService,
53
- occupations = props.occupations;
53
+ occupations = props.occupations,
54
+ setCellphoneStartZero = props.setCellphoneStartZero;
54
55
  var formMethods = (0, _reactHookForm.useForm)();
55
56
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
56
57
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -121,7 +122,7 @@ var ProfessionalAddFormUI = function ProfessionalAddFormUI(props) {
121
122
  handlechangeImage(files[0]);
122
123
  }
123
124
  };
124
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
125
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
125
126
  setUserPhoneNumber(number);
126
127
  var phoneNumberParser = null;
127
128
  var phoneNumber = {
@@ -149,6 +150,7 @@ var ProfessionalAddFormUI = function ProfessionalAddFormUI(props) {
149
150
  }
150
151
  };
151
152
  }
153
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
152
154
  handleChangeInput(phoneNumber, true);
153
155
  };
154
156
  var handleChangeInputEmail = function handleChangeInputEmail(e) {
@@ -51,7 +51,8 @@ var UserAddFormUI = function UserAddFormUI(props) {
51
51
  handleChangeSwtich = props.handleChangeSwtich,
52
52
  defaultPhoneNumber = props.defaultPhoneNumber,
53
53
  isFromCustomOrder = props.isFromCustomOrder,
54
- hideUserTypeSelector = props.hideUserTypeSelector;
54
+ hideUserTypeSelector = props.hideUserTypeSelector,
55
+ setCellphoneStartZero = props.setCellphoneStartZero;
55
56
  var formMethods = (0, _reactHookForm.useForm)();
56
57
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
57
58
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -153,7 +154,7 @@ var UserAddFormUI = function UserAddFormUI(props) {
153
154
  open: false
154
155
  });
155
156
  };
156
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
157
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
157
158
  setUserPhoneNumber(number);
158
159
  var phoneNumberParser = null;
159
160
  var phoneNumber = {
@@ -187,6 +188,7 @@ var UserAddFormUI = function UserAddFormUI(props) {
187
188
  }
188
189
  };
189
190
  }
191
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
190
192
  handleChangeInput(phoneNumber, true);
191
193
  };
192
194
  var handleChangeInputEmail = function handleChangeInputEmail(e) {
@@ -49,7 +49,8 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
49
49
  handleChangeUserType = props.handleChangeUserType,
50
50
  isProfessional = props.isProfessional,
51
51
  occupations = props.occupations,
52
- handleChangeOccupation = props.handleChangeOccupation;
52
+ handleChangeOccupation = props.handleChangeOccupation,
53
+ setCellphoneStartZero = props.setCellphoneStartZero;
53
54
  var formMethods = (0, _reactHookForm.useForm)();
54
55
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
55
56
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -166,7 +167,7 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
166
167
  handleButtonUpdateClick(changes);
167
168
  }
168
169
  };
169
- var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid) {
170
+ var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
170
171
  setUserPhoneNumber(number);
171
172
  var phoneNumberParser = null;
172
173
  var phoneNumber = {
@@ -200,6 +201,7 @@ var UserFormDetailsUI = exports.UserFormDetailsUI = function UserFormDetailsUI(p
200
201
  }
201
202
  };
202
203
  }
204
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber !== null && rawNumber !== void 0 && rawNumber.number && rawNumber !== null && rawNumber !== void 0 && rawNumber.countryCallingCode ? rawNumber === null || rawNumber === void 0 ? void 0 : rawNumber.number : null);
203
205
  handleChangeInput(phoneNumber, true);
204
206
  };
205
207
  var handleChangeInputEmail = function handleChangeInputEmail(e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-admin-external",
3
- "version": "1.43.34",
3
+ "version": "1.43.35",
4
4
  "description": "Ordering UI Admin Components",
5
5
  "main": "./_modules/index.js",
6
6
  "exports": {
@@ -83,7 +83,7 @@
83
83
  "lodash": "^4.17.20",
84
84
  "moment": "^2.29.1",
85
85
  "moment-range": "^4.0.2",
86
- "ordering-components-admin-external": "1.43.22",
86
+ "ordering-components-admin-external": "1.43.23",
87
87
  "polished": "^3.6.7",
88
88
  "prop-types": "^15.7.2",
89
89
  "react-big-calendar": "^1.4.2",
@@ -53,7 +53,8 @@ const UserAddFormUI = (props) => {
53
53
  isTourOpen,
54
54
  driversGroupsState,
55
55
  selectedDriverGroupIds,
56
- handleDriverGroupClick
56
+ handleDriverGroupClick,
57
+ setCellphoneStartZero
57
58
  } = props
58
59
  const formMethods = useForm()
59
60
  const [, t] = useLanguage()
@@ -150,7 +151,7 @@ const UserAddFormUI = (props) => {
150
151
  setCropState({ name: null, data: null, open: false })
151
152
  }
152
153
 
153
- const handleChangePhoneNumber = (number, isValid) => {
154
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
154
155
  setUserPhoneNumber(number)
155
156
 
156
157
  let phoneNumberParser = null
@@ -179,6 +180,7 @@ const UserAddFormUI = (props) => {
179
180
  }
180
181
  }
181
182
  }
183
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
182
184
  handleChangeInput(phoneNumber, true)
183
185
  }
184
186
 
@@ -31,7 +31,8 @@ export const UserFormDetailsUI = (props) => {
31
31
  userData,
32
32
  isCustomerMode,
33
33
  isDriversPage,
34
- handleChangeSwtich
34
+ handleChangeSwtich,
35
+ setCellphoneStartZero
35
36
  } = props
36
37
 
37
38
  const formMethods = useForm()
@@ -126,7 +127,7 @@ export const UserFormDetailsUI = (props) => {
126
127
  }
127
128
  }
128
129
 
129
- const handleChangePhoneNumber = (number, isValid) => {
130
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
130
131
  setUserPhoneNumber(number)
131
132
 
132
133
  let phoneNumberParser = null
@@ -155,6 +156,7 @@ export const UserFormDetailsUI = (props) => {
155
156
  }
156
157
  }
157
158
  }
159
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
158
160
  handleChangeInput(phoneNumber, true)
159
161
  }
160
162
 
@@ -65,7 +65,8 @@ const LoginFormUI = (props) => {
65
65
  setOtpState,
66
66
  useLoginByEmail,
67
67
  handleChangeCredentials,
68
- credentials
68
+ credentials,
69
+ setCellphoneStartZero
69
70
  } = props
70
71
  const [, t] = useLanguage()
71
72
  const [ordering] = useApi()
@@ -126,7 +127,7 @@ const LoginFormUI = (props) => {
126
127
  }
127
128
  }
128
129
 
129
- const handleChangePhoneNumber = (number, isValid) => {
130
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
130
131
  let phoneNumberParser = null
131
132
  let values = { country_phone_code: '', cellphone: '' }
132
133
 
@@ -139,6 +140,7 @@ const LoginFormUI = (props) => {
139
140
  cellphone: phoneNumberParser.nationalNumber
140
141
  }
141
142
  }
143
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
142
144
  handleChangeCredentials(values)
143
145
  }
144
146
 
@@ -42,7 +42,8 @@ const ConfirmAdminUI = (props) => {
42
42
 
43
43
  checkCodeState,
44
44
  handleChangeInput,
45
- handleChangeCredentials
45
+ handleChangeCredentials,
46
+ setCellphoneStartZero
46
47
  } = props
47
48
 
48
49
  const [, t] = useLanguage()
@@ -73,7 +74,7 @@ const ConfirmAdminUI = (props) => {
73
74
  setOtpState('')
74
75
  }
75
76
 
76
- const handleChangePhoneNumber = (number, isValid) => {
77
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
77
78
  setUserPhoneNumber(number)
78
79
  let phoneNumberParser = null
79
80
  let values = { country_phone_code: '', cellphone: '' }
@@ -87,6 +88,7 @@ const ConfirmAdminUI = (props) => {
87
88
  cellphone: phoneNumberParser.nationalNumber
88
89
  }
89
90
  }
91
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
90
92
  handleChangeCredentials(values)
91
93
  }
92
94
 
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from 'react'
1
+ import React, { useEffect, useRef } from 'react'
2
2
  import parsePhoneNumber from 'libphonenumber-js'
3
3
  import PhoneInput from 'react-phone-number-input'
4
4
  import { useLanguage, useConfig, useSession } from 'ordering-components-admin-external'
@@ -19,13 +19,48 @@ export const InputPhoneNumber = (props) => {
19
19
  const [{ auth }] = useSession()
20
20
  const [{ configs }] = useConfig()
21
21
 
22
+ const phoneRef = useRef(null)
23
+ const codesStartsWithZero = ['44']
24
+
22
25
  const isValidPhoneNumber = (number) => {
23
26
  if (!number) return
24
27
  if (!parseInt(configs?.validation_phone_number_lib?.value ?? 1, 10)) {
25
28
  return true
26
29
  }
27
30
  const numberParser = parsePhoneNumber(number)
28
- return numberParser?.isValid()
31
+ let enableIspossibly = false
32
+ if (codesStartsWithZero.includes(numberParser?.countryCallingCode)) {
33
+ const inputNumber = returnRawNumber(number)
34
+ const validationsForUK = ['01', '02', '07', '0800', '0808', '0845', '0870', '0871']
35
+ const result = validationsForUK.some(areaCode => inputNumber?.number?.startsWith(areaCode))
36
+ enableIspossibly = result
37
+ }
38
+
39
+ return enableIspossibly ? numberParser?.isPossible?.() : numberParser?.isValid?.()
40
+ }
41
+
42
+ const returnRawNumber = (number) => {
43
+ if (!number) return null
44
+ if (!parseInt(configs?.validation_phone_number_lib?.value ?? 1, 10)) {
45
+ return null
46
+ }
47
+ const numberParser = parsePhoneNumber(number)
48
+ const validations = ['0', '+']
49
+ if (validations.includes(phoneRef?.current?.value[0]) && codesStartsWithZero.includes(numberParser?.countryCallingCode)) {
50
+ const numberInput = phoneRef?.current?.value.replace('-', '')
51
+ let numberRaw = ''
52
+ numberInput?.split(' ')?.filter((_splited, i) => i > 0 || (i === 0 && _splited[0] === '0'))?.map(splited => {
53
+ numberRaw = `${numberRaw}${splited}`
54
+ return numberRaw
55
+ })
56
+
57
+ return {
58
+ number: numberRaw,
59
+ countryCallingCode: numberParser?.countryCallingCode ? `+${numberParser?.countryCallingCode}` : null
60
+ }
61
+ }
62
+
63
+ return number
29
64
  }
30
65
 
31
66
  useEffect(() => {
@@ -44,12 +79,14 @@ export const InputPhoneNumber = (props) => {
44
79
  {props.beforeComponents?.map((BeforeComponent, i) => (
45
80
  <BeforeComponent key={i} {...props} />))}
46
81
  <PhoneInput
82
+ ref={phoneRef}
47
83
  disabled={disabled}
48
84
  placeholder={t('PHONE_NUMBER', 'Phone number')}
49
85
  defaultCountry={findExitingCode(configs?.default_country_code?.value?.toUpperCase())}
50
86
  value={value}
51
- displayInitialValueAsLocalNumber
52
- onChange={(val) => setValue && setValue(val, isValidPhoneNumber(val))}
87
+ displayInitialValueAsLocalNumber={!isUser}
88
+ international={isUser}
89
+ onChange={(val) => setValue && setValue(val, isValidPhoneNumber(val), returnRawNumber(val))}
53
90
  />
54
91
  {value && !isValidPhoneNumber(value) && !disabled && (
55
92
  <>
@@ -44,7 +44,8 @@ const ProfessionalAddFormUI = (props) => {
44
44
  handleChangeSwtich,
45
45
  onClose,
46
46
  isService,
47
- occupations
47
+ occupations,
48
+ setCellphoneStartZero
48
49
  } = props
49
50
  const formMethods = useForm()
50
51
  const [, t] = useLanguage()
@@ -105,7 +106,7 @@ const ProfessionalAddFormUI = (props) => {
105
106
  }
106
107
  }
107
108
 
108
- const handleChangePhoneNumber = (number, isValid) => {
109
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
109
110
  setUserPhoneNumber(number)
110
111
 
111
112
  let phoneNumberParser = null
@@ -134,6 +135,7 @@ const ProfessionalAddFormUI = (props) => {
134
135
  }
135
136
  }
136
137
  }
138
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
137
139
  handleChangeInput(phoneNumber, true)
138
140
  }
139
141
 
@@ -44,7 +44,8 @@ const UserAddFormUI = (props) => {
44
44
  handleChangeSwtich,
45
45
  defaultPhoneNumber,
46
46
  isFromCustomOrder,
47
- hideUserTypeSelector
47
+ hideUserTypeSelector,
48
+ setCellphoneStartZero
48
49
  } = props
49
50
  const formMethods = useForm()
50
51
  const [, t] = useLanguage()
@@ -120,7 +121,7 @@ const UserAddFormUI = (props) => {
120
121
  setCropState({ name: null, data: null, open: false })
121
122
  }
122
123
 
123
- const handleChangePhoneNumber = (number, isValid) => {
124
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
124
125
  setUserPhoneNumber(number)
125
126
 
126
127
  let phoneNumberParser = null
@@ -152,6 +153,7 @@ const UserAddFormUI = (props) => {
152
153
  }
153
154
  }
154
155
  }
156
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
155
157
  handleChangeInput(phoneNumber, true)
156
158
  }
157
159
 
@@ -41,7 +41,8 @@ export const UserFormDetailsUI = (props) => {
41
41
  handleChangeUserType,
42
42
  isProfessional,
43
43
  occupations,
44
- handleChangeOccupation
44
+ handleChangeOccupation,
45
+ setCellphoneStartZero
45
46
  } = props
46
47
 
47
48
  const formMethods = useForm()
@@ -133,7 +134,7 @@ export const UserFormDetailsUI = (props) => {
133
134
  }
134
135
  }
135
136
 
136
- const handleChangePhoneNumber = (number, isValid) => {
137
+ const handleChangePhoneNumber = (number, isValid, rawNumber) => {
137
138
  setUserPhoneNumber(number)
138
139
 
139
140
  let phoneNumberParser = null
@@ -166,6 +167,7 @@ export const UserFormDetailsUI = (props) => {
166
167
  }
167
168
  }
168
169
  }
170
+ setCellphoneStartZero && setCellphoneStartZero(rawNumber?.number && rawNumber?.countryCallingCode ? rawNumber?.number : null)
169
171
  handleChangeInput(phoneNumber, true)
170
172
  }
171
173