powr-sdk-web 1.6.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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() {
@@ -45,6 +51,12 @@ Object.defineProperty(exports, "PowrBaseWaitlist", {
45
51
  return _waitlists["default"];
46
52
  }
47
53
  });
54
+ Object.defineProperty(exports, "PowrLike", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _likes["default"];
58
+ }
59
+ });
48
60
  Object.defineProperty(exports, "PowrLogin", {
49
61
  enumerable: true,
50
62
  get: function get() {
@@ -58,5 +70,7 @@ var _comments = _interopRequireDefault(require("./comments"));
58
70
  var _invoice = _interopRequireDefault(require("./invoice"));
59
71
  var _waitlists = _interopRequireDefault(require("./waitlists"));
60
72
  var _activities = _interopRequireDefault(require("./activities"));
73
+ var _blogs = _interopRequireDefault(require("./blogs"));
74
+ var _likes = _interopRequireDefault(require("./likes"));
61
75
  var _auth = _interopRequireDefault(require("./auth"));
62
76
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -0,0 +1,235 @@
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 _excluded = ["filled", "disabled"];
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 _t4 in e) "default" !== _t4 && {}.hasOwnProperty.call(e, _t4) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t4)) && (i.get || i.set) ? o(f, _t4, i) : f[_t4] = e[_t4]); 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) && (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 }; })(); }
12
+ 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); }
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
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
22
+ 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; }
23
+ 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; }
24
+ 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; }
25
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
26
+ 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); }
27
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
28
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
29
+ var LikeIcon = function LikeIcon(_ref) {
30
+ var filled = _ref.filled,
31
+ disabled = _ref.disabled,
32
+ props = _objectWithoutProperties(_ref, _excluded);
33
+ return /*#__PURE__*/_react["default"].createElement("svg", _extends({
34
+ width: "30",
35
+ height: "30",
36
+ viewBox: "0 0 24 24",
37
+ xmlns: "http://www.w3.org/2000/svg",
38
+ style: _objectSpread({
39
+ transition: "filter 0.2s, transform 0.2s",
40
+ transform: filled ? "scale(1.1)" : "scale(1)"
41
+ }, props.style)
42
+ }, props), /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("linearGradient", {
43
+ id: "like-gradient",
44
+ x1: "0",
45
+ y1: "0",
46
+ x2: "1",
47
+ y2: "1"
48
+ }, /*#__PURE__*/_react["default"].createElement("stop", {
49
+ offset: "0%",
50
+ stopColor: "#2563eb"
51
+ }), /*#__PURE__*/_react["default"].createElement("stop", {
52
+ offset: "100%",
53
+ stopColor: "#a259ec"
54
+ }))), /*#__PURE__*/_react["default"].createElement("path", {
55
+ d: "M1 21h4V9H1v12zM23 10c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14 2 7.59 8.41C7.22 8.78 7 9.3 7 9.83V19c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1z",
56
+ fill: disabled ? "#bcd5fa" : filled ? "url(#like-gradient)" : "#aaa"
57
+ }));
58
+ };
59
+ var PowrLike = function PowrLike(_ref2) {
60
+ var projectId = _ref2.projectId,
61
+ contentId = _ref2.contentId,
62
+ userId = _ref2.userId;
63
+ var _useState = (0, _react.useState)(0),
64
+ _useState2 = _slicedToArray(_useState, 2),
65
+ likesCount = _useState2[0],
66
+ setLikesCount = _useState2[1];
67
+ var _useState3 = (0, _react.useState)(true),
68
+ _useState4 = _slicedToArray(_useState3, 2),
69
+ loading = _useState4[0],
70
+ setLoading = _useState4[1];
71
+ var _useState5 = (0, _react.useState)(false),
72
+ _useState6 = _slicedToArray(_useState5, 2),
73
+ submitting = _useState6[0],
74
+ setSubmitting = _useState6[1];
75
+ var _useState7 = (0, _react.useState)(null),
76
+ _useState8 = _slicedToArray(_useState7, 2),
77
+ userLike = _useState8[0],
78
+ setUserLike = _useState8[1];
79
+ (0, _react.useEffect)(function () {
80
+ var fetchCounts = /*#__PURE__*/function () {
81
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
82
+ var url, response, data, _t;
83
+ return _regenerator().w(function (_context) {
84
+ while (1) switch (_context.n) {
85
+ case 0:
86
+ setLoading(true);
87
+ _context.p = 1;
88
+ url = "https://api.powrbase.cloud/likes?projectId=".concat(projectId);
89
+ if (contentId) url += "&contentId=".concat(contentId);
90
+ _context.n = 2;
91
+ return fetch(url);
92
+ case 2:
93
+ response = _context.v;
94
+ _context.n = 3;
95
+ return response.json();
96
+ case 3:
97
+ data = _context.v;
98
+ setLikesCount(data.likesCount || 0);
99
+ _context.n = 5;
100
+ break;
101
+ case 4:
102
+ _context.p = 4;
103
+ _t = _context.v;
104
+ console.error("Error fetching like count:", _t);
105
+ case 5:
106
+ _context.p = 5;
107
+ setLoading(false);
108
+ return _context.f(5);
109
+ case 6:
110
+ return _context.a(2);
111
+ }
112
+ }, _callee, null, [[1, 4, 5, 6]]);
113
+ }));
114
+ return function fetchCounts() {
115
+ return _ref3.apply(this, arguments);
116
+ };
117
+ }();
118
+ fetchCounts();
119
+ }, [projectId, contentId, submitting]);
120
+ (0, _react.useEffect)(function () {
121
+ var fetchUserLike = /*#__PURE__*/function () {
122
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
123
+ var url, response, data, _t2;
124
+ return _regenerator().w(function (_context2) {
125
+ while (1) switch (_context2.n) {
126
+ case 0:
127
+ if (userId) {
128
+ _context2.n = 1;
129
+ break;
130
+ }
131
+ setUserLike(null);
132
+ return _context2.a(2);
133
+ case 1:
134
+ _context2.p = 1;
135
+ url = "https://api.powrbase.cloud/likes/".concat(userId, "?projectId=").concat(projectId);
136
+ if (contentId) url += "&contentId=".concat(contentId);
137
+ _context2.n = 2;
138
+ return fetch(url);
139
+ case 2:
140
+ response = _context2.v;
141
+ _context2.n = 3;
142
+ return response.json();
143
+ case 3:
144
+ data = _context2.v;
145
+ if (data && data.like && typeof data.like.liked === 'boolean') {
146
+ setUserLike(data.like.liked);
147
+ } else {
148
+ setUserLike(null);
149
+ }
150
+ _context2.n = 5;
151
+ break;
152
+ case 4:
153
+ _context2.p = 4;
154
+ _t2 = _context2.v;
155
+ setUserLike(null);
156
+ case 5:
157
+ return _context2.a(2);
158
+ }
159
+ }, _callee2, null, [[1, 4]]);
160
+ }));
161
+ return function fetchUserLike() {
162
+ return _ref4.apply(this, arguments);
163
+ };
164
+ }();
165
+ fetchUserLike();
166
+ }, [projectId, contentId, userId, submitting]);
167
+ var handleLike = /*#__PURE__*/function () {
168
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
169
+ var url, _t3;
170
+ return _regenerator().w(function (_context3) {
171
+ while (1) switch (_context3.n) {
172
+ case 0:
173
+ setSubmitting(true);
174
+ _context3.p = 1;
175
+ url = "https://api.powrbase.cloud/likes?projectId=".concat(projectId);
176
+ if (contentId) url += "&contentId=".concat(contentId);
177
+ if (userId) url += "&userId=".concat(userId);
178
+ _context3.n = 2;
179
+ return fetch(url, {
180
+ method: "POST",
181
+ headers: {
182
+ "Content-Type": "application/json"
183
+ },
184
+ body: JSON.stringify({
185
+ liked: true
186
+ })
187
+ });
188
+ case 2:
189
+ _context3.n = 4;
190
+ break;
191
+ case 3:
192
+ _context3.p = 3;
193
+ _t3 = _context3.v;
194
+ console.error("Error submitting like:", _t3);
195
+ case 4:
196
+ _context3.p = 4;
197
+ setSubmitting(false);
198
+ return _context3.f(4);
199
+ case 5:
200
+ return _context3.a(2);
201
+ }
202
+ }, _callee3, null, [[1, 3, 4, 5]]);
203
+ }));
204
+ return function handleLike() {
205
+ return _ref5.apply(this, arguments);
206
+ };
207
+ }();
208
+ var isDisabled = loading || submitting;
209
+ return /*#__PURE__*/_react["default"].createElement("div", {
210
+ style: {
211
+ display: "flex",
212
+ gap: "2rem",
213
+ alignItems: "center"
214
+ }
215
+ }, /*#__PURE__*/_react["default"].createElement("div", {
216
+ style: {
217
+ textAlign: "center"
218
+ }
219
+ }, /*#__PURE__*/_react["default"].createElement("button", {
220
+ onClick: handleLike,
221
+ disabled: isDisabled,
222
+ style: {
223
+ background: "none",
224
+ border: "none",
225
+ cursor: isDisabled ? "not-allowed" : "pointer",
226
+ outline: "none",
227
+ padding: 0
228
+ },
229
+ "aria-label": "Like"
230
+ }, /*#__PURE__*/_react["default"].createElement(LikeIcon, {
231
+ filled: userLike === true,
232
+ disabled: isDisabled
233
+ })), /*#__PURE__*/_react["default"].createElement("div", null, likesCount)));
234
+ };
235
+ var _default = exports["default"] = PowrLike;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "1.6.1",
3
+ "version": "1.8.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",