powr-sdk-web 2.2.0 → 2.3.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/index.js CHANGED
@@ -87,6 +87,12 @@ Object.defineProperty(exports, "PowrBaseUploader", {
87
87
  return _uploader["default"];
88
88
  }
89
89
  });
90
+ Object.defineProperty(exports, "PowrBaseUsersAdmin", {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _admin6["default"];
94
+ }
95
+ });
90
96
  Object.defineProperty(exports, "PowrBaseWaitlist", {
91
97
  enumerable: true,
92
98
  get: function get() {
@@ -121,5 +127,6 @@ var _admin2 = _interopRequireDefault(require("./forms/admin"));
121
127
  var _admin3 = _interopRequireDefault(require("./slides/admin"));
122
128
  var _admin4 = _interopRequireDefault(require("./invoices/admin"));
123
129
  var _admin5 = _interopRequireDefault(require("./notifications/admin"));
130
+ var _admin6 = _interopRequireDefault(require("./users/admin"));
124
131
  var _table = _interopRequireDefault(require("./table"));
125
132
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -0,0 +1,187 @@
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
+ 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); }
10
+ 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 }; })(); }
11
+ 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); }
12
+ 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); }
13
+ 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); }); }; }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ 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."); }
16
+ 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; } }
17
+ 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; }
18
+ 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; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ var PowrBaseUsersAdmin = function PowrBaseUsersAdmin(_ref) {
21
+ var projectId = _ref.projectId,
22
+ _ref$theme = _ref.theme,
23
+ theme = _ref$theme === void 0 ? "blue" : _ref$theme,
24
+ _ref$onUserClick = _ref.onUserClick,
25
+ onUserClick = _ref$onUserClick === void 0 ? null : _ref$onUserClick,
26
+ _ref$showActions = _ref.showActions,
27
+ showActions = _ref$showActions === void 0 ? true : _ref$showActions;
28
+ var _useState = (0, _react.useState)([]),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ users = _useState2[0],
31
+ setUsers = _useState2[1];
32
+ var _useState3 = (0, _react.useState)(true),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ loading = _useState4[0],
35
+ setLoading = _useState4[1];
36
+ var _useState5 = (0, _react.useState)(null),
37
+ _useState6 = _slicedToArray(_useState5, 2),
38
+ error = _useState6[0],
39
+ setError = _useState6[1];
40
+ (0, _react.useEffect)(function () {
41
+ fetchUsers();
42
+ }, [projectId]);
43
+ var fetchUsers = /*#__PURE__*/function () {
44
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
45
+ var response, data, _t;
46
+ return _regenerator().w(function (_context) {
47
+ while (1) switch (_context.n) {
48
+ case 0:
49
+ _context.p = 0;
50
+ setLoading(true);
51
+ _context.n = 1;
52
+ return fetch("https://api.powrbase.cloud/profiles?projectId=".concat(projectId), {
53
+ headers: {
54
+ 'Content-Type': 'application/json'
55
+ }
56
+ });
57
+ case 1:
58
+ response = _context.v;
59
+ if (response.ok) {
60
+ _context.n = 2;
61
+ break;
62
+ }
63
+ throw new Error('Failed to fetch users');
64
+ case 2:
65
+ _context.n = 3;
66
+ return response.json();
67
+ case 3:
68
+ data = _context.v;
69
+ if (data.success) {
70
+ setUsers(data.users || []);
71
+ } else {
72
+ setError(data.message || 'Failed to fetch users');
73
+ }
74
+ _context.n = 5;
75
+ break;
76
+ case 4:
77
+ _context.p = 4;
78
+ _t = _context.v;
79
+ setError(_t.message);
80
+ case 5:
81
+ _context.p = 5;
82
+ setLoading(false);
83
+ return _context.f(5);
84
+ case 6:
85
+ return _context.a(2);
86
+ }
87
+ }, _callee, null, [[0, 4, 5, 6]]);
88
+ }));
89
+ return function fetchUsers() {
90
+ return _ref2.apply(this, arguments);
91
+ };
92
+ }();
93
+ var getBadgeVariant = function getBadgeVariant(access) {
94
+ if (access === 100) return "bg-red-100 text-red-800";
95
+ if (access === 900) return "bg-blue-100 text-blue-800";
96
+ return "bg-gray-100 text-gray-800";
97
+ };
98
+ var getBadgeText = function getBadgeText(access) {
99
+ if (access === 100) return "Admin";
100
+ if (access === 900) return "Client";
101
+ return "Employee";
102
+ };
103
+ var formatDate = function formatDate(dateString) {
104
+ return new Date(dateString).toLocaleDateString();
105
+ };
106
+ if (loading) {
107
+ return /*#__PURE__*/_react["default"].createElement("div", {
108
+ className: "flex items-center justify-center p-8"
109
+ }, /*#__PURE__*/_react["default"].createElement("div", {
110
+ className: "text-gray-500"
111
+ }, "Loading users..."));
112
+ }
113
+ if (error) {
114
+ return /*#__PURE__*/_react["default"].createElement("div", {
115
+ className: "flex items-center justify-center p-8"
116
+ }, /*#__PURE__*/_react["default"].createElement("div", {
117
+ className: "text-red-500"
118
+ }, "Error: ", error));
119
+ }
120
+ return /*#__PURE__*/_react["default"].createElement("div", {
121
+ className: "bg-white rounded-lg shadow"
122
+ }, /*#__PURE__*/_react["default"].createElement("div", {
123
+ className: "px-6 py-4 border-b border-gray-200"
124
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
125
+ className: "text-lg font-medium text-gray-900"
126
+ }, "Project Users"), /*#__PURE__*/_react["default"].createElement("p", {
127
+ className: "mt-1 text-sm text-gray-500"
128
+ }, users.length, " user", users.length !== 1 ? 's' : '', " found")), /*#__PURE__*/_react["default"].createElement("div", {
129
+ className: "overflow-x-auto"
130
+ }, /*#__PURE__*/_react["default"].createElement("table", {
131
+ className: "min-w-full divide-y divide-gray-200"
132
+ }, /*#__PURE__*/_react["default"].createElement("thead", {
133
+ className: "bg-gray-50"
134
+ }, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", {
135
+ className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
136
+ }, "User"), /*#__PURE__*/_react["default"].createElement("th", {
137
+ className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
138
+ }, "Role"), /*#__PURE__*/_react["default"].createElement("th", {
139
+ className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
140
+ }, "Joined"), showActions && /*#__PURE__*/_react["default"].createElement("th", {
141
+ className: "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
142
+ }, "Actions"))), /*#__PURE__*/_react["default"].createElement("tbody", {
143
+ className: "bg-white divide-y divide-gray-200"
144
+ }, users.map(function (user) {
145
+ var _user$fullName;
146
+ return /*#__PURE__*/_react["default"].createElement("tr", {
147
+ key: user._id,
148
+ className: onUserClick ? "cursor-pointer hover:bg-gray-50" : "",
149
+ onClick: function onClick() {
150
+ return onUserClick && onUserClick(user);
151
+ }
152
+ }, /*#__PURE__*/_react["default"].createElement("td", {
153
+ className: "px-6 py-4 whitespace-nowrap"
154
+ }, /*#__PURE__*/_react["default"].createElement("div", {
155
+ className: "flex items-center"
156
+ }, /*#__PURE__*/_react["default"].createElement("div", {
157
+ className: "flex-shrink-0 h-10 w-10"
158
+ }, /*#__PURE__*/_react["default"].createElement("div", {
159
+ className: "h-10 w-10 rounded-full bg-gray-300 flex items-center justify-center"
160
+ }, /*#__PURE__*/_react["default"].createElement("span", {
161
+ className: "text-sm font-medium text-gray-700"
162
+ }, ((_user$fullName = user.fullName) === null || _user$fullName === void 0 ? void 0 : _user$fullName.charAt(0)) || 'U'))), /*#__PURE__*/_react["default"].createElement("div", {
163
+ className: "ml-4"
164
+ }, /*#__PURE__*/_react["default"].createElement("div", {
165
+ className: "text-sm font-medium text-gray-900"
166
+ }, user.fullName || 'Unknown User'), /*#__PURE__*/_react["default"].createElement("div", {
167
+ className: "text-sm text-gray-500"
168
+ }, user.email || user.phoneNumber || 'No contact info')))), /*#__PURE__*/_react["default"].createElement("td", {
169
+ className: "px-6 py-4 whitespace-nowrap"
170
+ }, /*#__PURE__*/_react["default"].createElement("span", {
171
+ className: "inline-flex px-2 py-1 text-xs font-semibold rounded-full ".concat(getBadgeVariant(user.access))
172
+ }, getBadgeText(user.access))), /*#__PURE__*/_react["default"].createElement("td", {
173
+ className: "px-6 py-4 whitespace-nowrap text-sm text-gray-500"
174
+ }, formatDate(user.createdAt)), showActions && /*#__PURE__*/_react["default"].createElement("td", {
175
+ className: "px-6 py-4 whitespace-nowrap text-sm font-medium"
176
+ }, /*#__PURE__*/_react["default"].createElement("button", {
177
+ className: "text-indigo-600 hover:text-indigo-900 mr-3"
178
+ }, "Edit"), /*#__PURE__*/_react["default"].createElement("button", {
179
+ className: "text-red-600 hover:text-red-900"
180
+ }, "Remove")));
181
+ })))), users.length === 0 && /*#__PURE__*/_react["default"].createElement("div", {
182
+ className: "text-center py-8"
183
+ }, /*#__PURE__*/_react["default"].createElement("div", {
184
+ className: "text-gray-500"
185
+ }, "No users found for this project")));
186
+ };
187
+ var _default = exports["default"] = PowrBaseUsersAdmin;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",