powr-sdk-web 5.6.13 → 5.7.1

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.
@@ -7,6 +7,9 @@ exports["default"] = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _auth = require("../utils/auth");
9
9
  var _firebase = require("../utils/firebase");
10
+ var _AddPhonePanel = _interopRequireDefault(require("../onboarding/AddPhonePanel"));
11
+ var _utils = require("../onboarding/utils");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
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 _t7 in e) "default" !== _t7 && {}.hasOwnProperty.call(e, _t7) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t7)) && (i.get || i.set) ? o(f, _t7, i) : f[_t7] = e[_t7]); return f; })(e, t); }
11
14
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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 }; })(); }
@@ -36,7 +39,11 @@ var PowrLogin = function PowrLogin(_ref) {
36
39
  _ref$requirePhoneVeri = _ref.requirePhoneVerification,
37
40
  requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? true : _ref$requirePhoneVeri,
38
41
  _ref$showForgotPasswo = _ref.showForgotPassword,
39
- showForgotPassword = _ref$showForgotPasswo === void 0 ? true : _ref$showForgotPasswo;
42
+ showForgotPassword = _ref$showForgotPasswo === void 0 ? true : _ref$showForgotPasswo,
43
+ _ref$completeProfileO = _ref.completeProfileOnLogin,
44
+ completeProfileOnLogin = _ref$completeProfileO === void 0 ? false : _ref$completeProfileO,
45
+ _ref$requireTerms = _ref.requireTerms,
46
+ requireTerms = _ref$requireTerms === void 0 ? false : _ref$requireTerms;
40
47
  var _useState = (0, _react.useState)(function () {
41
48
  switch (mode) {
42
49
  case 'login':
@@ -127,6 +134,18 @@ var PowrLogin = function PowrLogin(_ref) {
127
134
  _useState32 = _slicedToArray(_useState31, 2),
128
135
  isPhoneVerified = _useState32[0],
129
136
  setIsPhoneVerified = _useState32[1];
137
+ var _useState33 = (0, _react.useState)('form'),
138
+ _useState34 = _slicedToArray(_useState33, 2),
139
+ authView = _useState34[0],
140
+ setAuthView = _useState34[1];
141
+ var _useState35 = (0, _react.useState)(null),
142
+ _useState36 = _slicedToArray(_useState35, 2),
143
+ pendingAuth = _useState36[0],
144
+ setPendingAuth = _useState36[1];
145
+ var _useState37 = (0, _react.useState)(false),
146
+ _useState38 = _slicedToArray(_useState37, 2),
147
+ termsAccepted = _useState38[0],
148
+ setTermsAccepted = _useState38[1];
130
149
  var shouldShowToggle = mode === 'toggle';
131
150
  var handleInputChange = /*#__PURE__*/function () {
132
151
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(e) {
@@ -381,6 +400,9 @@ var PowrLogin = function PowrLogin(_ref) {
381
400
  if (!isLogin && requirePhoneVerification && !isPhoneVerified) {
382
401
  errors.phoneOrEmail = 'Please verify your phone number first';
383
402
  }
403
+ if (!isLogin && requireTerms && !termsAccepted) {
404
+ errors.terms = 'Please accept the terms to continue';
405
+ }
384
406
  if (!(Object.keys(errors).length > 0)) {
385
407
  _context4.n = 1;
386
408
  break;
@@ -408,52 +430,78 @@ var PowrLogin = function PowrLogin(_ref) {
408
430
  _yield$apiCall = _context4.v;
409
431
  data = _yield$apiCall.data;
410
432
  ok = _yield$apiCall.ok;
411
- if (ok) {
412
- setSuccess(isLogin ? 'Login successful!' : 'Registration successful!');
413
- if (isLogin && onLogin) {
414
- onLogin(data);
415
- } else if (!isLogin && onRegister) {
416
- onRegister(data);
417
- }
418
- setFormData({
419
- phoneOrEmail: '',
420
- password: '',
421
- confirmPassword: '',
422
- fullName: ''
423
- });
424
- // Reset OTP related states
425
- setOtp('');
426
- setFirebaseOtpSent(false);
427
- setFirebaseConfirm(null);
428
- } else {
429
- if (data.message) {
430
- setError(data.message);
431
- } else if (data.error) {
432
- setError(data.error);
433
- } else if (data.errors) {
434
- if (_typeof(data.errors) === 'object') {
435
- setFieldErrors(data.errors);
436
- } else {
437
- setError(data.errors);
438
- }
433
+ if (!ok) {
434
+ _context4.n = 6;
435
+ break;
436
+ }
437
+ setSuccess(isLogin ? 'Login successful!' : 'Registration successful!');
438
+ if (!isLogin) {
439
+ _context4.n = 4;
440
+ break;
441
+ }
442
+ if (!(completeProfileOnLogin && (0, _utils.needsPhone)(data.user))) {
443
+ _context4.n = 3;
444
+ break;
445
+ }
446
+ setPendingAuth({
447
+ user: data.user,
448
+ token: data.token
449
+ });
450
+ setAuthView('add-phone');
451
+ setLoading(false);
452
+ return _context4.a(2);
453
+ case 3:
454
+ if (onLogin) {
455
+ onLogin(data);
456
+ }
457
+ _context4.n = 5;
458
+ break;
459
+ case 4:
460
+ if (!isLogin && onRegister) {
461
+ onRegister(data);
462
+ }
463
+ case 5:
464
+ setFormData({
465
+ phoneOrEmail: '',
466
+ password: '',
467
+ confirmPassword: '',
468
+ fullName: ''
469
+ });
470
+ // Reset OTP related states
471
+ setOtp('');
472
+ setFirebaseOtpSent(false);
473
+ setFirebaseConfirm(null);
474
+ _context4.n = 7;
475
+ break;
476
+ case 6:
477
+ if (data.message) {
478
+ setError(data.message);
479
+ } else if (data.error) {
480
+ setError(data.error);
481
+ } else if (data.errors) {
482
+ if (_typeof(data.errors) === 'object') {
483
+ setFieldErrors(data.errors);
439
484
  } else {
440
- setError("".concat(isLogin ? 'Login' : 'Registration', " failed. Please try again."));
485
+ setError(data.errors);
441
486
  }
487
+ } else {
488
+ setError("".concat(isLogin ? 'Login' : 'Registration', " failed. Please try again."));
442
489
  }
443
- _context4.n = 4;
490
+ case 7:
491
+ _context4.n = 9;
444
492
  break;
445
- case 3:
446
- _context4.p = 3;
493
+ case 8:
494
+ _context4.p = 8;
447
495
  _t5 = _context4.v;
448
496
  setError('Network error. Please try again.');
449
- case 4:
450
- _context4.p = 4;
497
+ case 9:
498
+ _context4.p = 9;
451
499
  setLoading(false);
452
- return _context4.f(4);
453
- case 5:
500
+ return _context4.f(9);
501
+ case 10:
454
502
  return _context4.a(2);
455
503
  }
456
- }, _callee4, null, [[1, 3, 4, 5]]);
504
+ }, _callee4, null, [[1, 8, 9, 10]]);
457
505
  }));
458
506
  return function handleSubmit(_x3) {
459
507
  return _ref5.apply(this, arguments);
@@ -471,6 +519,9 @@ var PowrLogin = function PowrLogin(_ref) {
471
519
  setFirebaseConfirm(null);
472
520
  setShowOtpModal(false);
473
521
  setIsPhoneVerified(false);
522
+ setAuthView('form');
523
+ setPendingAuth(null);
524
+ setTermsAccepted(false);
474
525
  setFormData({
475
526
  phoneOrEmail: '',
476
527
  password: '',
@@ -478,6 +529,25 @@ var PowrLogin = function PowrLogin(_ref) {
478
529
  fullName: ''
479
530
  });
480
531
  };
532
+ var handleAddPhoneComplete = function handleAddPhoneComplete(updatedUser) {
533
+ if (!pendingAuth) return;
534
+ var payload = {
535
+ success: true,
536
+ user: updatedUser,
537
+ token: pendingAuth.token
538
+ };
539
+ setAuthView('form');
540
+ setPendingAuth(null);
541
+ if (onLogin) {
542
+ onLogin(payload);
543
+ }
544
+ };
545
+ var handleAddPhoneBack = function handleAddPhoneBack() {
546
+ setAuthView('form');
547
+ setPendingAuth(null);
548
+ setError('');
549
+ setSuccess('');
550
+ };
481
551
  var handleGetOtp = /*#__PURE__*/function () {
482
552
  var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
483
553
  var _yield$apiCall2, data, ok, _t6;
@@ -562,7 +632,15 @@ var PowrLogin = function PowrLogin(_ref) {
562
632
  }
563
633
  }, "PowrAccount")), showTooltip && /*#__PURE__*/_react["default"].createElement("div", {
564
634
  style: styles.tooltip
565
- }, "Secure authentication powered by Lawazia Tech"))), /*#__PURE__*/_react["default"].createElement("form", {
635
+ }, "Secure authentication powered by Lawazia Tech"))), authView === 'add-phone' && pendingAuth ? /*#__PURE__*/_react["default"].createElement(_AddPhonePanel["default"], {
636
+ apiUrl: apiUrl,
637
+ projectId: projectId,
638
+ pendingAuth: pendingAuth,
639
+ appName: appName,
640
+ onComplete: handleAddPhoneComplete,
641
+ onBack: handleAddPhoneBack,
642
+ requirePhoneVerification: requirePhoneVerification
643
+ }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("form", {
566
644
  onSubmit: handleSubmit,
567
645
  style: styles.form
568
646
  }, !isLogin && /*#__PURE__*/_react["default"].createElement("div", {
@@ -670,7 +748,29 @@ var PowrLogin = function PowrLogin(_ref) {
670
748
  style: styles.eyeIcon
671
749
  }, "\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8\uFE0F"))), fieldErrors.confirmPassword && /*#__PURE__*/_react["default"].createElement("div", {
672
750
  style: styles.fieldError
673
- }, fieldErrors.confirmPassword)), isLogin && /*#__PURE__*/_react["default"].createElement("div", {
751
+ }, fieldErrors.confirmPassword)), !isLogin && requireTerms && /*#__PURE__*/_react["default"].createElement("div", {
752
+ style: styles.formGroup
753
+ }, /*#__PURE__*/_react["default"].createElement("label", {
754
+ style: styles.checkboxLabel
755
+ }, /*#__PURE__*/_react["default"].createElement("input", {
756
+ type: "checkbox",
757
+ checked: termsAccepted,
758
+ onChange: function onChange(e) {
759
+ setTermsAccepted(e.target.checked);
760
+ if (fieldErrors.terms) {
761
+ setFieldErrors(function (prev) {
762
+ return _objectSpread(_objectSpread({}, prev), {}, {
763
+ terms: ''
764
+ });
765
+ });
766
+ }
767
+ },
768
+ style: styles.checkbox
769
+ }), /*#__PURE__*/_react["default"].createElement("span", {
770
+ style: styles.checkboxText
771
+ }, "I agree to the Terms of Service and Privacy Policy")), fieldErrors.terms && /*#__PURE__*/_react["default"].createElement("div", {
772
+ style: styles.fieldError
773
+ }, fieldErrors.terms)), isLogin && /*#__PURE__*/_react["default"].createElement("div", {
674
774
  style: styles.rememberSection
675
775
  }, /*#__PURE__*/_react["default"].createElement("label", {
676
776
  style: styles.checkboxLabel
@@ -726,7 +826,7 @@ var PowrLogin = function PowrLogin(_ref) {
726
826
  }, "Sign in here") : /*#__PURE__*/_react["default"].createElement("a", {
727
827
  href: "/login",
728
828
  style: styles.navigationLink
729
- }, "Sign in here"))))), showOtpModal && /*#__PURE__*/_react["default"].createElement("div", {
829
+ }, "Sign in here")))))), showOtpModal && /*#__PURE__*/_react["default"].createElement("div", {
730
830
  style: styles.modalOverlay
731
831
  }, /*#__PURE__*/_react["default"].createElement("div", {
732
832
  style: styles.modalContent
package/dist/index.js CHANGED
@@ -3,6 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "AddPhonePanel", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _onboarding.AddPhonePanel;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "OnboardingShell", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _onboarding.OnboardingShell;
16
+ }
17
+ });
6
18
  Object.defineProperty(exports, "PowrBaseActivities", {
7
19
  enumerable: true,
8
20
  get: function get() {
@@ -117,12 +129,78 @@ Object.defineProperty(exports, "PowrCalendarStrip", {
117
129
  return _calendar["default"];
118
130
  }
119
131
  });
132
+ Object.defineProperty(exports, "PowrOnboardingProvider", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _onboarding.PowrOnboardingProvider;
136
+ }
137
+ });
120
138
  Object.defineProperty(exports, "PowrTable", {
121
139
  enumerable: true,
122
140
  get: function get() {
123
141
  return _table["default"];
124
142
  }
125
143
  });
144
+ Object.defineProperty(exports, "addPhoneStep", {
145
+ enumerable: true,
146
+ get: function get() {
147
+ return _onboarding.addPhoneStep;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "defineAppStep", {
151
+ enumerable: true,
152
+ get: function get() {
153
+ return _onboarding.defineAppStep;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "defineOptionalAppStep", {
157
+ enumerable: true,
158
+ get: function get() {
159
+ return _onboarding.defineOptionalAppStep;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "evaluateSteps", {
163
+ enumerable: true,
164
+ get: function get() {
165
+ return _onboarding.evaluateSteps;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "getUserId", {
169
+ enumerable: true,
170
+ get: function get() {
171
+ return _onboarding.getUserId;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "hasValidPhone", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _onboarding.hasValidPhone;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "mergePowrSteps", {
181
+ enumerable: true,
182
+ get: function get() {
183
+ return _onboarding.mergePowrSteps;
184
+ }
185
+ });
186
+ Object.defineProperty(exports, "needsOnboarding", {
187
+ enumerable: true,
188
+ get: function get() {
189
+ return _onboarding.needsOnboarding;
190
+ }
191
+ });
192
+ Object.defineProperty(exports, "needsPhone", {
193
+ enumerable: true,
194
+ get: function get() {
195
+ return _onboarding.needsPhone;
196
+ }
197
+ });
198
+ Object.defineProperty(exports, "profileNameStep", {
199
+ enumerable: true,
200
+ get: function get() {
201
+ return _onboarding.profileNameStep;
202
+ }
203
+ });
126
204
  var _table = _interopRequireDefault(require("./table"));
127
205
  var _swiper = _interopRequireDefault(require("./swiper"));
128
206
  var _reviews = _interopRequireDefault(require("./reviews"));
@@ -143,4 +221,5 @@ var _admin = _interopRequireDefault(require("./admin"));
143
221
  var _tools = _interopRequireDefault(require("./tools"));
144
222
  var _tasks = _interopRequireDefault(require("./tasks"));
145
223
  var _powrVerify = _interopRequireDefault(require("./powrVerify"));
224
+ var _onboarding = require("./onboarding");
146
225
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }