powr-sdk-web 2.0.13 → 2.0.15
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 +7 -0
- package/dist/invoices/admin.js +2 -2
- package/dist/notifications/admin.js +495 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "PowrBaseLogin", {
|
|
|
57
57
|
return _auth["default"];
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "PowrBaseNotificationsAdmin", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _admin5["default"];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
Object.defineProperty(exports, "PowrBaseReviews", {
|
|
61
67
|
enumerable: true,
|
|
62
68
|
get: function get() {
|
|
@@ -108,4 +114,5 @@ var _forms = _interopRequireDefault(require("./forms"));
|
|
|
108
114
|
var _admin2 = _interopRequireDefault(require("./forms/admin"));
|
|
109
115
|
var _admin3 = _interopRequireDefault(require("./slides/admin"));
|
|
110
116
|
var _admin4 = _interopRequireDefault(require("./invoices/admin"));
|
|
117
|
+
var _admin5 = _interopRequireDefault(require("./notifications/admin"));
|
|
111
118
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
package/dist/invoices/admin.js
CHANGED
|
@@ -461,8 +461,8 @@ var PowrBaseInvoicesAdmin = function PowrBaseInvoicesAdmin(_ref) {
|
|
|
461
461
|
onClick: function onClick() {
|
|
462
462
|
return setShowAddModal(true);
|
|
463
463
|
},
|
|
464
|
-
className: "bg-
|
|
465
|
-
}, "Add Invoice")), showAddModal && /*#__PURE__*/_react["default"].createElement("div", {
|
|
464
|
+
className: "bg-red-600 hover:bg-red-700 text-white px-6 py-3 rounded-md transition-colors text-lg font-bold border-2 border-red-800"
|
|
465
|
+
}, "\u2795 Add Invoice")), showAddModal && /*#__PURE__*/_react["default"].createElement("div", {
|
|
466
466
|
className: "fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-50"
|
|
467
467
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
468
468
|
className: "bg-white rounded-lg p-6 w-full max-w-4xl max-h-[90vh] overflow-y-auto"
|
|
@@ -0,0 +1,495 @@
|
|
|
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 _reactFilepond = require("react-filepond");
|
|
10
|
+
var _filepond = require("filepond");
|
|
11
|
+
var _reactToastify = require("react-toastify");
|
|
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 _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); }
|
|
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 PowrBaseNotificationsAdmin = function PowrBaseNotificationsAdmin(_ref) {
|
|
29
|
+
var _notificationData$fil, _notificationData$fil2;
|
|
30
|
+
var projectId = _ref.projectId,
|
|
31
|
+
_ref$apiUrl = _ref.apiUrl,
|
|
32
|
+
apiUrl = _ref$apiUrl === void 0 ? 'https://api.powrbase.cloud/notifications' : _ref$apiUrl,
|
|
33
|
+
onNotificationAction = _ref.onNotificationAction,
|
|
34
|
+
onRefresh = _ref.onRefresh;
|
|
35
|
+
var _useState = (0, _react.useState)([]),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
files = _useState2[0],
|
|
38
|
+
setFiles = _useState2[1];
|
|
39
|
+
var _useState3 = (0, _react.useState)(true),
|
|
40
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
41
|
+
loading = _useState4[0],
|
|
42
|
+
setLoading = _useState4[1];
|
|
43
|
+
var _useState5 = (0, _react.useState)([]),
|
|
44
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
45
|
+
images = _useState6[0],
|
|
46
|
+
setImages = _useState6[1];
|
|
47
|
+
var _useState7 = (0, _react.useState)(false),
|
|
48
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
49
|
+
isOpen = _useState8[0],
|
|
50
|
+
setIsOpen = _useState8[1];
|
|
51
|
+
var _useState9 = (0, _react.useState)(false),
|
|
52
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
53
|
+
loadingGCS = _useState0[0],
|
|
54
|
+
setLoadingGCS = _useState0[1];
|
|
55
|
+
var _useState1 = (0, _react.useState)(null),
|
|
56
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
57
|
+
selectedImageurl = _useState10[0],
|
|
58
|
+
setSelectedImageurl = _useState10[1];
|
|
59
|
+
var _useState11 = (0, _react.useState)(false),
|
|
60
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
61
|
+
showModal = _useState12[0],
|
|
62
|
+
setShowModal = _useState12[1];
|
|
63
|
+
var _useState13 = (0, _react.useState)([]),
|
|
64
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
65
|
+
notifications = _useState14[0],
|
|
66
|
+
setNotifications = _useState14[1];
|
|
67
|
+
var _useState15 = (0, _react.useState)(null),
|
|
68
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
69
|
+
error = _useState16[0],
|
|
70
|
+
setError = _useState16[1];
|
|
71
|
+
var _useState17 = (0, _react.useState)({
|
|
72
|
+
title: '',
|
|
73
|
+
description: '',
|
|
74
|
+
url: '',
|
|
75
|
+
filter: {
|
|
76
|
+
city: '',
|
|
77
|
+
isMerchant: false
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
81
|
+
notificationData = _useState18[0],
|
|
82
|
+
setNotificationData = _useState18[1];
|
|
83
|
+
var fetchNotifications = /*#__PURE__*/function () {
|
|
84
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
85
|
+
var response, data, _t;
|
|
86
|
+
return _regenerator().w(function (_context) {
|
|
87
|
+
while (1) switch (_context.n) {
|
|
88
|
+
case 0:
|
|
89
|
+
if (projectId) {
|
|
90
|
+
_context.n = 1;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
return _context.a(2);
|
|
94
|
+
case 1:
|
|
95
|
+
setLoading(true);
|
|
96
|
+
setError(null);
|
|
97
|
+
_context.p = 2;
|
|
98
|
+
_context.n = 3;
|
|
99
|
+
return fetch(apiUrl, {
|
|
100
|
+
method: 'POST',
|
|
101
|
+
headers: {
|
|
102
|
+
'Content-Type': 'application/json'
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify({
|
|
105
|
+
projectId: projectId
|
|
106
|
+
})
|
|
107
|
+
});
|
|
108
|
+
case 3:
|
|
109
|
+
response = _context.v;
|
|
110
|
+
if (response.ok) {
|
|
111
|
+
_context.n = 4;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
throw new Error('Failed to fetch notifications');
|
|
115
|
+
case 4:
|
|
116
|
+
_context.n = 5;
|
|
117
|
+
return response.json();
|
|
118
|
+
case 5:
|
|
119
|
+
data = _context.v;
|
|
120
|
+
if (!data.success) {
|
|
121
|
+
_context.n = 6;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
setNotifications(data.notification);
|
|
125
|
+
_context.n = 7;
|
|
126
|
+
break;
|
|
127
|
+
case 6:
|
|
128
|
+
throw new Error('API response indicates failure');
|
|
129
|
+
case 7:
|
|
130
|
+
_context.n = 9;
|
|
131
|
+
break;
|
|
132
|
+
case 8:
|
|
133
|
+
_context.p = 8;
|
|
134
|
+
_t = _context.v;
|
|
135
|
+
setError(_t instanceof Error ? _t.message : 'Failed to load notifications');
|
|
136
|
+
setNotifications([]);
|
|
137
|
+
case 9:
|
|
138
|
+
_context.p = 9;
|
|
139
|
+
setLoading(false);
|
|
140
|
+
return _context.f(9);
|
|
141
|
+
case 10:
|
|
142
|
+
return _context.a(2);
|
|
143
|
+
}
|
|
144
|
+
}, _callee, null, [[2, 8, 9, 10]]);
|
|
145
|
+
}));
|
|
146
|
+
return function fetchNotifications() {
|
|
147
|
+
return _ref2.apply(this, arguments);
|
|
148
|
+
};
|
|
149
|
+
}();
|
|
150
|
+
(0, _react.useEffect)(function () {
|
|
151
|
+
fetchNotifications();
|
|
152
|
+
}, [projectId]);
|
|
153
|
+
(0, _react.useEffect)(function () {
|
|
154
|
+
if (selectedImageurl) {
|
|
155
|
+
setNotificationData(function (prev) {
|
|
156
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
157
|
+
url: selectedImageurl
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
setShowModal(true);
|
|
161
|
+
}
|
|
162
|
+
}, [selectedImageurl]);
|
|
163
|
+
var handleFileUpload = function handleFileUpload(response) {
|
|
164
|
+
var jsonResponse = JSON.parse(response);
|
|
165
|
+
var success = jsonResponse.results.find(function (result) {
|
|
166
|
+
return result.status === 'sucess';
|
|
167
|
+
});
|
|
168
|
+
if (success) {
|
|
169
|
+
setNotificationData(function (prev) {
|
|
170
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
171
|
+
url: success.url
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
setShowModal(true);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
var handleSubmit = /*#__PURE__*/function () {
|
|
178
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
179
|
+
var response, result, _t2;
|
|
180
|
+
return _regenerator().w(function (_context2) {
|
|
181
|
+
while (1) switch (_context2.n) {
|
|
182
|
+
case 0:
|
|
183
|
+
if (projectId) {
|
|
184
|
+
_context2.n = 1;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
return _context2.a(2);
|
|
188
|
+
case 1:
|
|
189
|
+
_context2.p = 1;
|
|
190
|
+
_context2.n = 2;
|
|
191
|
+
return fetch("".concat(apiUrl, "/add"), {
|
|
192
|
+
method: 'POST',
|
|
193
|
+
headers: {
|
|
194
|
+
'Content-Type': 'application/json'
|
|
195
|
+
},
|
|
196
|
+
body: JSON.stringify({
|
|
197
|
+
projectId: projectId,
|
|
198
|
+
imgurl: notificationData.url,
|
|
199
|
+
title: notificationData.title,
|
|
200
|
+
description: notificationData.description,
|
|
201
|
+
filter: notificationData.filter
|
|
202
|
+
})
|
|
203
|
+
});
|
|
204
|
+
case 2:
|
|
205
|
+
response = _context2.v;
|
|
206
|
+
_context2.n = 3;
|
|
207
|
+
return response.json();
|
|
208
|
+
case 3:
|
|
209
|
+
result = _context2.v;
|
|
210
|
+
if (!result.success) {
|
|
211
|
+
_context2.n = 5;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
setShowModal(false);
|
|
215
|
+
setNotificationData({
|
|
216
|
+
title: '',
|
|
217
|
+
description: '',
|
|
218
|
+
url: '',
|
|
219
|
+
filter: {
|
|
220
|
+
city: '',
|
|
221
|
+
isMerchant: false
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
_context2.n = 4;
|
|
225
|
+
return fetchNotifications();
|
|
226
|
+
case 4:
|
|
227
|
+
if (onNotificationAction) {
|
|
228
|
+
onNotificationAction('success', 'Notification added successfully!');
|
|
229
|
+
} else {
|
|
230
|
+
_reactToastify.toast.success('Notification added successfully!');
|
|
231
|
+
}
|
|
232
|
+
_context2.n = 6;
|
|
233
|
+
break;
|
|
234
|
+
case 5:
|
|
235
|
+
throw new Error('Failed to add notification');
|
|
236
|
+
case 6:
|
|
237
|
+
_context2.n = 8;
|
|
238
|
+
break;
|
|
239
|
+
case 7:
|
|
240
|
+
_context2.p = 7;
|
|
241
|
+
_t2 = _context2.v;
|
|
242
|
+
if (onNotificationAction) {
|
|
243
|
+
onNotificationAction('error', _t2.message || 'Failed to add notification');
|
|
244
|
+
} else {
|
|
245
|
+
_reactToastify.toast.error(_t2.message || 'Failed to add notification');
|
|
246
|
+
}
|
|
247
|
+
case 8:
|
|
248
|
+
return _context2.a(2);
|
|
249
|
+
}
|
|
250
|
+
}, _callee2, null, [[1, 7]]);
|
|
251
|
+
}));
|
|
252
|
+
return function handleSubmit() {
|
|
253
|
+
return _ref3.apply(this, arguments);
|
|
254
|
+
};
|
|
255
|
+
}();
|
|
256
|
+
var handleInputChange = function handleInputChange(e) {
|
|
257
|
+
var _e$target = e.target,
|
|
258
|
+
name = _e$target.name,
|
|
259
|
+
value = _e$target.value;
|
|
260
|
+
setNotificationData(function (prev) {
|
|
261
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, name, value));
|
|
262
|
+
});
|
|
263
|
+
};
|
|
264
|
+
var handlegcs = /*#__PURE__*/function () {
|
|
265
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
266
|
+
var response, data, _t3;
|
|
267
|
+
return _regenerator().w(function (_context3) {
|
|
268
|
+
while (1) switch (_context3.n) {
|
|
269
|
+
case 0:
|
|
270
|
+
setLoadingGCS(true);
|
|
271
|
+
_context3.p = 1;
|
|
272
|
+
_context3.n = 2;
|
|
273
|
+
return fetch('/api/getimage');
|
|
274
|
+
case 2:
|
|
275
|
+
response = _context3.v;
|
|
276
|
+
_context3.n = 3;
|
|
277
|
+
return response.json();
|
|
278
|
+
case 3:
|
|
279
|
+
data = _context3.v;
|
|
280
|
+
setImages(data.images);
|
|
281
|
+
setIsOpen(true);
|
|
282
|
+
_context3.n = 5;
|
|
283
|
+
break;
|
|
284
|
+
case 4:
|
|
285
|
+
_context3.p = 4;
|
|
286
|
+
_t3 = _context3.v;
|
|
287
|
+
console.error('Error fetching images:', _t3);
|
|
288
|
+
case 5:
|
|
289
|
+
_context3.p = 5;
|
|
290
|
+
setLoadingGCS(false);
|
|
291
|
+
return _context3.f(5);
|
|
292
|
+
case 6:
|
|
293
|
+
return _context3.a(2);
|
|
294
|
+
}
|
|
295
|
+
}, _callee3, null, [[1, 4, 5, 6]]);
|
|
296
|
+
}));
|
|
297
|
+
return function handlegcs() {
|
|
298
|
+
return _ref4.apply(this, arguments);
|
|
299
|
+
};
|
|
300
|
+
}();
|
|
301
|
+
if (loading) {
|
|
302
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
303
|
+
className: "flex items-center justify-center h-64"
|
|
304
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
305
|
+
className: "animate-spin rounded-full h-8 w-8 border-b-2 border-orange-600"
|
|
306
|
+
}));
|
|
307
|
+
}
|
|
308
|
+
if (!projectId) {
|
|
309
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
310
|
+
className: "flex items-center justify-center h-64"
|
|
311
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
312
|
+
className: "text-center"
|
|
313
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
314
|
+
className: "text-gray-500"
|
|
315
|
+
}, "No project selected"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
316
|
+
className: "text-sm text-gray-400"
|
|
317
|
+
}, "Please select a project to view notifications")));
|
|
318
|
+
}
|
|
319
|
+
if (error) {
|
|
320
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
321
|
+
className: "flex items-center justify-center h-64"
|
|
322
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
323
|
+
className: "text-center text-red-500"
|
|
324
|
+
}, error));
|
|
325
|
+
}
|
|
326
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
327
|
+
className: "space-y-6"
|
|
328
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactToastify.ToastContainer, null), /*#__PURE__*/_react["default"].createElement("div", {
|
|
329
|
+
className: "flex items-center justify-between"
|
|
330
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
331
|
+
className: "text-2xl font-bold text-gray-900"
|
|
332
|
+
}, "Notifications Management"), /*#__PURE__*/_react["default"].createElement("p", {
|
|
333
|
+
className: "text-gray-600 mt-1"
|
|
334
|
+
}, "Send push notifications to your users"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
335
|
+
className: "max-w-full"
|
|
336
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
337
|
+
className: "flex items-center justify-between mb-6"
|
|
338
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
339
|
+
className: "flex-1"
|
|
340
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactFilepond.FilePond, {
|
|
341
|
+
allowMultiple: false,
|
|
342
|
+
credits: false,
|
|
343
|
+
className: "text-sm",
|
|
344
|
+
labelIdle: "Drag & Drop your files or <span class=\"filepond--label-action\">Browse</span>",
|
|
345
|
+
server: {
|
|
346
|
+
process: {
|
|
347
|
+
url: '/api/upload',
|
|
348
|
+
onload: function onload(response) {
|
|
349
|
+
handleFileUpload(response);
|
|
350
|
+
return 'loaded';
|
|
351
|
+
},
|
|
352
|
+
ondata: function ondata(formData) {
|
|
353
|
+
formData.append('projectId', projectId);
|
|
354
|
+
return formData;
|
|
355
|
+
},
|
|
356
|
+
onerror: function onerror(response) {
|
|
357
|
+
var data = JSON.parse(response);
|
|
358
|
+
setError('Failed to upload file');
|
|
359
|
+
return (data === null || data === void 0 ? void 0 : data.message) || 'Upload failed';
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
files: files,
|
|
364
|
+
onupdatefiles: function onupdatefiles(fileItems) {
|
|
365
|
+
setFiles(fileItems.map(function (fileItem) {
|
|
366
|
+
return fileItem.file;
|
|
367
|
+
}));
|
|
368
|
+
}
|
|
369
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
370
|
+
className: "ml-4"
|
|
371
|
+
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
372
|
+
onClick: handlegcs,
|
|
373
|
+
disabled: loadingGCS,
|
|
374
|
+
className: "bg-orange-700 text-white px-6 py-6 mb-4 rounded-lg shadow-lg hover:bg-orange-500 focus:outline-none transition-all duration-200 flex items-center justify-center ".concat(loadingGCS ? 'opacity-75 cursor-not-allowed' : '')
|
|
375
|
+
}, loadingGCS ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
376
|
+
className: "animate-spin rounded-full h-5 w-5 border-b-2 border-white"
|
|
377
|
+
}) : 'GCS'))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
378
|
+
className: "font-sans"
|
|
379
|
+
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
380
|
+
className: "min-w-full border border-gray-200 shadow-lg rounded-lg overflow-hidden"
|
|
381
|
+
}, /*#__PURE__*/_react["default"].createElement("thead", {
|
|
382
|
+
className: "bg-orange-700 text-white"
|
|
383
|
+
}, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", {
|
|
384
|
+
className: "px-4 py-2 text-left"
|
|
385
|
+
}, "City"), /*#__PURE__*/_react["default"].createElement("th", {
|
|
386
|
+
className: "px-4 py-2 text-left"
|
|
387
|
+
}, "Image"), /*#__PURE__*/_react["default"].createElement("th", {
|
|
388
|
+
className: "px-4 py-2 text-left"
|
|
389
|
+
}, "Title"), /*#__PURE__*/_react["default"].createElement("th", {
|
|
390
|
+
className: "px-4 py-2 text-left"
|
|
391
|
+
}, "Description"), /*#__PURE__*/_react["default"].createElement("th", {
|
|
392
|
+
className: "px-4 py-2 text-left"
|
|
393
|
+
}, "Merchant"))), /*#__PURE__*/_react["default"].createElement("tbody", null, notifications.length === 0 ? /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
|
|
394
|
+
colSpan: "5",
|
|
395
|
+
className: "px-4 py-8 text-center text-gray-500"
|
|
396
|
+
}, "No notifications available yet")) : notifications.map(function (item) {
|
|
397
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
398
|
+
key: item._id,
|
|
399
|
+
className: "border-b"
|
|
400
|
+
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
401
|
+
className: "px-4 py-2"
|
|
402
|
+
}, item.filter.city), /*#__PURE__*/_react["default"].createElement("td", {
|
|
403
|
+
className: "px-4 py-2"
|
|
404
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
405
|
+
src: item.imgurl,
|
|
406
|
+
alt: item.title,
|
|
407
|
+
className: "max-w-32 max-h-32 rounded-md shadow-md"
|
|
408
|
+
})), /*#__PURE__*/_react["default"].createElement("td", {
|
|
409
|
+
className: "px-4 py-2 font-medium"
|
|
410
|
+
}, item.title), /*#__PURE__*/_react["default"].createElement("td", {
|
|
411
|
+
className: "px-4 py-2"
|
|
412
|
+
}, item.description), /*#__PURE__*/_react["default"].createElement("td", {
|
|
413
|
+
className: "px-4 py-2"
|
|
414
|
+
}, item.filter.isMerchant ? 'Yes' : 'No'));
|
|
415
|
+
})))), showModal && /*#__PURE__*/_react["default"].createElement("div", {
|
|
416
|
+
className: "fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-50"
|
|
417
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
418
|
+
className: "bg-white rounded-2xl shadow-xl p-8 w-full max-w-lg"
|
|
419
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
420
|
+
className: "text-xl font-bold text-gray-800 mb-6"
|
|
421
|
+
}, "ADD NEW PUSH NOTIFICATION"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
422
|
+
className: "space-y-4"
|
|
423
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
424
|
+
className: "text-sm text-gray-700"
|
|
425
|
+
}, "Title"), /*#__PURE__*/_react["default"].createElement("input", {
|
|
426
|
+
className: "w-full border border-gray-300 rounded-lg p-2",
|
|
427
|
+
name: "title",
|
|
428
|
+
value: notificationData.title || '',
|
|
429
|
+
onChange: handleInputChange,
|
|
430
|
+
placeholder: "Title"
|
|
431
|
+
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
432
|
+
className: "text-sm text-gray-700"
|
|
433
|
+
}, "Description"), /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
434
|
+
className: "w-full border border-gray-300 rounded-lg p-2",
|
|
435
|
+
placeholder: "Description",
|
|
436
|
+
name: "description",
|
|
437
|
+
value: notificationData.description || '',
|
|
438
|
+
onChange: handleInputChange,
|
|
439
|
+
maxLength: 500
|
|
440
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
441
|
+
className: "text-sm text-gray-500"
|
|
442
|
+
}, "500 out of 500 Characters left")), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
443
|
+
className: "text-sm text-gray-700"
|
|
444
|
+
}, "City"), /*#__PURE__*/_react["default"].createElement("input", {
|
|
445
|
+
className: "w-full border border-gray-300 rounded-lg p-2",
|
|
446
|
+
type: "text",
|
|
447
|
+
name: "city",
|
|
448
|
+
value: ((_notificationData$fil = notificationData.filter) === null || _notificationData$fil === void 0 ? void 0 : _notificationData$fil.city) || '',
|
|
449
|
+
onChange: function onChange(e) {
|
|
450
|
+
return setNotificationData(function (prev) {
|
|
451
|
+
var _prev$filter$isMercha, _prev$filter;
|
|
452
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
453
|
+
filter: _objectSpread(_objectSpread({}, prev.filter), {}, {
|
|
454
|
+
city: e.target.value || '',
|
|
455
|
+
isMerchant: (_prev$filter$isMercha = (_prev$filter = prev.filter) === null || _prev$filter === void 0 ? void 0 : _prev$filter.isMerchant) !== null && _prev$filter$isMercha !== void 0 ? _prev$filter$isMercha : false
|
|
456
|
+
})
|
|
457
|
+
});
|
|
458
|
+
});
|
|
459
|
+
},
|
|
460
|
+
placeholder: "City"
|
|
461
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
462
|
+
className: "mt-4"
|
|
463
|
+
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
464
|
+
className: "flex items-center text-sm text-gray-700"
|
|
465
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
466
|
+
type: "checkbox",
|
|
467
|
+
className: "mr-2",
|
|
468
|
+
checked: ((_notificationData$fil2 = notificationData.filter) === null || _notificationData$fil2 === void 0 ? void 0 : _notificationData$fil2.isMerchant) || false,
|
|
469
|
+
onChange: function onChange(e) {
|
|
470
|
+
return setNotificationData(function (prev) {
|
|
471
|
+
var _prev$filter2;
|
|
472
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
473
|
+
filter: _objectSpread(_objectSpread({}, prev.filter), {}, {
|
|
474
|
+
city: ((_prev$filter2 = prev.filter) === null || _prev$filter2 === void 0 ? void 0 : _prev$filter2.city) || '',
|
|
475
|
+
isMerchant: e.target.checked
|
|
476
|
+
})
|
|
477
|
+
});
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
}), "Is Merchant"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
481
|
+
className: "flex justify-end gap-4 mt-6"
|
|
482
|
+
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
483
|
+
onClick: function onClick() {
|
|
484
|
+
setShowModal(false);
|
|
485
|
+
},
|
|
486
|
+
className: "bg-gray-300 text-gray-700 hover:bg-gray-400 rounded-lg px-4 py-2"
|
|
487
|
+
}, "CANCEL"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
488
|
+
onClick: function onClick() {
|
|
489
|
+
handleSubmit();
|
|
490
|
+
setShowModal(false);
|
|
491
|
+
},
|
|
492
|
+
className: "bg-orange-600 text-white hover:bg-orange-700 rounded-lg px-4 py-2"
|
|
493
|
+
}, "SUBMIT"))))));
|
|
494
|
+
};
|
|
495
|
+
var _default = exports["default"] = PowrBaseNotificationsAdmin;
|