powr-sdk-web 1.7.0 → 1.8.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.
@@ -32,8 +32,29 @@ var PowrLogin = function PowrLogin(_ref) {
32
32
  _ref$registerApiUrl = _ref.registerApiUrl,
33
33
  registerApiUrl = _ref$registerApiUrl === void 0 ? "".concat(baseUrl, "/auth/register") : _ref$registerApiUrl,
34
34
  _ref$subtitle = _ref.subtitle,
35
- subtitle = _ref$subtitle === void 0 ? 'Sign in to your account' : _ref$subtitle;
36
- var _useState = (0, _react.useState)(true),
35
+ subtitle = _ref$subtitle === void 0 ? 'Sign in to your account' : _ref$subtitle,
36
+ _ref$appName = _ref.appName,
37
+ appName = _ref$appName === void 0 ? 'PowrLogin' : _ref$appName,
38
+ _ref$appLogo = _ref.appLogo,
39
+ appLogo = _ref$appLogo === void 0 ? '/logo.png' : _ref$appLogo,
40
+ _ref$welcomeMessage = _ref.welcomeMessage,
41
+ welcomeMessage = _ref$welcomeMessage === void 0 ? 'Welcome to' : _ref$welcomeMessage,
42
+ _ref$mode = _ref.mode,
43
+ mode = _ref$mode === void 0 ? 'toggle' : _ref$mode,
44
+ _ref$showToggle = _ref.showToggle,
45
+ showToggle = _ref$showToggle === void 0 ? null : _ref$showToggle;
46
+ // Initialize state based on mode
47
+ var _useState = (0, _react.useState)(function () {
48
+ switch (mode) {
49
+ case 'login':
50
+ return true;
51
+ case 'register':
52
+ return false;
53
+ case 'toggle':
54
+ default:
55
+ return true;
56
+ }
57
+ }),
37
58
  _useState2 = _slicedToArray(_useState, 2),
38
59
  isLogin = _useState2[0],
39
60
  setIsLogin = _useState2[1];
@@ -70,6 +91,9 @@ var PowrLogin = function PowrLogin(_ref) {
70
91
  _useState14 = _slicedToArray(_useState13, 2),
71
92
  showConfirmPassword = _useState14[0],
72
93
  setShowConfirmPassword = _useState14[1];
94
+
95
+ // Determine if toggle should be shown
96
+ var shouldShowToggle = showToggle !== null ? showToggle : mode === 'toggle';
73
97
  var handleInputChange = function handleInputChange(e) {
74
98
  var _e$target = e.target,
75
99
  name = _e$target.name,
@@ -210,26 +234,26 @@ var PowrLogin = function PowrLogin(_ref) {
210
234
  }, /*#__PURE__*/_react["default"].createElement("div", {
211
235
  style: styles.header
212
236
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
213
- src: "/logo.png",
214
- alt: "Logo",
237
+ src: appLogo,
238
+ alt: "".concat(appName, " Logo"),
215
239
  style: styles.logoImage
216
240
  })), /*#__PURE__*/_react["default"].createElement("h1", {
217
241
  style: styles.title
218
- }, "Welcome to PowrLogin"), /*#__PURE__*/_react["default"].createElement("p", {
242
+ }, welcomeMessage, " ", appName), /*#__PURE__*/_react["default"].createElement("p", {
219
243
  style: styles.subtitle
220
- }, isLogin ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, subtitle, /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("span", {
244
+ }, isLogin ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, subtitle, shouldShowToggle && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("span", {
221
245
  style: styles.text
222
246
  }, "or"), ' ', /*#__PURE__*/_react["default"].createElement("button", {
223
247
  type: "button",
224
248
  onClick: toggleMode,
225
249
  style: styles.createAccountLink
226
- }, "create a new account")) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "Create your account", /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("span", {
250
+ }, "create a new account"))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "Create your account", shouldShowToggle && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("span", {
227
251
  style: styles.text
228
252
  }, "Already have an account?"), ' ', /*#__PURE__*/_react["default"].createElement("button", {
229
253
  type: "button",
230
254
  onClick: toggleMode,
231
255
  style: styles.createAccountLink
232
- }, "Sign in")))), /*#__PURE__*/_react["default"].createElement("form", {
256
+ }, "Sign in"))))), /*#__PURE__*/_react["default"].createElement("form", {
233
257
  onSubmit: handleSubmit,
234
258
  style: styles.form
235
259
  }, !isLogin && /*#__PURE__*/_react["default"].createElement("div", {
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _powrSdkWeb = require("powr-sdk-web");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ var BlogCard = function BlogCard(_ref) {
11
+ var imageUrl = _ref.imageUrl,
12
+ tags = _ref.tags,
13
+ title = _ref.title,
14
+ description = _ref.description,
15
+ author = _ref.author,
16
+ date = _ref.date,
17
+ projectId = _ref.projectId,
18
+ userId = _ref.userId,
19
+ contentId = _ref.contentId;
20
+ return /*#__PURE__*/_react["default"].createElement("div", {
21
+ className: "bg-white rounded-2xl shadow-lg overflow-hidden flex flex-col transition-transform hover:scale-105 duration-200 w-full"
22
+ }, /*#__PURE__*/_react["default"].createElement("img", {
23
+ src: imageUrl || "https://tse3.mm.bing.net/th/id/OIP.rlpNF9-6aK12Vm8dSRAGjgHaHa?pid=Api&P=0&h=220",
24
+ alt: title,
25
+ className: "w-full h-48 object-cover object-center"
26
+ }), /*#__PURE__*/_react["default"].createElement("div", {
27
+ className: "p-6 flex flex-col flex-1"
28
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
29
+ className: "text-xl font-bold mb-2 text-gray-900"
30
+ }, title), /*#__PURE__*/_react["default"].createElement("p", {
31
+ className: "text-gray-600 text-sm flex-1 mb-4"
32
+ }, description), /*#__PURE__*/_react["default"].createElement("div", {
33
+ className: "flex items-center justify-between mt-auto pt-2"
34
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
35
+ className: "font-semibold text-sm text-gray-800"
36
+ }, author || 'Unknown'), /*#__PURE__*/_react["default"].createElement("div", {
37
+ className: "text-xs text-gray-500"
38
+ }, date)), /*#__PURE__*/_react["default"].createElement(_powrSdkWeb.PowrLike, {
39
+ userId: userId,
40
+ projectId: projectId,
41
+ contentId: contentId
42
+ }))));
43
+ };
44
+ var _default = exports["default"] = BlogCard;
@@ -0,0 +1,112 @@
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 _BlogCard = _interopRequireDefault(require("./BlogCard"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
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); }
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) && (c = i[4] || 3, u = i[5] === e ? i[3] : i[5], i[4] = 3, 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
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
14
+ 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); }
15
+ 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); }); }; }
16
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
17
+ 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."); }
18
+ 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; } }
19
+ 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; }
20
+ 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; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
+ var PowrBaseBlogs = function PowrBaseBlogs(_ref) {
23
+ var projectId = _ref.projectId,
24
+ userId = _ref.userId;
25
+ var _useState = (0, _react.useState)([]),
26
+ _useState2 = _slicedToArray(_useState, 2),
27
+ blogs = _useState2[0],
28
+ setBlogs = _useState2[1];
29
+ var _useState3 = (0, _react.useState)(true),
30
+ _useState4 = _slicedToArray(_useState3, 2),
31
+ loading = _useState4[0],
32
+ setLoading = _useState4[1];
33
+ var _useState5 = (0, _react.useState)(null),
34
+ _useState6 = _slicedToArray(_useState5, 2),
35
+ error = _useState6[0],
36
+ setError = _useState6[1];
37
+ (0, _react.useEffect)(function () {
38
+ var fetchBlogs = /*#__PURE__*/function () {
39
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
40
+ var response, data, _t;
41
+ return _regenerator().w(function (_context) {
42
+ while (1) switch (_context.n) {
43
+ case 0:
44
+ _context.p = 0;
45
+ _context.n = 1;
46
+ return fetch("https://api.powrbase.cloud/blogs?projectId=".concat(projectId));
47
+ case 1:
48
+ response = _context.v;
49
+ _context.n = 2;
50
+ return response.json();
51
+ case 2:
52
+ data = _context.v;
53
+ setBlogs((data === null || data === void 0 ? void 0 : data.blogs) || []);
54
+ _context.n = 4;
55
+ break;
56
+ case 3:
57
+ _context.p = 3;
58
+ _t = _context.v;
59
+ setError(_t.message);
60
+ case 4:
61
+ _context.p = 4;
62
+ setLoading(false);
63
+ return _context.f(4);
64
+ case 5:
65
+ return _context.a(2);
66
+ }
67
+ }, _callee, null, [[0, 3, 4, 5]]);
68
+ }));
69
+ return function fetchBlogs() {
70
+ return _ref2.apply(this, arguments);
71
+ };
72
+ }();
73
+ fetchBlogs();
74
+ }, [projectId]);
75
+ if (loading) return /*#__PURE__*/_react["default"].createElement("div", {
76
+ className: "text-center py-10"
77
+ }, "Loading blogs...");
78
+ if (error) return /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: "text-center text-red-500 py-10"
80
+ }, error);
81
+ if (!blogs.length) return /*#__PURE__*/_react["default"].createElement("div", {
82
+ className: "text-center py-10"
83
+ }, "No blogs found.");
84
+ var formatDate = function formatDate(dateStr) {
85
+ if (!dateStr) return "";
86
+ var date = new Date(dateStr);
87
+ return date.toLocaleDateString(undefined, {
88
+ year: 'numeric',
89
+ month: 'short',
90
+ day: 'numeric'
91
+ });
92
+ };
93
+ return /*#__PURE__*/_react["default"].createElement("div", {
94
+ className: "py-10 px-4 flex justify-center"
95
+ }, /*#__PURE__*/_react["default"].createElement("div", {
96
+ className: "w-full max-w-lg flex flex-col gap-8 items-center"
97
+ }, blogs.map(function (blog) {
98
+ return /*#__PURE__*/_react["default"].createElement(_BlogCard["default"], {
99
+ key: blog._id,
100
+ imageUrl: blog.imageUrl,
101
+ tags: blog.tags,
102
+ title: blog.title,
103
+ description: blog.description,
104
+ author: blog.author,
105
+ date: formatDate(blog.date || blog.createdAt),
106
+ projectId: projectId,
107
+ userId: userId,
108
+ contentId: blog._id
109
+ });
110
+ })));
111
+ };
112
+ var _default = exports["default"] = PowrBaseBlogs;
package/dist/index.js CHANGED
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "PowrBaseActivities", {
9
9
  return _activities["default"];
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "PowrBaseBlogs", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _blogs["default"];
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "PowrBaseComments", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -64,6 +70,7 @@ var _comments = _interopRequireDefault(require("./comments"));
64
70
  var _invoice = _interopRequireDefault(require("./invoice"));
65
71
  var _waitlists = _interopRequireDefault(require("./waitlists"));
66
72
  var _activities = _interopRequireDefault(require("./activities"));
73
+ var _blogs = _interopRequireDefault(require("./blogs"));
67
74
  var _likes = _interopRequireDefault(require("./likes"));
68
75
  var _auth = _interopRequireDefault(require("./auth"));
69
76
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "1.7.0",
3
+ "version": "1.8.1",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",