powr-sdk-web 5.7.1 → 5.8.0

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.
@@ -8,6 +8,9 @@ exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _firebase = require("../utils/firebase");
10
10
  var _utils = require("./utils");
11
+ var _phone = require("../utils/phone");
12
+ var _PhoneInput = _interopRequireDefault(require("../components/PhoneInput"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t6 in e) "default" !== _t6 && {}.hasOwnProperty.call(e, _t6) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t6)) && (i.get || i.set) ? o(f, _t6, i) : f[_t6] = e[_t6]); return f; })(e, t); }
12
15
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
16
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
@@ -33,44 +36,69 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
33
36
  onComplete = _ref.onComplete,
34
37
  onBack = _ref.onBack,
35
38
  _ref$requirePhoneVeri = _ref.requirePhoneVerification,
36
- requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? false : _ref$requirePhoneVeri;
37
- var _useState = (0, _react.useState)(''),
39
+ requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? false : _ref$requirePhoneVeri,
40
+ defaultCountry = _ref.defaultCountry,
41
+ defaultCountryCode = _ref.defaultCountryCode,
42
+ _ref$international = _ref.international,
43
+ international = _ref$international === void 0 ? false : _ref$international,
44
+ _ref$allowedCountries = _ref.allowedCountries,
45
+ allowedCountries = _ref$allowedCountries === void 0 ? null : _ref$allowedCountries;
46
+ var resolvedCountry = (0, _phone.resolveCountry)(defaultCountry, defaultCountryCode);
47
+ var _useState = (0, _react.useState)(resolvedCountry),
38
48
  _useState2 = _slicedToArray(_useState, 2),
39
- phone = _useState2[0],
40
- setPhone = _useState2[1];
49
+ phoneCountry = _useState2[0],
50
+ setPhoneCountry = _useState2[1];
41
51
  var _useState3 = (0, _react.useState)(''),
42
52
  _useState4 = _slicedToArray(_useState3, 2),
43
- otp = _useState4[0],
44
- setOtp = _useState4[1];
53
+ localNumber = _useState4[0],
54
+ setLocalNumber = _useState4[1];
45
55
  var _useState5 = (0, _react.useState)(false),
46
56
  _useState6 = _slicedToArray(_useState5, 2),
47
- loading = _useState6[0],
48
- setLoading = _useState6[1];
49
- var _useState7 = (0, _react.useState)(false),
57
+ phoneValid = _useState6[0],
58
+ setPhoneValid = _useState6[1];
59
+ var _useState7 = (0, _react.useState)(''),
50
60
  _useState8 = _slicedToArray(_useState7, 2),
51
- otpSent = _useState8[0],
52
- setOtpSent = _useState8[1];
53
- var _useState9 = (0, _react.useState)(null),
61
+ e164 = _useState8[0],
62
+ setE164 = _useState8[1];
63
+ var _useState9 = (0, _react.useState)(''),
54
64
  _useState0 = _slicedToArray(_useState9, 2),
55
- confirmationResult = _useState0[0],
56
- setConfirmationResult = _useState0[1];
57
- var _useState1 = (0, _react.useState)(''),
65
+ otp = _useState0[0],
66
+ setOtp = _useState0[1];
67
+ var _useState1 = (0, _react.useState)(false),
58
68
  _useState10 = _slicedToArray(_useState1, 2),
59
- error = _useState10[0],
60
- setError = _useState10[1];
61
- var _useState11 = (0, _react.useState)(''),
69
+ loading = _useState10[0],
70
+ setLoading = _useState10[1];
71
+ var _useState11 = (0, _react.useState)(false),
62
72
  _useState12 = _slicedToArray(_useState11, 2),
63
- success = _useState12[0],
64
- setSuccess = _useState12[1];
65
- var _useState13 = (0, _react.useState)(0),
73
+ otpSent = _useState12[0],
74
+ setOtpSent = _useState12[1];
75
+ var _useState13 = (0, _react.useState)(null),
66
76
  _useState14 = _slicedToArray(_useState13, 2),
67
- resendTimer = _useState14[0],
68
- setResendTimer = _useState14[1];
69
- var formatPhone = function formatPhone(value) {
70
- var clean = (value || '').replace(/\D/g, '');
71
- if (!clean.startsWith('91')) clean = '91' + clean;
72
- return '+' + clean;
73
- };
77
+ confirmationResult = _useState14[0],
78
+ setConfirmationResult = _useState14[1];
79
+ var _useState15 = (0, _react.useState)(''),
80
+ _useState16 = _slicedToArray(_useState15, 2),
81
+ error = _useState16[0],
82
+ setError = _useState16[1];
83
+ var _useState17 = (0, _react.useState)(''),
84
+ _useState18 = _slicedToArray(_useState17, 2),
85
+ success = _useState18[0],
86
+ setSuccess = _useState18[1];
87
+ var _useState19 = (0, _react.useState)(0),
88
+ _useState20 = _slicedToArray(_useState19, 2),
89
+ resendTimer = _useState20[0],
90
+ setResendTimer = _useState20[1];
91
+ _react["default"].useEffect(function () {
92
+ if (resendTimer <= 0) return undefined;
93
+ var id = setInterval(function () {
94
+ setResendTimer(function (t) {
95
+ return t <= 1 ? 0 : t - 1;
96
+ });
97
+ }, 1000);
98
+ return function () {
99
+ return clearInterval(id);
100
+ };
101
+ }, [resendTimer]);
74
102
  var clearRecaptcha = function clearRecaptcha() {
75
103
  if (window.recaptchaVerifierAddPhone) {
76
104
  try {
@@ -81,24 +109,23 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
81
109
  window.recaptchaVerifierAddPhone = null;
82
110
  }
83
111
  };
84
- (0, _react.useEffect)(function () {
112
+ _react["default"].useEffect(function () {
85
113
  return function () {
86
114
  return clearRecaptcha();
87
115
  };
88
116
  }, []);
89
- (0, _react.useEffect)(function () {
90
- if (resendTimer <= 0) return undefined;
91
- var id = setInterval(function () {
92
- setResendTimer(function (t) {
93
- return t <= 1 ? 0 : t - 1;
94
- });
95
- }, 1000);
96
- return function () {
97
- return clearInterval(id);
98
- };
99
- }, [resendTimer]);
117
+ var handlePhoneChange = function handlePhoneChange(_ref2) {
118
+ var country = _ref2.country,
119
+ local = _ref2.localNumber,
120
+ formatted = _ref2.e164,
121
+ isValid = _ref2.isValid;
122
+ setPhoneCountry(country);
123
+ setLocalNumber(local);
124
+ setE164(formatted);
125
+ setPhoneValid(isValid);
126
+ };
100
127
  var savePhone = /*#__PURE__*/function () {
101
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(formattedPhone) {
128
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(formattedPhone) {
102
129
  var userId, existing, email, _yield$updatePowrUser, ok, data;
103
130
  return _regenerator().w(function (_context) {
104
131
  while (1) switch (_context.n) {
@@ -144,11 +171,11 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
144
171
  }, _callee);
145
172
  }));
146
173
  return function savePhone(_x) {
147
- return _ref2.apply(this, arguments);
174
+ return _ref3.apply(this, arguments);
148
175
  };
149
176
  }();
150
177
  var handleSaveWithoutOtp = /*#__PURE__*/function () {
151
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
178
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
152
179
  var formattedPhone, updatedUser, _t;
153
180
  return _regenerator().w(function (_context2) {
154
181
  while (1) switch (_context2.p = _context2.n) {
@@ -157,15 +184,15 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
157
184
  setError('');
158
185
  setSuccess('');
159
186
  _context2.p = 1;
160
- if (!(phone.replace(/\D/g, '').length < 10)) {
187
+ formattedPhone = e164 || (0, _phone.normalizePhone)(localNumber, phoneCountry);
188
+ if (!(!phoneValid || !formattedPhone)) {
161
189
  _context2.n = 2;
162
190
  break;
163
191
  }
164
- setError('Please enter a valid 10-digit phone number');
192
+ setError('Please enter a valid phone number');
165
193
  setLoading(false);
166
194
  return _context2.a(2);
167
195
  case 2:
168
- formattedPhone = formatPhone(phone);
169
196
  _context2.n = 3;
170
197
  return savePhone(formattedPhone);
171
198
  case 3:
@@ -189,11 +216,11 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
189
216
  }, _callee2, null, [[1, 4, 5, 6]]);
190
217
  }));
191
218
  return function handleSaveWithoutOtp() {
192
- return _ref3.apply(this, arguments);
219
+ return _ref4.apply(this, arguments);
193
220
  };
194
221
  }();
195
222
  var sendOtp = /*#__PURE__*/function () {
196
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
223
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
197
224
  var phoneNumber, confirmation, _t2, _t3;
198
225
  return _regenerator().w(function (_context3) {
199
226
  while (1) switch (_context3.p = _context3.n) {
@@ -202,12 +229,12 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
202
229
  setError('');
203
230
  setSuccess('');
204
231
  _context3.p = 1;
205
- phoneNumber = formatPhone(phone);
206
- if (!(phone.replace(/\D/g, '').length < 10)) {
232
+ phoneNumber = e164 || (0, _phone.formatPhoneForSms)(localNumber, phoneCountry);
233
+ if (!(!phoneValid || !phoneNumber)) {
207
234
  _context3.n = 2;
208
235
  break;
209
236
  }
210
- setError('Please enter a valid 10-digit phone number');
237
+ setError('Please enter a valid phone number');
211
238
  setLoading(false);
212
239
  return _context3.a(2);
213
240
  case 2:
@@ -252,11 +279,11 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
252
279
  }, _callee3, null, [[3, 5], [1, 8, 9, 10]]);
253
280
  }));
254
281
  return function sendOtp() {
255
- return _ref4.apply(this, arguments);
282
+ return _ref5.apply(this, arguments);
256
283
  };
257
284
  }();
258
285
  var verifyOtp = /*#__PURE__*/function () {
259
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
286
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
260
287
  var formattedPhone, updatedUser, _t4, _t5;
261
288
  return _regenerator().w(function (_context4) {
262
289
  while (1) switch (_context4.p = _context4.n) {
@@ -286,7 +313,7 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
286
313
  _context4.p = 5;
287
314
  _t4 = _context4.v;
288
315
  case 6:
289
- formattedPhone = formatPhone(phone);
316
+ formattedPhone = e164 || (0, _phone.normalizePhone)(localNumber, phoneCountry);
290
317
  _context4.n = 7;
291
318
  return savePhone(formattedPhone);
292
319
  case 7:
@@ -311,7 +338,7 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
311
338
  }, _callee4, null, [[3, 5], [1, 8, 9, 10]]);
312
339
  }));
313
340
  return function verifyOtp() {
314
- return _ref5.apply(this, arguments);
341
+ return _ref6.apply(this, arguments);
315
342
  };
316
343
  }();
317
344
  var subtitle = requirePhoneVerification ? "".concat(appName, " uses your phone for sign-in. Verify your number to continue.") : "".concat(appName, " uses your phone for sign-in. Add your number to continue.");
@@ -323,23 +350,26 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
323
350
  style: panelStyles.subtitle
324
351
  }, subtitle), /*#__PURE__*/_react["default"].createElement("label", {
325
352
  style: panelStyles.label
326
- }, "Phone number"), /*#__PURE__*/_react["default"].createElement("div", {
327
- style: panelStyles.phoneRow
328
- }, /*#__PURE__*/_react["default"].createElement("div", {
329
- style: panelStyles.prefix
330
- }, "+91"), /*#__PURE__*/_react["default"].createElement("input", {
331
- type: "text",
332
- value: phone,
333
- onChange: function onChange(e) {
334
- return setPhone((e.target.value || '').replace(/\D/g, '').slice(0, 10));
353
+ }, "Phone number"), /*#__PURE__*/_react["default"].createElement(_PhoneInput["default"], {
354
+ value: localNumber,
355
+ country: phoneCountry,
356
+ onChange: handlePhoneChange,
357
+ international: international,
358
+ allowedCountries: allowedCountries,
359
+ defaultCountry: resolvedCountry,
360
+ disabled: requirePhoneVerification && otpSent || loading,
361
+ placeholder: international ? 'Phone number' : '10-digit mobile number',
362
+ inputStyle: {
363
+ height: 46,
364
+ border: '1px solid #e5e7eb'
335
365
  },
336
- placeholder: "10-digit mobile number",
337
- style: panelStyles.input,
338
- disabled: requirePhoneVerification && otpSent || loading
339
- })), !requirePhoneVerification ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
366
+ selectStyle: {
367
+ border: '1px solid #e5e7eb'
368
+ }
369
+ }), !requirePhoneVerification ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
340
370
  type: "button",
341
371
  onClick: handleSaveWithoutOtp,
342
- disabled: loading || phone.replace(/\D/g, '').length < 10,
372
+ disabled: loading || !phoneValid,
343
373
  style: panelStyles.primaryButton
344
374
  }, loading ? 'Saving...' : 'Continue'), onBack && /*#__PURE__*/_react["default"].createElement("button", {
345
375
  type: "button",
@@ -352,7 +382,7 @@ var AddPhonePanel = function AddPhonePanel(_ref) {
352
382
  }, "Back to sign in")) : !otpSent ? /*#__PURE__*/_react["default"].createElement("button", {
353
383
  type: "button",
354
384
  onClick: sendOtp,
355
- disabled: loading || phone.replace(/\D/g, '').length < 10,
385
+ disabled: loading || !phoneValid,
356
386
  style: panelStyles.primaryButton
357
387
  }, loading ? 'Sending...' : 'Send OTP') : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("label", {
358
388
  style: _objectSpread(_objectSpread({}, panelStyles.label), {}, {
@@ -424,14 +454,6 @@ var panelStyles = {
424
454
  alignItems: 'center',
425
455
  marginBottom: 12
426
456
  },
427
- prefix: {
428
- background: '#fff7ed',
429
- color: '#7c2d12',
430
- padding: '10px 12px',
431
- borderRadius: 8,
432
- fontWeight: 700,
433
- border: '1px solid #ffedd5'
434
- },
435
457
  input: {
436
458
  flex: 1,
437
459
  padding: '12px 14px',
@@ -449,7 +471,8 @@ var panelStyles = {
449
471
  borderRadius: 8,
450
472
  cursor: 'pointer',
451
473
  fontWeight: 700,
452
- fontSize: 15
474
+ fontSize: 15,
475
+ marginTop: 12
453
476
  },
454
477
  smallPrimaryButton: {
455
478
  padding: '12px 16px',
@@ -8,6 +8,7 @@ exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _OnboardingShell = _interopRequireDefault(require("./OnboardingShell"));
10
10
  var _utils = require("./utils");
11
+ var _phone = require("../utils/phone");
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -46,9 +47,18 @@ var PowrOnboardingProvider = function PowrOnboardingProvider(_ref) {
46
47
  skip = _ref$skip === void 0 ? false : _ref$skip,
47
48
  _ref$requirePhoneVeri = _ref.requirePhoneVerification,
48
49
  requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? false : _ref$requirePhoneVeri,
50
+ _ref$defaultCountry = _ref.defaultCountry,
51
+ defaultCountry = _ref$defaultCountry === void 0 ? _phone.DEFAULT_COUNTRY : _ref$defaultCountry,
52
+ _ref$defaultCountryCo = _ref.defaultCountryCode,
53
+ defaultCountryCode = _ref$defaultCountryCo === void 0 ? _phone.DEFAULT_COUNTRY_CODE : _ref$defaultCountryCo,
54
+ _ref$international = _ref.international,
55
+ international = _ref$international === void 0 ? false : _ref$international,
56
+ _ref$allowedCountries = _ref.allowedCountries,
57
+ allowedCountries = _ref$allowedCountries === void 0 ? null : _ref$allowedCountries,
49
58
  onUserUpdate = _ref.onUserUpdate,
50
59
  onAllComplete = _ref.onAllComplete,
51
60
  children = _ref.children;
61
+ var resolvedDefaultCountry = (0, _phone.resolveCountry)(defaultCountry, defaultCountryCode);
52
62
  var _useState = (0, _react.useState)(user),
53
63
  _useState2 = _slicedToArray(_useState, 2),
54
64
  localUser = _useState2[0],
@@ -75,9 +85,13 @@ var PowrOnboardingProvider = function PowrOnboardingProvider(_ref) {
75
85
  apiUrl: apiUrl,
76
86
  projectId: projectId,
77
87
  appName: appName,
78
- requirePhoneVerification: requirePhoneVerification
88
+ requirePhoneVerification: requirePhoneVerification,
89
+ defaultCountry: resolvedDefaultCountry,
90
+ defaultCountryCode: defaultCountryCode,
91
+ international: international,
92
+ allowedCountries: allowedCountries
79
93
  };
80
- }, [localUser, token, apiUrl, projectId, appName, requirePhoneVerification]);
94
+ }, [localUser, token, apiUrl, projectId, appName, requirePhoneVerification, resolvedDefaultCountry, defaultCountryCode, international, allowedCountries]);
81
95
  var runEvaluation = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
82
96
  var pending;
83
97
  return _regenerator().w(function (_context) {
@@ -25,7 +25,11 @@ var AddPhoneStepView = function AddPhoneStepView(_ref) {
25
25
  return _onComplete(updatedUser);
26
26
  },
27
27
  onBack: onBack,
28
- requirePhoneVerification: ctx.requirePhoneVerification === true
28
+ requirePhoneVerification: ctx.requirePhoneVerification === true,
29
+ defaultCountry: ctx.defaultCountry,
30
+ defaultCountryCode: ctx.defaultCountryCode,
31
+ international: ctx.international === true,
32
+ allowedCountries: ctx.allowedCountries
29
33
  });
30
34
  };
31
35
  var addPhoneStep = exports.addPhoneStep = {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.profileNameStep = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _utils = require("../utils");
10
+ var _phone = require("../../utils/phone");
10
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
11
12
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
12
13
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
@@ -37,7 +38,7 @@ var ProfileNameStepView = function ProfileNameStepView(_ref) {
37
38
  setError = _useState6[1];
38
39
  var handleSave = /*#__PURE__*/function () {
39
40
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
40
- var trimmed, userId, _yield$updatePowrUser, ok, data, _t;
41
+ var trimmed, _ctx$user$phoneNumber, userId, _yield$updatePowrUser, ok, data, _t;
41
42
  return _regenerator().w(function (_context) {
42
43
  while (1) switch (_context.p = _context.n) {
43
44
  case 0:
@@ -61,7 +62,7 @@ var ProfileNameStepView = function ProfileNameStepView(_ref) {
61
62
  token: ctx.token,
62
63
  body: {
63
64
  fullName: trimmed,
64
- phoneNumber: ctx.user.phoneNumber,
65
+ phoneNumber: (_ctx$user$phoneNumber = ctx.user.phoneNumber) !== null && _ctx$user$phoneNumber !== void 0 && _ctx$user$phoneNumber.includes('@') ? ctx.user.phoneNumber : (0, _phone.normalizePhone)(ctx.user.phoneNumber || '', ctx.defaultCountry),
65
66
  email: ctx.user.email
66
67
  }
67
68
  });
@@ -3,18 +3,96 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "DEFAULT_COUNTRY", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _phone.DEFAULT_COUNTRY;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "DEFAULT_COUNTRY_CODE", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _phone.DEFAULT_COUNTRY_CODE;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "PRIORITY_COUNTRIES", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _phone.PRIORITY_COUNTRIES;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "buildPhoneFromParts", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _phone.buildPhoneFromParts;
28
+ }
29
+ });
6
30
  exports.defineAppStep = defineAppStep;
7
31
  exports.defineOptionalAppStep = defineOptionalAppStep;
8
32
  exports.evaluateSteps = evaluateSteps;
33
+ Object.defineProperty(exports, "formatPhoneForSms", {
34
+ enumerable: true,
35
+ get: function get() {
36
+ return _phone.formatPhoneForSms;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, "getCountryOptions", {
40
+ enumerable: true,
41
+ get: function get() {
42
+ return _phone.getCountryOptions;
43
+ }
44
+ });
45
+ Object.defineProperty(exports, "getLocalPhoneNumber", {
46
+ enumerable: true,
47
+ get: function get() {
48
+ return _phone.getLocalPhoneNumber;
49
+ }
50
+ });
51
+ Object.defineProperty(exports, "getPhoneLookupVariants", {
52
+ enumerable: true,
53
+ get: function get() {
54
+ return _phone.getPhoneLookupVariants;
55
+ }
56
+ });
9
57
  exports.getUserId = getUserId;
10
- exports.hasValidPhone = hasValidPhone;
58
+ Object.defineProperty(exports, "hasValidPhone", {
59
+ enumerable: true,
60
+ get: function get() {
61
+ return _phone.hasValidPhone;
62
+ }
63
+ });
64
+ Object.defineProperty(exports, "isValidPhone", {
65
+ enumerable: true,
66
+ get: function get() {
67
+ return _phone.isValidPhone;
68
+ }
69
+ });
11
70
  exports.mergePowrSteps = mergePowrSteps;
12
71
  exports.needsOnboarding = needsOnboarding;
13
72
  exports.needsPhone = needsPhone;
14
73
  exports.needsProfileName = needsProfileName;
74
+ Object.defineProperty(exports, "normalizePhone", {
75
+ enumerable: true,
76
+ get: function get() {
77
+ return _phone.normalizePhone;
78
+ }
79
+ });
80
+ Object.defineProperty(exports, "parsePhone", {
81
+ enumerable: true,
82
+ get: function get() {
83
+ return _phone.parsePhone;
84
+ }
85
+ });
86
+ Object.defineProperty(exports, "resolveCountry", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _phone.resolveCountry;
90
+ }
91
+ });
15
92
  exports.updatePowrUser = updatePowrUser;
16
93
  var _profileNameStep = require("./steps/profileNameStep");
17
94
  var _addPhoneStep = require("./steps/addPhoneStep");
95
+ var _phone = require("../utils/phone");
18
96
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
19
97
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
20
98
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
@@ -32,19 +110,13 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
32
110
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
33
111
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
34
112
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
- function hasValidPhone(phone) {
36
- if (!phone || typeof phone !== 'string') return false;
37
- if (phone.includes('@')) return false;
38
- var clean = phone.replace(/\D/g, '');
39
- return clean.length >= 10 && clean.length <= 15;
40
- }
41
113
  function getUserId(user) {
42
114
  if (!user) return null;
43
115
  var id = user.powrId || user._id || user.id;
44
116
  return id ? String(id) : null;
45
117
  }
46
118
  function needsPhone(user) {
47
- return !hasValidPhone(user === null || user === void 0 ? void 0 : user.phoneNumber);
119
+ return !(0, _phone.hasValidPhone)(user === null || user === void 0 ? void 0 : user.phoneNumber);
48
120
  }
49
121
  function needsProfileName(user) {
50
122
  var _user$fullName;