powr-sdk-web 4.2.8 → 4.3.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.
Files changed (2) hide show
  1. package/dist/auth/index.js +154 -329
  2. package/package.json +1 -1
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _auth = require("../utils/auth");
9
- var _firebase = require("../utils/firebase");
10
- 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 _t5 in e) "default" !== _t5 && {}.hasOwnProperty.call(e, _t5) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t5)) && (i.get || i.set) ? o(f, _t5, i) : f[_t5] = e[_t5]); return f; })(e, t); }
9
+ 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
10
  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
11
  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
12
  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); }
@@ -24,6 +23,8 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
24
23
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25
24
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
26
25
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
26
+ // import { auth, RecaptchaVerifier, signInWithPhoneNumber } from '../utils/firebase';
27
+
27
28
  var PowrLogin = function PowrLogin(_ref) {
28
29
  var apiUrl = _ref.apiUrl,
29
30
  onLogin = _ref.onLogin,
@@ -32,9 +33,7 @@ var PowrLogin = function PowrLogin(_ref) {
32
33
  appLogo = _ref.appLogo,
33
34
  _ref$mode = _ref.mode,
34
35
  mode = _ref$mode === void 0 ? 'toggle' : _ref$mode,
35
- projectId = _ref.projectId,
36
- _ref$fieldType = _ref.fieldType,
37
- fieldType = _ref$fieldType === void 0 ? 'both' : _ref$fieldType;
36
+ projectId = _ref.projectId;
38
37
  var _useState = (0, _react.useState)(function () {
39
38
  switch (mode) {
40
39
  case 'login':
@@ -50,8 +49,7 @@ var PowrLogin = function PowrLogin(_ref) {
50
49
  isLogin = _useState2[0],
51
50
  setIsLogin = _useState2[1];
52
51
  var _useState3 = (0, _react.useState)({
53
- phone: '',
54
- email: '',
52
+ phoneOrEmail: '',
55
53
  password: '',
56
54
  confirmPassword: '',
57
55
  fullName: ''
@@ -87,41 +85,20 @@ var PowrLogin = function PowrLogin(_ref) {
87
85
  _useState16 = _slicedToArray(_useState15, 2),
88
86
  showTooltip = _useState16[0],
89
87
  setShowTooltip = _useState16[1];
90
- var formatPhone = function formatPhone(phone) {
91
- var clean = phone.replace(/\D/g, '');
92
- if (!clean.startsWith('91')) {
93
- clean = '91' + clean;
94
- }
95
- return '+' + clean;
96
- };
97
- var _useState17 = (0, _react.useState)(false),
98
- _useState18 = _slicedToArray(_useState17, 2),
99
- showOtpOption = _useState18[0],
100
- setShowOtpOption = _useState18[1];
101
- var _useState19 = (0, _react.useState)(false),
102
- _useState20 = _slicedToArray(_useState19, 2),
103
- otpSent = _useState20[0],
104
- setOtpSent = _useState20[1];
105
- var _useState21 = (0, _react.useState)(false),
106
- _useState22 = _slicedToArray(_useState21, 2),
107
- otpLoading = _useState22[0],
108
- setOtpLoading = _useState22[1];
109
- var _useState23 = (0, _react.useState)(''),
110
- _useState24 = _slicedToArray(_useState23, 2),
111
- otp = _useState24[0],
112
- setOtp = _useState24[1];
113
- var _useState25 = (0, _react.useState)(false),
114
- _useState26 = _slicedToArray(_useState25, 2),
115
- firebaseOtpSent = _useState26[0],
116
- setFirebaseOtpSent = _useState26[1];
117
- var _useState27 = (0, _react.useState)(null),
118
- _useState28 = _slicedToArray(_useState27, 2),
119
- firebaseConfirm = _useState28[0],
120
- setFirebaseConfirm = _useState28[1];
121
- var _useState29 = (0, _react.useState)(false),
122
- _useState30 = _slicedToArray(_useState29, 2),
123
- otpVerified = _useState30[0],
124
- setOtpVerified = _useState30[1];
88
+ // const formatPhone = (phone) => {
89
+ // let clean = phone.replace(/\D/g, '');
90
+ // if (!clean.startsWith('91')) {
91
+ // clean = '91' + clean;
92
+ // }
93
+ // return '+' + clean;
94
+ // };
95
+ // const [showOtpOption, setShowOtpOption] = useState(false);
96
+ // const [otpSent, setOtpSent] = useState(false);
97
+ // const [otpLoading, setOtpLoading] = useState(false);
98
+ // const [otp, setOtp] = useState('');
99
+ // const [firebaseOtpSent, setFirebaseOtpSent] = useState(false);
100
+ // const [firebaseConfirm, setFirebaseConfirm] = useState(null);
101
+
125
102
  var shouldShowToggle = mode === 'toggle';
126
103
  var handleInputChange = /*#__PURE__*/function () {
127
104
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(e) {
@@ -148,87 +125,41 @@ var PowrLogin = function PowrLogin(_ref) {
148
125
  return _ref2.apply(this, arguments);
149
126
  };
150
127
  }();
151
- var sendFirebaseOtp = /*#__PURE__*/function () {
152
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(phone) {
153
- var appVerifier, confirmationResult, _t;
154
- return _regenerator().w(function (_context2) {
155
- while (1) switch (_context2.p = _context2.n) {
156
- case 0:
157
- setOtpLoading(true);
158
- setError('');
159
- _context2.p = 1;
160
- if (!window.recaptchaVerifier) {
161
- window.recaptchaVerifier = new _firebase.RecaptchaVerifier(_firebase.auth, 'recaptcha-container', {
162
- size: 'invisible'
163
- });
164
- }
165
- appVerifier = window.recaptchaVerifier;
166
- _context2.n = 2;
167
- return (0, _firebase.signInWithPhoneNumber)(_firebase.auth, phone, appVerifier);
168
- case 2:
169
- confirmationResult = _context2.v;
170
- setFirebaseConfirm(confirmationResult);
171
- setFirebaseOtpSent(true);
172
- setSuccess('OTP sent to your phone!');
173
- _context2.n = 4;
174
- break;
175
- case 3:
176
- _context2.p = 3;
177
- _t = _context2.v;
178
- case 4:
179
- _context2.p = 4;
180
- setOtpLoading(false);
181
- return _context2.f(4);
182
- case 5:
183
- return _context2.a(2);
184
- }
185
- }, _callee2, null, [[1, 3, 4, 5]]);
186
- }));
187
- return function sendFirebaseOtp(_x2) {
188
- return _ref3.apply(this, arguments);
189
- };
190
- }();
191
- var verifyFirebaseOtp = /*#__PURE__*/function () {
192
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
193
- var _t2;
194
- return _regenerator().w(function (_context3) {
195
- while (1) switch (_context3.p = _context3.n) {
196
- case 0:
197
- setLoading(true);
198
- setError('');
199
- _context3.p = 1;
200
- if (firebaseConfirm) {
201
- _context3.n = 2;
202
- break;
203
- }
204
- setError('OTP not sent yet.');
205
- return _context3.a(2);
206
- case 2:
207
- _context3.n = 3;
208
- return firebaseConfirm.confirm(otp);
209
- case 3:
210
- setOtpVerified(true);
211
- setSuccess('OTP verified! Please set your password to complete registration.');
212
- _context3.n = 5;
213
- break;
214
- case 4:
215
- _context3.p = 4;
216
- _t2 = _context3.v;
217
- setError('Invalid OTP. Please try again.');
218
- setOtpVerified(false);
219
- case 5:
220
- _context3.p = 5;
221
- setLoading(false);
222
- return _context3.f(5);
223
- case 6:
224
- return _context3.a(2);
225
- }
226
- }, _callee3, null, [[1, 4, 5, 6]]);
227
- }));
228
- return function verifyFirebaseOtp() {
229
- return _ref4.apply(this, arguments);
230
- };
231
- }();
128
+
129
+ // const sendFirebaseOtp = async (phone) => {
130
+ // setOtpLoading(true);
131
+ // setError('');
132
+ // try {
133
+ // if (!window.recaptchaVerifier) {
134
+ // window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', { size: 'invisible' });
135
+ // }
136
+ // const appVerifier = window.recaptchaVerifier;
137
+ // const confirmationResult = await signInWithPhoneNumber(auth, phone, appVerifier);
138
+ // setFirebaseConfirm(confirmationResult);
139
+ // setFirebaseOtpSent(true);
140
+ // setSuccess('OTP sent to your phone!');
141
+ // } catch (err) {
142
+ // } finally {
143
+ // setOtpLoading(false);
144
+ // }
145
+ // };
146
+
147
+ // const verifyFirebaseOtp = async () => {
148
+ // setLoading(true);
149
+ // setError('');
150
+ // try {
151
+ // if (!firebaseConfirm) {
152
+ // setError('OTP not sent yet.');
153
+ // return;
154
+ // }
155
+ // const result = await firebaseConfirm.confirm(otp);
156
+ // await handleSubmit(null, true);
157
+ // } catch (err) {
158
+ // setError('Invalid OTP. Please try again.');
159
+ // } finally {
160
+ // setLoading(false);
161
+ // }
162
+ // };
232
163
 
233
164
  // Validation functions
234
165
  var isValidEmail = function isValidEmail(email) {
@@ -236,34 +167,43 @@ var PowrLogin = function PowrLogin(_ref) {
236
167
  return emailRegex.test(email);
237
168
  };
238
169
  var isValidPhone = function isValidPhone(phone) {
170
+ // Remove all non-digit characters
239
171
  var cleanPhone = phone.replace(/\D/g, '');
172
+ // Check if it's a valid phone number (7-15 digits)
240
173
  return cleanPhone.length >= 7 && cleanPhone.length <= 15;
241
174
  };
242
175
  var handleSubmit = /*#__PURE__*/function () {
243
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(e) {
244
- var errors, endpoint, phoneOrEmail, payload, _yield$apiCall, data, ok, _t3;
245
- return _regenerator().w(function (_context4) {
246
- while (1) switch (_context4.p = _context4.n) {
176
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(e) {
177
+ var skipPhoneValidation,
178
+ errors,
179
+ value,
180
+ isEmail,
181
+ endpoint,
182
+ payload,
183
+ _yield$apiCall,
184
+ data,
185
+ ok,
186
+ _args2 = arguments,
187
+ _t;
188
+ return _regenerator().w(function (_context2) {
189
+ while (1) switch (_context2.p = _context2.n) {
247
190
  case 0:
191
+ skipPhoneValidation = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
248
192
  if (e) e.preventDefault();
249
193
  setLoading(true);
250
194
  setError('');
251
195
  setSuccess('');
252
196
  setFieldErrors({});
253
- errors = {}; // Validation for phone/email fields
254
- if (fieldType === 'phone' || fieldType === 'both') {
255
- if (!formData.phone.trim()) {
256
- errors.phone = 'Phone is required';
257
- } else if (!isValidPhone(formData.phone)) {
258
- errors.phone = 'Please enter a valid phone number';
259
- }
197
+ errors = {};
198
+ value = formData.phoneOrEmail.trim();
199
+ isEmail = value.includes('@');
200
+ if (!formData.phoneOrEmail.trim()) {
201
+ errors.phoneOrEmail = 'Phone or email is required';
260
202
  }
261
- if (fieldType === 'email' || fieldType === 'both') {
262
- if (!formData.email.trim()) {
263
- errors.email = 'Email is required';
264
- } else if (!isValidEmail(formData.email)) {
265
- errors.email = 'Please enter a valid email address';
266
- }
203
+ if (!isLogin && !isValidPhone(value)) {
204
+ errors.phoneOrEmail = 'Please enter a valid phone number';
205
+ } else if (isLogin && isEmail && !isValidEmail(value)) {
206
+ errors.phoneOrEmail = 'Please enter a valid email address';
267
207
  }
268
208
  if (!formData.password.trim()) {
269
209
  errors.password = 'Password is required';
@@ -273,42 +213,37 @@ var PowrLogin = function PowrLogin(_ref) {
273
213
  if (!isLogin && !formData.fullName.trim()) {
274
214
  errors.fullName = 'Full name is required';
275
215
  }
276
- if (!isLogin && fieldType === 'phone' && !otpVerified) {
277
- errors.otp = 'Please verify OTP before signing up';
216
+ if (!isLogin && formData.password !== formData.confirmPassword) {
217
+ errors.confirmPassword = 'Passwords do not match';
278
218
  }
219
+ // if (!isLogin && (!otp || !firebaseConfirm)) {
220
+ // errors.otp = 'Please verify OTP before signing up';
221
+ // }
279
222
  if (!(Object.keys(errors).length > 0)) {
280
- _context4.n = 1;
223
+ _context2.n = 1;
281
224
  break;
282
225
  }
283
226
  setFieldErrors(errors);
284
227
  setLoading(false);
285
- return _context4.a(2);
228
+ return _context2.a(2);
286
229
  case 1:
287
- _context4.p = 1;
230
+ _context2.p = 1;
288
231
  endpoint = isLogin ? "/auth/login" : "/auth/register";
289
- phoneOrEmail = '';
290
- if (fieldType === 'phone') {
291
- phoneOrEmail = formData.phone;
292
- } else if (fieldType === 'email') {
293
- phoneOrEmail = formData.email;
294
- } else if (fieldType === 'both') {
295
- phoneOrEmail = formData.phone || formData.email;
296
- }
297
232
  payload = isLogin ? {
298
- phoneOrEmail: phoneOrEmail,
233
+ phoneOrEmail: formData.phoneOrEmail,
299
234
  password: formData.password
300
235
  } : {
301
236
  fullName: formData.fullName,
302
- phoneOrEmail: phoneOrEmail,
237
+ phoneOrEmail: formData.phoneOrEmail,
303
238
  password: formData.password
304
239
  };
305
- _context4.n = 2;
240
+ _context2.n = 2;
306
241
  return (0, _auth.apiCall)(apiUrl, endpoint, projectId, {
307
242
  method: 'POST',
308
243
  body: payload
309
244
  });
310
245
  case 2:
311
- _yield$apiCall = _context4.v;
246
+ _yield$apiCall = _context2.v;
312
247
  data = _yield$apiCall.data;
313
248
  ok = _yield$apiCall.ok;
314
249
  if (ok) {
@@ -319,8 +254,7 @@ var PowrLogin = function PowrLogin(_ref) {
319
254
  onRegister(data);
320
255
  }
321
256
  setFormData({
322
- phone: '',
323
- email: '',
257
+ phoneOrEmail: '',
324
258
  password: '',
325
259
  confirmPassword: '',
326
260
  fullName: ''
@@ -340,23 +274,23 @@ var PowrLogin = function PowrLogin(_ref) {
340
274
  setError("".concat(isLogin ? 'Login' : 'Registration', " failed. Please try again."));
341
275
  }
342
276
  }
343
- _context4.n = 4;
277
+ _context2.n = 4;
344
278
  break;
345
279
  case 3:
346
- _context4.p = 3;
347
- _t3 = _context4.v;
280
+ _context2.p = 3;
281
+ _t = _context2.v;
348
282
  setError('Network error. Please try again.');
349
283
  case 4:
350
- _context4.p = 4;
284
+ _context2.p = 4;
351
285
  setLoading(false);
352
- return _context4.f(4);
286
+ return _context2.f(4);
353
287
  case 5:
354
- return _context4.a(2);
288
+ return _context2.a(2);
355
289
  }
356
- }, _callee4, null, [[1, 3, 4, 5]]);
290
+ }, _callee2, null, [[1, 3, 4, 5]]);
357
291
  }));
358
- return function handleSubmit(_x3) {
359
- return _ref5.apply(this, arguments);
292
+ return function handleSubmit(_x2) {
293
+ return _ref3.apply(this, arguments);
360
294
  };
361
295
  }();
362
296
  var toggleMode = function toggleMode() {
@@ -364,8 +298,8 @@ var PowrLogin = function PowrLogin(_ref) {
364
298
  setError('');
365
299
  setSuccess('');
366
300
  setFieldErrors({});
367
- setShowOtpOption(false);
368
- setOtpSent(false);
301
+ // setShowOtpOption(false);
302
+ // setOtpSent(false);
369
303
  setFormData({
370
304
  phoneOrEmail: '',
371
305
  password: '',
@@ -373,62 +307,37 @@ var PowrLogin = function PowrLogin(_ref) {
373
307
  fullName: ''
374
308
  });
375
309
  };
376
- var handleGetOtp = /*#__PURE__*/function () {
377
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
378
- var _yield$apiCall2, data, ok, _t4;
379
- return _regenerator().w(function (_context5) {
380
- while (1) switch (_context5.p = _context5.n) {
381
- case 0:
382
- if (formData.phoneOrEmail.trim()) {
383
- _context5.n = 1;
384
- break;
385
- }
386
- setFieldErrors({
387
- phoneOrEmail: 'Phone or email is required for OTP'
388
- });
389
- return _context5.a(2);
390
- case 1:
391
- setOtpLoading(true);
392
- setError('');
393
- setFieldErrors({});
394
- _context5.p = 2;
395
- _context5.n = 3;
396
- return (0, _auth.apiCall)(apiUrl, "/auth/send-otp", projectId, {
397
- method: 'POST',
398
- body: {
399
- phoneOrEmail: formData.phoneOrEmail
400
- }
401
- });
402
- case 3:
403
- _yield$apiCall2 = _context5.v;
404
- data = _yield$apiCall2.data;
405
- ok = _yield$apiCall2.ok;
406
- if (ok) {
407
- setOtpSent(true);
408
- setSuccess('OTP sent successfully! Check your phone/email.');
409
- setShowOtpOption(false);
410
- } else {
411
- setError(data.message || 'Failed to send OTP. Please try again.');
412
- }
413
- _context5.n = 5;
414
- break;
415
- case 4:
416
- _context5.p = 4;
417
- _t4 = _context5.v;
418
- setError('Network error. Please try again.');
419
- case 5:
420
- _context5.p = 5;
421
- setOtpLoading(false);
422
- return _context5.f(5);
423
- case 6:
424
- return _context5.a(2);
425
- }
426
- }, _callee5, null, [[2, 4, 5, 6]]);
427
- }));
428
- return function handleGetOtp() {
429
- return _ref6.apply(this, arguments);
430
- };
431
- }();
310
+
311
+ // const handleGetOtp = async () => {
312
+ // if (!formData.phoneOrEmail.trim()) {
313
+ // setFieldErrors({ phoneOrEmail: 'Phone or email is required for OTP' });
314
+ // return;
315
+ // }
316
+
317
+ // setOtpLoading(true);
318
+ // setError('');
319
+ // setFieldErrors({});
320
+
321
+ // try {
322
+ // const { data, ok } = await apiCall(apiUrl, `/auth/send-otp`, projectId, {
323
+ // method: 'POST',
324
+ // body: { phoneOrEmail: formData.phoneOrEmail }
325
+ // });
326
+
327
+ // if (ok) {
328
+ // setOtpSent(true);
329
+ // setSuccess('OTP sent successfully! Check your phone/email.');
330
+ // setShowOtpOption(false);
331
+ // } else {
332
+ // setError(data.message || 'Failed to send OTP. Please try again.');
333
+ // }
334
+ // } catch (err) {
335
+ // setError('Network error. Please try again.');
336
+ // } finally {
337
+ // setOtpLoading(false);
338
+ // }
339
+ // };
340
+
432
341
  return /*#__PURE__*/_react["default"].createElement("div", {
433
342
  style: styles.container
434
343
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -476,72 +385,23 @@ var PowrLogin = function PowrLogin(_ref) {
476
385
  required: true
477
386
  }), fieldErrors.fullName && /*#__PURE__*/_react["default"].createElement("div", {
478
387
  style: styles.fieldError
479
- }, fieldErrors.fullName)), (fieldType === 'phone' || fieldType === 'both') && /*#__PURE__*/_react["default"].createElement("div", {
388
+ }, fieldErrors.fullName)), /*#__PURE__*/_react["default"].createElement("div", {
480
389
  style: styles.formGroup
481
390
  }, /*#__PURE__*/_react["default"].createElement("label", {
482
- htmlFor: "phone",
391
+ htmlFor: "phoneOrEmail",
483
392
  style: styles.label
484
- }, "Phone"), /*#__PURE__*/_react["default"].createElement("input", {
393
+ }, "Phone or Email"), /*#__PURE__*/_react["default"].createElement("input", {
485
394
  type: "text",
486
- id: "phone",
487
- name: "phone",
488
- value: formData.phone,
395
+ id: "phoneOrEmail",
396
+ name: "phoneOrEmail",
397
+ value: formData.phoneOrEmail,
489
398
  onChange: handleInputChange,
490
- style: _objectSpread(_objectSpread({}, styles.input), fieldErrors.phone ? styles.inputError : {}),
491
- placeholder: "Enter your phone number",
492
- required: fieldType === 'phone' || fieldType === 'both'
493
- }), fieldErrors.phone && /*#__PURE__*/_react["default"].createElement("div", {
494
- style: styles.fieldError
495
- }, fieldErrors.phone), !isLogin && isValidPhone(formData.phone) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !firebaseOtpSent ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
496
- type: "button",
497
- onClick: function onClick() {
498
- return sendFirebaseOtp(formatPhone(formData.phone));
499
- },
500
- style: styles.otpButton,
501
- disabled: otpLoading
502
- }, otpLoading ? 'Sending OTP...' : 'Send OTP to Phone'), /*#__PURE__*/_react["default"].createElement("div", {
503
- id: "recaptcha-container"
504
- })) : !otpVerified ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("label", {
505
- htmlFor: "otp",
506
- style: styles.label
507
- }, "Enter OTP"), /*#__PURE__*/_react["default"].createElement("input", {
508
- type: "text",
509
- id: "otp",
510
- name: "otp",
511
- value: otp,
512
- onChange: function onChange(e) {
513
- return setOtp(e.target.value);
514
- },
515
- style: styles.input,
516
- placeholder: "Enter OTP received",
399
+ style: _objectSpread(_objectSpread({}, styles.input), fieldErrors.phoneOrEmail ? styles.inputError : {}),
400
+ placeholder: "Enter your phone or email",
517
401
  required: true
518
- }), /*#__PURE__*/_react["default"].createElement("button", {
519
- type: "button",
520
- onClick: verifyFirebaseOtp,
521
- style: styles.otpButton,
522
- disabled: loading || !otp
523
- }, loading ? 'Verifying...' : 'Verify OTP')) : /*#__PURE__*/_react["default"].createElement("div", {
524
- style: {
525
- color: '#16a34a',
526
- marginBottom: 8
527
- }
528
- }, "OTP verified! Now set your password and sign up."))), (fieldType === 'email' || fieldType === 'both') && /*#__PURE__*/_react["default"].createElement("div", {
529
- style: styles.formGroup
530
- }, /*#__PURE__*/_react["default"].createElement("label", {
531
- htmlFor: "email",
532
- style: styles.label
533
- }, "Email"), /*#__PURE__*/_react["default"].createElement("input", {
534
- type: "email",
535
- id: "email",
536
- name: "email",
537
- value: formData.email,
538
- onChange: handleInputChange,
539
- style: _objectSpread(_objectSpread({}, styles.input), fieldErrors.email ? styles.inputError : {}),
540
- placeholder: "Enter your email",
541
- required: fieldType === 'email' || fieldType === 'both'
542
- }), fieldErrors.email && /*#__PURE__*/_react["default"].createElement("div", {
402
+ }), fieldErrors.phoneOrEmail && /*#__PURE__*/_react["default"].createElement("div", {
543
403
  style: styles.fieldError
544
- }, fieldErrors.email)), /*#__PURE__*/_react["default"].createElement("div", {
404
+ }, fieldErrors.phoneOrEmail)), /*#__PURE__*/_react["default"].createElement("div", {
545
405
  style: styles.formGroup
546
406
  }, /*#__PURE__*/_react["default"].createElement("label", {
547
407
  htmlFor: "password",
@@ -556,16 +416,14 @@ var PowrLogin = function PowrLogin(_ref) {
556
416
  onChange: handleInputChange,
557
417
  style: _objectSpread(_objectSpread(_objectSpread({}, styles.input), styles.passwordInput), fieldErrors.password ? styles.inputError : {}),
558
418
  placeholder: "Enter your password",
559
- required: true,
560
- disabled: !isLogin && !otpVerified
419
+ required: true
561
420
  }), /*#__PURE__*/_react["default"].createElement("button", {
562
421
  type: "button",
563
422
  onClick: function onClick() {
564
423
  return setShowPassword(!showPassword);
565
424
  },
566
425
  style: styles.eyeButton,
567
- tabIndex: -1,
568
- disabled: !isLogin && !otpVerified
426
+ tabIndex: -1
569
427
  }, showPassword ? /*#__PURE__*/_react["default"].createElement("span", {
570
428
  style: styles.eyeIcon
571
429
  }, "\uD83D\uDC41\uFE0F") : /*#__PURE__*/_react["default"].createElement("span", {
@@ -587,16 +445,14 @@ var PowrLogin = function PowrLogin(_ref) {
587
445
  onChange: handleInputChange,
588
446
  style: _objectSpread(_objectSpread(_objectSpread({}, styles.input), styles.passwordInput), fieldErrors.confirmPassword ? styles.inputError : {}),
589
447
  placeholder: "Confirm your password",
590
- required: true,
591
- disabled: !otpVerified
448
+ required: true
592
449
  }), /*#__PURE__*/_react["default"].createElement("button", {
593
450
  type: "button",
594
451
  onClick: function onClick() {
595
452
  return setShowConfirmPassword(!showConfirmPassword);
596
453
  },
597
454
  style: styles.eyeButton,
598
- tabIndex: -1,
599
- disabled: !otpVerified
455
+ tabIndex: -1
600
456
  }, showConfirmPassword ? /*#__PURE__*/_react["default"].createElement("span", {
601
457
  style: styles.eyeIcon
602
458
  }, "\uD83D\uDC41\uFE0F") : /*#__PURE__*/_react["default"].createElement("span", {
@@ -612,42 +468,11 @@ var PowrLogin = function PowrLogin(_ref) {
612
468
  style: styles.checkbox
613
469
  }), /*#__PURE__*/_react["default"].createElement("span", {
614
470
  style: styles.checkboxText
615
- }, "Remember me")), /*#__PURE__*/_react["default"].createElement("button", {
616
- type: "button",
617
- onClick: function onClick() {
618
- return setShowOtpOption(!showOtpOption);
619
- },
620
- style: styles.forgotPasswordLink
621
- }, "Forgot password?")), isLogin && showOtpOption && /*#__PURE__*/_react["default"].createElement("div", {
622
- style: styles.formGroup
623
- }, /*#__PURE__*/_react["default"].createElement("label", {
624
- htmlFor: "password",
625
- style: styles.label
626
- }, "Password"), /*#__PURE__*/_react["default"].createElement("div", {
627
- style: styles.passwordContainer
628
- }, /*#__PURE__*/_react["default"].createElement("input", {
629
- type: showPassword ? "text" : "password",
630
- id: "password",
631
- name: "password",
632
- value: formData.password,
633
- onChange: handleInputChange,
634
- style: _objectSpread(_objectSpread(_objectSpread({}, styles.input), styles.passwordInput), fieldErrors.password ? styles.inputError : {}),
635
- placeholder: "Enter your password",
636
- required: true
637
- }), /*#__PURE__*/_react["default"].createElement("button", {
638
- type: "button",
639
- onClick: function onClick() {
640
- return setShowPassword(!showPassword);
641
- },
642
- style: styles.eyeButton,
643
- tabIndex: -1
644
- }, showPassword ? /*#__PURE__*/_react["default"].createElement("span", {
645
- style: styles.eyeIcon
646
- }, "\uD83D\uDC41\uFE0F") : /*#__PURE__*/_react["default"].createElement("span", {
647
- style: styles.eyeIcon
648
- }, "\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8\uFE0F"))), fieldErrors.password && /*#__PURE__*/_react["default"].createElement("div", {
649
- style: styles.fieldError
650
- }, fieldErrors.password)), /*#__PURE__*/_react["default"].createElement("button", {
471
+ }, "Remember me"))), error && /*#__PURE__*/_react["default"].createElement("div", {
472
+ style: styles.errorMessage
473
+ }, error), success && /*#__PURE__*/_react["default"].createElement("div", {
474
+ style: styles.successMessage
475
+ }, success), /*#__PURE__*/_react["default"].createElement("button", {
651
476
  type: "submit",
652
477
  disabled: loading,
653
478
  style: _objectSpread(_objectSpread({}, styles.button), loading ? styles.buttonDisabled : {})
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "4.2.8",
3
+ "version": "4.3.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",