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.
- package/dist/auth/index.js +141 -41
- package/dist/index.js +79 -0
- package/dist/onboarding/AddPhonePanel.js +504 -0
- package/dist/onboarding/OnboardingShell.js +78 -0
- package/dist/onboarding/PowrOnboardingProvider.js +216 -0
- package/dist/onboarding/index.js +102 -0
- package/dist/onboarding/steps/addPhoneStep.js +40 -0
- package/dist/onboarding/steps/profileNameStep.js +200 -0
- package/dist/onboarding/utils.js +213 -0
- package/dist/users/admin.js +162 -25
- package/package.json +1 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _OnboardingShell = _interopRequireDefault(require("./OnboardingShell"));
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
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
|
+
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; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
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; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
|
+
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); }
|
|
18
|
+
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
|
+
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
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
21
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
22
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
25
|
+
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; }
|
|
26
|
+
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; } }
|
|
27
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
28
|
+
var STEP_TITLES = {
|
|
29
|
+
phone: 'Phone',
|
|
30
|
+
profile: 'Profile',
|
|
31
|
+
app: 'Setup'
|
|
32
|
+
};
|
|
33
|
+
var PowrOnboardingProvider = function PowrOnboardingProvider(_ref) {
|
|
34
|
+
var apiUrl = _ref.apiUrl,
|
|
35
|
+
projectId = _ref.projectId,
|
|
36
|
+
user = _ref.user,
|
|
37
|
+
token = _ref.token,
|
|
38
|
+
_ref$isHydrated = _ref.isHydrated,
|
|
39
|
+
isHydrated = _ref$isHydrated === void 0 ? true : _ref$isHydrated,
|
|
40
|
+
_ref$steps = _ref.steps,
|
|
41
|
+
steps = _ref$steps === void 0 ? [] : _ref$steps,
|
|
42
|
+
_ref$appName = _ref.appName,
|
|
43
|
+
appName = _ref$appName === void 0 ? 'App' : _ref$appName,
|
|
44
|
+
appLogo = _ref.appLogo,
|
|
45
|
+
_ref$skip = _ref.skip,
|
|
46
|
+
skip = _ref$skip === void 0 ? false : _ref$skip,
|
|
47
|
+
_ref$requirePhoneVeri = _ref.requirePhoneVerification,
|
|
48
|
+
requirePhoneVerification = _ref$requirePhoneVeri === void 0 ? false : _ref$requirePhoneVeri,
|
|
49
|
+
onUserUpdate = _ref.onUserUpdate,
|
|
50
|
+
onAllComplete = _ref.onAllComplete,
|
|
51
|
+
children = _ref.children;
|
|
52
|
+
var _useState = (0, _react.useState)(user),
|
|
53
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54
|
+
localUser = _useState2[0],
|
|
55
|
+
setLocalUser = _useState2[1];
|
|
56
|
+
var _useState3 = (0, _react.useState)([]),
|
|
57
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
|
+
pendingSteps = _useState4[0],
|
|
59
|
+
setPendingSteps = _useState4[1];
|
|
60
|
+
var _useState5 = (0, _react.useState)(0),
|
|
61
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
62
|
+
activeIndex = _useState6[0],
|
|
63
|
+
setActiveIndex = _useState6[1];
|
|
64
|
+
var _useState7 = (0, _react.useState)(true),
|
|
65
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
66
|
+
evaluating = _useState8[0],
|
|
67
|
+
setEvaluating = _useState8[1];
|
|
68
|
+
var allSteps = (0, _react.useMemo)(function () {
|
|
69
|
+
return (0, _utils.mergePowrSteps)(steps);
|
|
70
|
+
}, [steps]);
|
|
71
|
+
var ctx = (0, _react.useMemo)(function () {
|
|
72
|
+
return {
|
|
73
|
+
user: localUser,
|
|
74
|
+
token: token,
|
|
75
|
+
apiUrl: apiUrl,
|
|
76
|
+
projectId: projectId,
|
|
77
|
+
appName: appName,
|
|
78
|
+
requirePhoneVerification: requirePhoneVerification
|
|
79
|
+
};
|
|
80
|
+
}, [localUser, token, apiUrl, projectId, appName, requirePhoneVerification]);
|
|
81
|
+
var runEvaluation = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
82
|
+
var pending;
|
|
83
|
+
return _regenerator().w(function (_context) {
|
|
84
|
+
while (1) switch (_context.p = _context.n) {
|
|
85
|
+
case 0:
|
|
86
|
+
if (!(skip || !isHydrated || !localUser || !token)) {
|
|
87
|
+
_context.n = 1;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
setPendingSteps([]);
|
|
91
|
+
setEvaluating(false);
|
|
92
|
+
return _context.a(2);
|
|
93
|
+
case 1:
|
|
94
|
+
setEvaluating(true);
|
|
95
|
+
_context.p = 2;
|
|
96
|
+
_context.n = 3;
|
|
97
|
+
return (0, _utils.evaluateSteps)(allSteps, ctx);
|
|
98
|
+
case 3:
|
|
99
|
+
pending = _context.v;
|
|
100
|
+
setPendingSteps(pending);
|
|
101
|
+
setActiveIndex(0);
|
|
102
|
+
case 4:
|
|
103
|
+
_context.p = 4;
|
|
104
|
+
setEvaluating(false);
|
|
105
|
+
return _context.f(4);
|
|
106
|
+
case 5:
|
|
107
|
+
return _context.a(2);
|
|
108
|
+
}
|
|
109
|
+
}, _callee, null, [[2,, 4, 5]]);
|
|
110
|
+
})), [allSteps, ctx, isHydrated, localUser, skip, token]);
|
|
111
|
+
(0, _react.useEffect)(function () {
|
|
112
|
+
setLocalUser(user);
|
|
113
|
+
}, [user]);
|
|
114
|
+
(0, _react.useEffect)(function () {
|
|
115
|
+
runEvaluation();
|
|
116
|
+
}, [runEvaluation]);
|
|
117
|
+
var handleStepComplete = /*#__PURE__*/function () {
|
|
118
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(patch) {
|
|
119
|
+
var updatedUser, pending;
|
|
120
|
+
return _regenerator().w(function (_context2) {
|
|
121
|
+
while (1) switch (_context2.n) {
|
|
122
|
+
case 0:
|
|
123
|
+
updatedUser = patch ? _objectSpread(_objectSpread({}, localUser), patch) : localUser;
|
|
124
|
+
setLocalUser(updatedUser);
|
|
125
|
+
if (typeof onUserUpdate === 'function') {
|
|
126
|
+
onUserUpdate(updatedUser);
|
|
127
|
+
}
|
|
128
|
+
_context2.n = 1;
|
|
129
|
+
return (0, _utils.evaluateSteps)(allSteps, _objectSpread(_objectSpread({}, ctx), {}, {
|
|
130
|
+
user: updatedUser
|
|
131
|
+
}));
|
|
132
|
+
case 1:
|
|
133
|
+
pending = _context2.v;
|
|
134
|
+
if (!(pending.length === 0)) {
|
|
135
|
+
_context2.n = 2;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
setPendingSteps([]);
|
|
139
|
+
if (typeof onAllComplete === 'function') {
|
|
140
|
+
onAllComplete(updatedUser);
|
|
141
|
+
}
|
|
142
|
+
return _context2.a(2);
|
|
143
|
+
case 2:
|
|
144
|
+
setPendingSteps(pending);
|
|
145
|
+
setActiveIndex(0);
|
|
146
|
+
case 3:
|
|
147
|
+
return _context2.a(2);
|
|
148
|
+
}
|
|
149
|
+
}, _callee2);
|
|
150
|
+
}));
|
|
151
|
+
return function handleStepComplete(_x) {
|
|
152
|
+
return _ref3.apply(this, arguments);
|
|
153
|
+
};
|
|
154
|
+
}();
|
|
155
|
+
var handleSkip = function handleSkip() {
|
|
156
|
+
if (activeIndex < pendingSteps.length - 1) {
|
|
157
|
+
setActiveIndex(function (index) {
|
|
158
|
+
return index + 1;
|
|
159
|
+
});
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
setPendingSteps([]);
|
|
163
|
+
if (typeof onAllComplete === 'function') {
|
|
164
|
+
onAllComplete(localUser);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
if (skip || !isHydrated || !localUser || !token) {
|
|
168
|
+
return children;
|
|
169
|
+
}
|
|
170
|
+
if (evaluating) {
|
|
171
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
172
|
+
style: loadingStyles.page
|
|
173
|
+
}, /*#__PURE__*/_react["default"].createElement("style", null, '@keyframes powr-onboarding-spin { to { transform: rotate(360deg); } }'), /*#__PURE__*/_react["default"].createElement("div", {
|
|
174
|
+
style: loadingStyles.spinner
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
if (pendingSteps.length === 0) {
|
|
178
|
+
return children;
|
|
179
|
+
}
|
|
180
|
+
var currentStep = pendingSteps[activeIndex] || pendingSteps[0];
|
|
181
|
+
var StepComponent = currentStep.Component;
|
|
182
|
+
return /*#__PURE__*/_react["default"].createElement(_OnboardingShell["default"], {
|
|
183
|
+
appName: appName,
|
|
184
|
+
appLogo: appLogo,
|
|
185
|
+
currentStep: activeIndex + 1,
|
|
186
|
+
totalSteps: pendingSteps.length,
|
|
187
|
+
stepTitle: STEP_TITLES[currentStep.id] || currentStep.id
|
|
188
|
+
}, /*#__PURE__*/_react["default"].createElement(StepComponent, {
|
|
189
|
+
ctx: ctx,
|
|
190
|
+
onComplete: handleStepComplete,
|
|
191
|
+
onSkip: currentStep.optional ? handleSkip : undefined,
|
|
192
|
+
onBack: activeIndex > 0 ? function () {
|
|
193
|
+
return setActiveIndex(function (index) {
|
|
194
|
+
return Math.max(0, index - 1);
|
|
195
|
+
});
|
|
196
|
+
} : undefined
|
|
197
|
+
}));
|
|
198
|
+
};
|
|
199
|
+
var loadingStyles = {
|
|
200
|
+
page: {
|
|
201
|
+
minHeight: '100vh',
|
|
202
|
+
display: 'flex',
|
|
203
|
+
alignItems: 'center',
|
|
204
|
+
justifyContent: 'center',
|
|
205
|
+
background: '#f8fafc'
|
|
206
|
+
},
|
|
207
|
+
spinner: {
|
|
208
|
+
width: 40,
|
|
209
|
+
height: 40,
|
|
210
|
+
border: '3px solid #e5e7eb',
|
|
211
|
+
borderTopColor: '#ff6b35',
|
|
212
|
+
borderRadius: '50%',
|
|
213
|
+
animation: 'powr-onboarding-spin 0.8s linear infinite'
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
var _default = exports["default"] = PowrOnboardingProvider;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "AddPhonePanel", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _AddPhonePanel["default"];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "OnboardingShell", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _OnboardingShell["default"];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "PowrOnboardingProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _PowrOnboardingProvider["default"];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "addPhoneStep", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _addPhoneStep.addPhoneStep;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "defineAppStep", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _utils.defineAppStep;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "defineOptionalAppStep", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _utils.defineOptionalAppStep;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "evaluateSteps", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _utils.evaluateSteps;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "getUserId", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _utils.getUserId;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "hasValidPhone", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _utils.hasValidPhone;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "mergePowrSteps", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _utils.mergePowrSteps;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "needsOnboarding", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function get() {
|
|
69
|
+
return _utils.needsOnboarding;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "needsPhone", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _utils.needsPhone;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "needsProfileName", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _utils.needsProfileName;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "profileNameStep", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function get() {
|
|
87
|
+
return _profileNameStep.profileNameStep;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "updatePowrUser", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _utils.updatePowrUser;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
var _utils = require("./utils");
|
|
97
|
+
var _profileNameStep = require("./steps/profileNameStep");
|
|
98
|
+
var _addPhoneStep = require("./steps/addPhoneStep");
|
|
99
|
+
var _AddPhonePanel = _interopRequireDefault(require("./AddPhonePanel"));
|
|
100
|
+
var _OnboardingShell = _interopRequireDefault(require("./OnboardingShell"));
|
|
101
|
+
var _PowrOnboardingProvider = _interopRequireDefault(require("./PowrOnboardingProvider"));
|
|
102
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addPhoneStep = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _AddPhonePanel = _interopRequireDefault(require("../AddPhonePanel"));
|
|
9
|
+
var _utils = require("../utils");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
var AddPhoneStepView = function AddPhoneStepView(_ref) {
|
|
12
|
+
var ctx = _ref.ctx,
|
|
13
|
+
_onComplete = _ref.onComplete,
|
|
14
|
+
onBack = _ref.onBack;
|
|
15
|
+
var pendingAuth = {
|
|
16
|
+
user: ctx.user,
|
|
17
|
+
token: ctx.token
|
|
18
|
+
};
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement(_AddPhonePanel["default"], {
|
|
20
|
+
apiUrl: ctx.apiUrl,
|
|
21
|
+
projectId: ctx.projectId,
|
|
22
|
+
pendingAuth: pendingAuth,
|
|
23
|
+
appName: ctx.appName || 'App',
|
|
24
|
+
onComplete: function onComplete(updatedUser) {
|
|
25
|
+
return _onComplete(updatedUser);
|
|
26
|
+
},
|
|
27
|
+
onBack: onBack,
|
|
28
|
+
requirePhoneVerification: ctx.requirePhoneVerification === true
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
var addPhoneStep = exports.addPhoneStep = {
|
|
32
|
+
id: 'phone',
|
|
33
|
+
layer: 'powr',
|
|
34
|
+
order: 5,
|
|
35
|
+
shouldRun: function shouldRun(_ref2) {
|
|
36
|
+
var user = _ref2.user;
|
|
37
|
+
return (0, _utils.needsPhone)(user);
|
|
38
|
+
},
|
|
39
|
+
Component: AddPhoneStepView
|
|
40
|
+
};
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.profileNameStep = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _utils = require("../utils");
|
|
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 _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
|
+
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
|
+
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); }
|
|
13
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
14
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
15
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
+
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; }
|
|
19
|
+
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; } }
|
|
20
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
+
var ProfileNameStepView = function ProfileNameStepView(_ref) {
|
|
22
|
+
var _ctx$user;
|
|
23
|
+
var ctx = _ref.ctx,
|
|
24
|
+
onComplete = _ref.onComplete,
|
|
25
|
+
onSkip = _ref.onSkip;
|
|
26
|
+
var _useState = (0, _react.useState)((ctx === null || ctx === void 0 || (_ctx$user = ctx.user) === null || _ctx$user === void 0 ? void 0 : _ctx$user.fullName) || ''),
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
name = _useState2[0],
|
|
29
|
+
setName = _useState2[1];
|
|
30
|
+
var _useState3 = (0, _react.useState)(false),
|
|
31
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
32
|
+
loading = _useState4[0],
|
|
33
|
+
setLoading = _useState4[1];
|
|
34
|
+
var _useState5 = (0, _react.useState)(''),
|
|
35
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
36
|
+
error = _useState6[0],
|
|
37
|
+
setError = _useState6[1];
|
|
38
|
+
var handleSave = /*#__PURE__*/function () {
|
|
39
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
40
|
+
var trimmed, userId, _yield$updatePowrUser, ok, data, _t;
|
|
41
|
+
return _regenerator().w(function (_context) {
|
|
42
|
+
while (1) switch (_context.p = _context.n) {
|
|
43
|
+
case 0:
|
|
44
|
+
trimmed = name.trim();
|
|
45
|
+
if (trimmed) {
|
|
46
|
+
_context.n = 1;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
setError('Please enter your name');
|
|
50
|
+
return _context.a(2);
|
|
51
|
+
case 1:
|
|
52
|
+
setLoading(true);
|
|
53
|
+
setError('');
|
|
54
|
+
_context.p = 2;
|
|
55
|
+
userId = (0, _utils.getUserId)(ctx.user);
|
|
56
|
+
_context.n = 3;
|
|
57
|
+
return (0, _utils.updatePowrUser)({
|
|
58
|
+
apiUrl: ctx.apiUrl,
|
|
59
|
+
projectId: ctx.projectId,
|
|
60
|
+
userId: userId,
|
|
61
|
+
token: ctx.token,
|
|
62
|
+
body: {
|
|
63
|
+
fullName: trimmed,
|
|
64
|
+
phoneNumber: ctx.user.phoneNumber,
|
|
65
|
+
email: ctx.user.email
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
case 3:
|
|
69
|
+
_yield$updatePowrUser = _context.v;
|
|
70
|
+
ok = _yield$updatePowrUser.ok;
|
|
71
|
+
data = _yield$updatePowrUser.data;
|
|
72
|
+
if (ok) {
|
|
73
|
+
_context.n = 4;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
throw new Error((data === null || data === void 0 ? void 0 : data.message) || 'Failed to save name');
|
|
77
|
+
case 4:
|
|
78
|
+
onComplete({
|
|
79
|
+
fullName: trimmed
|
|
80
|
+
});
|
|
81
|
+
_context.n = 6;
|
|
82
|
+
break;
|
|
83
|
+
case 5:
|
|
84
|
+
_context.p = 5;
|
|
85
|
+
_t = _context.v;
|
|
86
|
+
setError((_t === null || _t === void 0 ? void 0 : _t.message) || 'Something went wrong');
|
|
87
|
+
case 6:
|
|
88
|
+
_context.p = 6;
|
|
89
|
+
setLoading(false);
|
|
90
|
+
return _context.f(6);
|
|
91
|
+
case 7:
|
|
92
|
+
return _context.a(2);
|
|
93
|
+
}
|
|
94
|
+
}, _callee, null, [[2, 5, 6, 7]]);
|
|
95
|
+
}));
|
|
96
|
+
return function handleSave() {
|
|
97
|
+
return _ref2.apply(this, arguments);
|
|
98
|
+
};
|
|
99
|
+
}();
|
|
100
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
101
|
+
style: styles.wrapper
|
|
102
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
103
|
+
style: styles.title
|
|
104
|
+
}, "What should we call you?"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
105
|
+
style: styles.subtitle
|
|
106
|
+
}, "Add your name so others can recognize you."), /*#__PURE__*/_react["default"].createElement("label", {
|
|
107
|
+
style: styles.label
|
|
108
|
+
}, "Full name"), /*#__PURE__*/_react["default"].createElement("input", {
|
|
109
|
+
type: "text",
|
|
110
|
+
value: name,
|
|
111
|
+
onChange: function onChange(e) {
|
|
112
|
+
return setName(e.target.value);
|
|
113
|
+
},
|
|
114
|
+
placeholder: "Your full name",
|
|
115
|
+
style: styles.input,
|
|
116
|
+
autoFocus: true
|
|
117
|
+
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
118
|
+
style: styles.error
|
|
119
|
+
}, error), /*#__PURE__*/_react["default"].createElement("button", {
|
|
120
|
+
type: "button",
|
|
121
|
+
onClick: handleSave,
|
|
122
|
+
disabled: loading,
|
|
123
|
+
style: styles.button
|
|
124
|
+
}, loading ? 'Saving...' : 'Continue'), onSkip && /*#__PURE__*/_react["default"].createElement("button", {
|
|
125
|
+
type: "button",
|
|
126
|
+
onClick: onSkip,
|
|
127
|
+
style: styles.skipButton
|
|
128
|
+
}, "Skip for now"));
|
|
129
|
+
};
|
|
130
|
+
var profileNameStep = exports.profileNameStep = {
|
|
131
|
+
id: 'profile',
|
|
132
|
+
layer: 'powr',
|
|
133
|
+
order: 10,
|
|
134
|
+
shouldRun: function shouldRun(_ref3) {
|
|
135
|
+
var _user$fullName;
|
|
136
|
+
var user = _ref3.user;
|
|
137
|
+
return !(user !== null && user !== void 0 && (_user$fullName = user.fullName) !== null && _user$fullName !== void 0 && _user$fullName.trim());
|
|
138
|
+
},
|
|
139
|
+
Component: ProfileNameStepView
|
|
140
|
+
};
|
|
141
|
+
var styles = {
|
|
142
|
+
wrapper: {
|
|
143
|
+
width: '100%'
|
|
144
|
+
},
|
|
145
|
+
title: {
|
|
146
|
+
margin: '0 0 8px',
|
|
147
|
+
fontSize: 24,
|
|
148
|
+
fontWeight: 700,
|
|
149
|
+
color: '#111827'
|
|
150
|
+
},
|
|
151
|
+
subtitle: {
|
|
152
|
+
margin: '0 0 20px',
|
|
153
|
+
fontSize: 14,
|
|
154
|
+
color: '#6b7280'
|
|
155
|
+
},
|
|
156
|
+
label: {
|
|
157
|
+
display: 'block',
|
|
158
|
+
fontSize: 13,
|
|
159
|
+
fontWeight: 600,
|
|
160
|
+
marginBottom: 6
|
|
161
|
+
},
|
|
162
|
+
input: {
|
|
163
|
+
width: '100%',
|
|
164
|
+
padding: '12px 14px',
|
|
165
|
+
borderRadius: 8,
|
|
166
|
+
border: '1px solid #e5e7eb',
|
|
167
|
+
fontSize: 15,
|
|
168
|
+
marginBottom: 16,
|
|
169
|
+
boxSizing: 'border-box'
|
|
170
|
+
},
|
|
171
|
+
button: {
|
|
172
|
+
width: '100%',
|
|
173
|
+
padding: 12,
|
|
174
|
+
background: '#ff6b35',
|
|
175
|
+
color: 'white',
|
|
176
|
+
border: 'none',
|
|
177
|
+
borderRadius: 8,
|
|
178
|
+
cursor: 'pointer',
|
|
179
|
+
fontWeight: 700,
|
|
180
|
+
fontSize: 15
|
|
181
|
+
},
|
|
182
|
+
skipButton: {
|
|
183
|
+
width: '100%',
|
|
184
|
+
marginTop: 12,
|
|
185
|
+
padding: 10,
|
|
186
|
+
background: 'transparent',
|
|
187
|
+
border: 'none',
|
|
188
|
+
color: '#6b7280',
|
|
189
|
+
cursor: 'pointer',
|
|
190
|
+
fontSize: 14
|
|
191
|
+
},
|
|
192
|
+
error: {
|
|
193
|
+
marginBottom: 12,
|
|
194
|
+
color: '#dc2626',
|
|
195
|
+
background: '#fff1f2',
|
|
196
|
+
padding: 10,
|
|
197
|
+
borderRadius: 8,
|
|
198
|
+
fontSize: 14
|
|
199
|
+
}
|
|
200
|
+
};
|