powr-sdk-web 6.13.1 → 6.14.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.
- package/dist/admin/coreSectionLoaders.js +10 -0
- package/dist/index.js +12 -7
- package/dist/posts/List.js +66 -0
- package/dist/posts/Post.js +48 -0
- package/dist/posts/Writer.js +330 -0
- package/dist/posts/admin.js +373 -0
- package/dist/posts/server.js +185 -0
- package/dist/shell/PulseDownloadDoor.js +99 -0
- package/dist/shell/index.js +13 -0
- package/package.json +1 -1
- package/dist/blogs/BlogCard.js +0 -44
- package/dist/blogs/index.js +0 -112
|
@@ -41,6 +41,16 @@ var CORE_SECTION_LOADERS = exports.CORE_SECTION_LOADERS = {
|
|
|
41
41
|
return _interopRequireWildcard(require('../feedback/admin'));
|
|
42
42
|
});
|
|
43
43
|
},
|
|
44
|
+
posts: function posts() {
|
|
45
|
+
return Promise.resolve().then(function () {
|
|
46
|
+
return _interopRequireWildcard(require('../posts/admin'));
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
blogs: function blogs() {
|
|
50
|
+
return Promise.resolve().then(function () {
|
|
51
|
+
return _interopRequireWildcard(require('../posts/admin'));
|
|
52
|
+
});
|
|
53
|
+
},
|
|
44
54
|
waitlist: function waitlist() {
|
|
45
55
|
return Promise.resolve().then(function () {
|
|
46
56
|
return _interopRequireWildcard(require('../waitlists/admin'));
|
package/dist/index.js
CHANGED
|
@@ -147,6 +147,12 @@ Object.defineProperty(exports, "PRIORITY_COUNTRIES", {
|
|
|
147
147
|
return _phone.PRIORITY_COUNTRIES;
|
|
148
148
|
}
|
|
149
149
|
});
|
|
150
|
+
Object.defineProperty(exports, "PULSE_DOWNLOAD_URL", {
|
|
151
|
+
enumerable: true,
|
|
152
|
+
get: function get() {
|
|
153
|
+
return _shell.PULSE_DOWNLOAD_URL;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
150
156
|
Object.defineProperty(exports, "PhoneInput", {
|
|
151
157
|
enumerable: true,
|
|
152
158
|
get: function get() {
|
|
@@ -177,12 +183,6 @@ Object.defineProperty(exports, "PowrBaseAppWrapper", {
|
|
|
177
183
|
return _shell.PowrBaseAppWrapper;
|
|
178
184
|
}
|
|
179
185
|
});
|
|
180
|
-
Object.defineProperty(exports, "PowrBaseBlogs", {
|
|
181
|
-
enumerable: true,
|
|
182
|
-
get: function get() {
|
|
183
|
-
return _blogs["default"];
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
186
|
Object.defineProperty(exports, "PowrBaseChat", {
|
|
187
187
|
enumerable: true,
|
|
188
188
|
get: function get() {
|
|
@@ -351,6 +351,12 @@ Object.defineProperty(exports, "PowrThemeSettings", {
|
|
|
351
351
|
return _theme.PowrThemeSettings;
|
|
352
352
|
}
|
|
353
353
|
});
|
|
354
|
+
Object.defineProperty(exports, "PulseDownloadDoor", {
|
|
355
|
+
enumerable: true,
|
|
356
|
+
get: function get() {
|
|
357
|
+
return _shell.PulseDownloadDoor;
|
|
358
|
+
}
|
|
359
|
+
});
|
|
354
360
|
Object.defineProperty(exports, "SESSION_MESSAGES", {
|
|
355
361
|
enumerable: true,
|
|
356
362
|
get: function get() {
|
|
@@ -703,7 +709,6 @@ var _payments = _interopRequireDefault(require("./payments"));
|
|
|
703
709
|
var _waitlists = _interopRequireDefault(require("./waitlists"));
|
|
704
710
|
var _activities = _interopRequireDefault(require("./activities"));
|
|
705
711
|
var _calendar = _interopRequireDefault(require("./calendar"));
|
|
706
|
-
var _blogs = _interopRequireDefault(require("./blogs"));
|
|
707
712
|
var _likes = _interopRequireDefault(require("./likes"));
|
|
708
713
|
var _auth = _interopRequireDefault(require("./auth"));
|
|
709
714
|
var _sso = _interopRequireWildcard(require("./sso"));
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = PowrPostList;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
function hrefOf(post, hrefFor) {
|
|
10
|
+
if (typeof hrefFor === "function") return hrefFor(post);
|
|
11
|
+
return "/blog/".concat(post.slug);
|
|
12
|
+
}
|
|
13
|
+
function PowrPostList(_ref) {
|
|
14
|
+
var posts = _ref.posts,
|
|
15
|
+
Link = _ref.Link,
|
|
16
|
+
hrefFor = _ref.hrefFor,
|
|
17
|
+
empty = _ref.empty;
|
|
18
|
+
var items = Array.isArray(posts) ? posts : [];
|
|
19
|
+
if (!items.length) return /*#__PURE__*/_react["default"].createElement("p", null, empty || "No posts yet.");
|
|
20
|
+
var A = Link || "a";
|
|
21
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
22
|
+
style: {
|
|
23
|
+
display: "grid",
|
|
24
|
+
gap: 16
|
|
25
|
+
}
|
|
26
|
+
}, items.map(function (post) {
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement(A, {
|
|
28
|
+
key: post._id || post.slug,
|
|
29
|
+
href: hrefOf(post, hrefFor),
|
|
30
|
+
style: {
|
|
31
|
+
color: "inherit",
|
|
32
|
+
textDecoration: "none"
|
|
33
|
+
}
|
|
34
|
+
}, /*#__PURE__*/_react["default"].createElement("article", {
|
|
35
|
+
style: {
|
|
36
|
+
borderBottom: "1px solid #e5e7eb",
|
|
37
|
+
paddingBottom: 16
|
|
38
|
+
}
|
|
39
|
+
}, post.coverUrl ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
40
|
+
src: post.coverUrl,
|
|
41
|
+
alt: "",
|
|
42
|
+
style: {
|
|
43
|
+
width: "100%",
|
|
44
|
+
maxHeight: 220,
|
|
45
|
+
objectFit: "cover",
|
|
46
|
+
borderRadius: 8
|
|
47
|
+
}
|
|
48
|
+
}) : null, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
49
|
+
style: {
|
|
50
|
+
margin: "8px 0 4px",
|
|
51
|
+
fontSize: 22
|
|
52
|
+
}
|
|
53
|
+
}, post.title), post.description ? /*#__PURE__*/_react["default"].createElement("p", {
|
|
54
|
+
style: {
|
|
55
|
+
margin: 0,
|
|
56
|
+
color: "#4b5563"
|
|
57
|
+
}
|
|
58
|
+
}, post.description) : null, /*#__PURE__*/_react["default"].createElement("p", {
|
|
59
|
+
style: {
|
|
60
|
+
margin: "6px 0 0",
|
|
61
|
+
fontSize: 13,
|
|
62
|
+
color: "#6b7280"
|
|
63
|
+
}
|
|
64
|
+
}, [post.author && post.author.displayName, post.readMinutes ? "".concat(post.readMinutes, " min") : ""].filter(Boolean).join(" · "))));
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = PowrPost;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactMarkdown = _interopRequireDefault(require("react-markdown"));
|
|
9
|
+
var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
function PowrPost(_ref) {
|
|
12
|
+
var post = _ref.post,
|
|
13
|
+
cta = _ref.cta;
|
|
14
|
+
if (!post) return null;
|
|
15
|
+
var when = post.publishedAt ? new Date(post.publishedAt).toLocaleDateString() : "";
|
|
16
|
+
return /*#__PURE__*/_react["default"].createElement("article", {
|
|
17
|
+
style: {
|
|
18
|
+
maxWidth: 720
|
|
19
|
+
}
|
|
20
|
+
}, post.coverUrl ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
21
|
+
src: post.coverUrl,
|
|
22
|
+
alt: "",
|
|
23
|
+
style: {
|
|
24
|
+
width: "100%",
|
|
25
|
+
maxHeight: 360,
|
|
26
|
+
objectFit: "cover",
|
|
27
|
+
borderRadius: 8
|
|
28
|
+
}
|
|
29
|
+
}) : null, /*#__PURE__*/_react["default"].createElement("h1", {
|
|
30
|
+
style: {
|
|
31
|
+
marginBottom: 4
|
|
32
|
+
}
|
|
33
|
+
}, post.title), /*#__PURE__*/_react["default"].createElement("p", {
|
|
34
|
+
style: {
|
|
35
|
+
marginTop: 0,
|
|
36
|
+
color: "#6b7280",
|
|
37
|
+
fontSize: 14
|
|
38
|
+
}
|
|
39
|
+
}, [post.author && post.author.displayName, when, post.readMinutes ? "".concat(post.readMinutes, " min") : ""].filter(Boolean).join(" · ")), post.description ? /*#__PURE__*/_react["default"].createElement("p", {
|
|
40
|
+
style: {
|
|
41
|
+
fontSize: 18
|
|
42
|
+
}
|
|
43
|
+
}, post.description) : null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
44
|
+
className: "powr-post-body"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactMarkdown["default"], {
|
|
46
|
+
remarkPlugins: [_remarkGfm["default"]]
|
|
47
|
+
}, post.bodyMd || "")), cta || null);
|
|
48
|
+
}
|
|
@@ -0,0 +1,330 @@
|
|
|
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"] = PowrPostWriter;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _auth = require("../utils/auth");
|
|
10
|
+
var _session = require("../session");
|
|
11
|
+
var _uploader = _interopRequireDefault(require("../uploader"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
var cache;
|
|
14
|
+
function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, "default": e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
|
|
20
|
+
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 }; })(); }
|
|
21
|
+
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); }
|
|
22
|
+
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); }
|
|
23
|
+
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); }); }; }
|
|
24
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
25
|
+
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."); }
|
|
26
|
+
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; } }
|
|
27
|
+
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; }
|
|
28
|
+
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; } }
|
|
29
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
30
|
+
var field = {
|
|
31
|
+
display: "block",
|
|
32
|
+
width: "100%",
|
|
33
|
+
marginTop: 4,
|
|
34
|
+
marginBottom: 12,
|
|
35
|
+
padding: 8
|
|
36
|
+
};
|
|
37
|
+
function PowrPostWriter(_ref) {
|
|
38
|
+
var projectId = _ref.projectId,
|
|
39
|
+
apiUrl = _ref.apiUrl;
|
|
40
|
+
var session = (0, _session.usePowrSession)();
|
|
41
|
+
var _useState = (0, _react.useState)([]),
|
|
42
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
43
|
+
rows = _useState2[0],
|
|
44
|
+
setRows = _useState2[1];
|
|
45
|
+
var _useState3 = (0, _react.useState)(null),
|
|
46
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
47
|
+
current = _useState4[0],
|
|
48
|
+
setCurrent = _useState4[1];
|
|
49
|
+
var _useState5 = (0, _react.useState)(""),
|
|
50
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
51
|
+
error = _useState6[0],
|
|
52
|
+
setError = _useState6[1];
|
|
53
|
+
var _useState7 = (0, _react.useState)(""),
|
|
54
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
55
|
+
notice = _useState8[0],
|
|
56
|
+
setNotice = _useState8[1];
|
|
57
|
+
var _useState9 = (0, _react.useState)(true),
|
|
58
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
59
|
+
loading = _useState0[0],
|
|
60
|
+
setLoading = _useState0[1];
|
|
61
|
+
var headers = session !== null && session !== void 0 && session.token ? {
|
|
62
|
+
Authorization: "Bearer ".concat(session.token)
|
|
63
|
+
} : undefined;
|
|
64
|
+
var load = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
65
|
+
var _yield$apiCall, data, ok, response;
|
|
66
|
+
return _regenerator().w(function (_context) {
|
|
67
|
+
while (1) switch (_context.n) {
|
|
68
|
+
case 0:
|
|
69
|
+
setLoading(true);
|
|
70
|
+
setError("");
|
|
71
|
+
_context.n = 1;
|
|
72
|
+
return (0, _auth.apiCall)(apiUrl, "/posts/mine", projectId, {
|
|
73
|
+
headers: headers
|
|
74
|
+
});
|
|
75
|
+
case 1:
|
|
76
|
+
_yield$apiCall = _context.v;
|
|
77
|
+
data = _yield$apiCall.data;
|
|
78
|
+
ok = _yield$apiCall.ok;
|
|
79
|
+
response = _yield$apiCall.response;
|
|
80
|
+
if (response && response.status === 403) {
|
|
81
|
+
setError("Ask an admin to add you as a writer.");
|
|
82
|
+
setRows([]);
|
|
83
|
+
} else if (!ok || !(data !== null && data !== void 0 && data.success)) {
|
|
84
|
+
setError((data === null || data === void 0 ? void 0 : data.message) || "Could not load your posts.");
|
|
85
|
+
} else {
|
|
86
|
+
setRows(Array.isArray(data.data) ? data.data : []);
|
|
87
|
+
}
|
|
88
|
+
setLoading(false);
|
|
89
|
+
case 2:
|
|
90
|
+
return _context.a(2);
|
|
91
|
+
}
|
|
92
|
+
}, _callee);
|
|
93
|
+
})), [apiUrl, projectId, session === null || session === void 0 ? void 0 : session.token]);
|
|
94
|
+
(0, _react.useEffect)(function () {
|
|
95
|
+
load()["catch"](function () {
|
|
96
|
+
setError("Could not load your posts.");
|
|
97
|
+
setLoading(false);
|
|
98
|
+
});
|
|
99
|
+
}, [load]);
|
|
100
|
+
function blank() {
|
|
101
|
+
setCurrent({
|
|
102
|
+
title: "",
|
|
103
|
+
description: "",
|
|
104
|
+
tags: "",
|
|
105
|
+
coverUrl: "",
|
|
106
|
+
bodyMd: "",
|
|
107
|
+
status: "draft"
|
|
108
|
+
});
|
|
109
|
+
setNotice("");
|
|
110
|
+
}
|
|
111
|
+
function open(row) {
|
|
112
|
+
setCurrent({
|
|
113
|
+
_id: row._id,
|
|
114
|
+
title: row.title || "",
|
|
115
|
+
description: row.description || "",
|
|
116
|
+
tags: (row.tags || []).join(", "),
|
|
117
|
+
coverUrl: row.coverUrl || "",
|
|
118
|
+
bodyMd: row.bodyMd || "",
|
|
119
|
+
status: row.status,
|
|
120
|
+
slug: row.slug,
|
|
121
|
+
slugLocked: row.slugLocked
|
|
122
|
+
});
|
|
123
|
+
setNotice("");
|
|
124
|
+
}
|
|
125
|
+
function setField(key, value) {
|
|
126
|
+
setCurrent(function (prev) {
|
|
127
|
+
return _objectSpread(_objectSpread({}, prev || {}), {}, _defineProperty({}, key, value));
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function save() {
|
|
131
|
+
return _save.apply(this, arguments);
|
|
132
|
+
}
|
|
133
|
+
function _save() {
|
|
134
|
+
_save = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
135
|
+
var body, path, _yield$apiCall2, data, ok;
|
|
136
|
+
return _regenerator().w(function (_context2) {
|
|
137
|
+
while (1) switch (_context2.n) {
|
|
138
|
+
case 0:
|
|
139
|
+
if (current) {
|
|
140
|
+
_context2.n = 1;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return _context2.a(2);
|
|
144
|
+
case 1:
|
|
145
|
+
setError("");
|
|
146
|
+
setNotice("");
|
|
147
|
+
body = {
|
|
148
|
+
title: current.title,
|
|
149
|
+
description: current.description,
|
|
150
|
+
bodyMd: current.bodyMd,
|
|
151
|
+
coverUrl: current.coverUrl,
|
|
152
|
+
tags: current.tags
|
|
153
|
+
};
|
|
154
|
+
path = current._id ? "/posts/".concat(current._id) : "/posts";
|
|
155
|
+
_context2.n = 2;
|
|
156
|
+
return (0, _auth.apiCall)(apiUrl, path, projectId, {
|
|
157
|
+
method: current._id ? "PATCH" : "POST",
|
|
158
|
+
headers: headers,
|
|
159
|
+
body: body
|
|
160
|
+
});
|
|
161
|
+
case 2:
|
|
162
|
+
_yield$apiCall2 = _context2.v;
|
|
163
|
+
data = _yield$apiCall2.data;
|
|
164
|
+
ok = _yield$apiCall2.ok;
|
|
165
|
+
if (!(!ok || !(data !== null && data !== void 0 && data.success))) {
|
|
166
|
+
_context2.n = 3;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
setError((data === null || data === void 0 ? void 0 : data.message) || "Could not save.");
|
|
170
|
+
return _context2.a(2);
|
|
171
|
+
case 3:
|
|
172
|
+
setNotice("Saved.");
|
|
173
|
+
open(data.data);
|
|
174
|
+
_context2.n = 4;
|
|
175
|
+
return load();
|
|
176
|
+
case 4:
|
|
177
|
+
return _context2.a(2);
|
|
178
|
+
}
|
|
179
|
+
}, _callee2);
|
|
180
|
+
}));
|
|
181
|
+
return _save.apply(this, arguments);
|
|
182
|
+
}
|
|
183
|
+
function submit() {
|
|
184
|
+
return _submit.apply(this, arguments);
|
|
185
|
+
}
|
|
186
|
+
function _submit() {
|
|
187
|
+
_submit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
188
|
+
var _yield$apiCall3, data, ok;
|
|
189
|
+
return _regenerator().w(function (_context3) {
|
|
190
|
+
while (1) switch (_context3.n) {
|
|
191
|
+
case 0:
|
|
192
|
+
if (current !== null && current !== void 0 && current._id) {
|
|
193
|
+
_context3.n = 1;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
setError("Save the draft first.");
|
|
197
|
+
return _context3.a(2);
|
|
198
|
+
case 1:
|
|
199
|
+
_context3.n = 2;
|
|
200
|
+
return (0, _auth.apiCall)(apiUrl, "/posts/".concat(current._id, "/submit"), projectId, {
|
|
201
|
+
method: "POST",
|
|
202
|
+
headers: headers
|
|
203
|
+
});
|
|
204
|
+
case 2:
|
|
205
|
+
_yield$apiCall3 = _context3.v;
|
|
206
|
+
data = _yield$apiCall3.data;
|
|
207
|
+
ok = _yield$apiCall3.ok;
|
|
208
|
+
if (!(!ok || !(data !== null && data !== void 0 && data.success))) {
|
|
209
|
+
_context3.n = 3;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
setError((data === null || data === void 0 ? void 0 : data.message) || "Could not send it.");
|
|
213
|
+
return _context3.a(2);
|
|
214
|
+
case 3:
|
|
215
|
+
setNotice("Sent for review.");
|
|
216
|
+
open(data.data);
|
|
217
|
+
_context3.n = 4;
|
|
218
|
+
return load();
|
|
219
|
+
case 4:
|
|
220
|
+
return _context3.a(2);
|
|
221
|
+
}
|
|
222
|
+
}, _callee3);
|
|
223
|
+
}));
|
|
224
|
+
return _submit.apply(this, arguments);
|
|
225
|
+
}
|
|
226
|
+
if (loading) return /*#__PURE__*/_react["default"].createElement("p", null, "Loading your posts\u2026");
|
|
227
|
+
if (error && !rows.length && !current) return /*#__PURE__*/_react["default"].createElement("p", null, error);
|
|
228
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
229
|
+
style: {
|
|
230
|
+
display: "grid",
|
|
231
|
+
gridTemplateColumns: "240px 1fr",
|
|
232
|
+
gap: 24
|
|
233
|
+
}
|
|
234
|
+
}, /*#__PURE__*/_react["default"].createElement("aside", null, /*#__PURE__*/_react["default"].createElement("button", {
|
|
235
|
+
type: "button",
|
|
236
|
+
onClick: blank
|
|
237
|
+
}, "New post"), /*#__PURE__*/_react["default"].createElement("ul", {
|
|
238
|
+
style: {
|
|
239
|
+
listStyle: "none",
|
|
240
|
+
padding: 0
|
|
241
|
+
}
|
|
242
|
+
}, rows.map(function (row) {
|
|
243
|
+
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
244
|
+
key: row._id,
|
|
245
|
+
style: {
|
|
246
|
+
marginTop: 8
|
|
247
|
+
}
|
|
248
|
+
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
249
|
+
type: "button",
|
|
250
|
+
onClick: function onClick() {
|
|
251
|
+
return open(row);
|
|
252
|
+
},
|
|
253
|
+
style: {
|
|
254
|
+
textAlign: "left"
|
|
255
|
+
}
|
|
256
|
+
}, row.title || "Untitled", /*#__PURE__*/_react["default"].createElement("div", {
|
|
257
|
+
style: {
|
|
258
|
+
fontSize: 12,
|
|
259
|
+
color: "#6b7280"
|
|
260
|
+
}
|
|
261
|
+
}, row.status)));
|
|
262
|
+
}))), current ? /*#__PURE__*/_react["default"].createElement("form", {
|
|
263
|
+
onSubmit: function onSubmit(event) {
|
|
264
|
+
event.preventDefault();
|
|
265
|
+
save();
|
|
266
|
+
}
|
|
267
|
+
}, error ? /*#__PURE__*/_react["default"].createElement("p", null, error) : null, notice ? /*#__PURE__*/_react["default"].createElement("p", null, notice) : null, /*#__PURE__*/_react["default"].createElement("label", null, "Title", /*#__PURE__*/_react["default"].createElement("input", {
|
|
268
|
+
style: field,
|
|
269
|
+
value: current.title,
|
|
270
|
+
onChange: function onChange(event) {
|
|
271
|
+
return setField("title", event.target.value);
|
|
272
|
+
}
|
|
273
|
+
})), /*#__PURE__*/_react["default"].createElement("label", null, "Short description", /*#__PURE__*/_react["default"].createElement("input", {
|
|
274
|
+
style: field,
|
|
275
|
+
value: current.description,
|
|
276
|
+
onChange: function onChange(event) {
|
|
277
|
+
return setField("description", event.target.value);
|
|
278
|
+
}
|
|
279
|
+
})), /*#__PURE__*/_react["default"].createElement("label", null, "Tags", /*#__PURE__*/_react["default"].createElement("input", {
|
|
280
|
+
style: field,
|
|
281
|
+
value: current.tags,
|
|
282
|
+
onChange: function onChange(event) {
|
|
283
|
+
return setField("tags", event.target.value);
|
|
284
|
+
},
|
|
285
|
+
placeholder: "vibe, cursor"
|
|
286
|
+
})), /*#__PURE__*/_react["default"].createElement("label", null, "Cover image link", /*#__PURE__*/_react["default"].createElement("input", {
|
|
287
|
+
style: field,
|
|
288
|
+
value: current.coverUrl,
|
|
289
|
+
onChange: function onChange(event) {
|
|
290
|
+
return setField("coverUrl", event.target.value);
|
|
291
|
+
}
|
|
292
|
+
})), /*#__PURE__*/_react["default"].createElement(_uploader["default"], {
|
|
293
|
+
apiUrl: apiUrl,
|
|
294
|
+
projectId: projectId,
|
|
295
|
+
maxFiles: 1,
|
|
296
|
+
acceptedFileTypes: "image/*",
|
|
297
|
+
onUploadComplete: function onUploadComplete(files) {
|
|
298
|
+
var last = files && files[files.length - 1];
|
|
299
|
+
if (!last || !last.url) return;
|
|
300
|
+
setCurrent(function (prev) {
|
|
301
|
+
return _objectSpread(_objectSpread({}, prev || {}), {}, {
|
|
302
|
+
bodyMd: "".concat(prev && prev.bodyMd || "", "\n\n.concat(last.url, ")\n"),
|
|
303
|
+
coverUrl: prev && prev.coverUrl || last.url
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
}), /*#__PURE__*/_react["default"].createElement("label", null, "Article", /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
308
|
+
style: _objectSpread(_objectSpread({}, field), {}, {
|
|
309
|
+
minHeight: 280,
|
|
310
|
+
fontFamily: "inherit"
|
|
311
|
+
}),
|
|
312
|
+
value: current.bodyMd,
|
|
313
|
+
onChange: function onChange(event) {
|
|
314
|
+
return setField("bodyMd", event.target.value);
|
|
315
|
+
}
|
|
316
|
+
})), /*#__PURE__*/_react["default"].createElement("button", {
|
|
317
|
+
type: "submit"
|
|
318
|
+
}, "Save draft"), current._id && current.status === "draft" ? /*#__PURE__*/_react["default"].createElement("button", {
|
|
319
|
+
type: "button",
|
|
320
|
+
onClick: submit,
|
|
321
|
+
style: {
|
|
322
|
+
marginLeft: 8
|
|
323
|
+
}
|
|
324
|
+
}, "Send for review") : null, current.slug ? /*#__PURE__*/_react["default"].createElement("p", {
|
|
325
|
+
style: {
|
|
326
|
+
fontSize: 13,
|
|
327
|
+
color: "#6b7280"
|
|
328
|
+
}
|
|
329
|
+
}, "Link: /blog/", current.slug) : null) : /*#__PURE__*/_react["default"].createElement("p", null, "Pick a post, or start a new one."));
|
|
330
|
+
}
|