@blocklet/discuss-kit 2.0.43 → 2.0.45
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/lib/cjs/api.js +2 -1
- package/lib/cjs/comments.js +10 -22
- package/lib/cjs/lib/utils.js +12 -0
- package/lib/es/api.js +2 -1
- package/lib/es/comments.js +12 -24
- package/lib/es/lib/utils.js +12 -0
- package/package.json +4 -4
package/lib/cjs/api.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const jsSdk = require("@blocklet/js-sdk");
|
|
4
|
-
const
|
|
4
|
+
const utils = require("./lib/utils");
|
|
5
|
+
const request = jsSdk.createAxios({ baseURL: utils.discussKitApiPrefix, timeout: 2e4 });
|
|
5
6
|
request.interceptors.request.use(
|
|
6
7
|
(config) => {
|
|
7
8
|
return config;
|
package/lib/cjs/comments.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const react = require("react");
|
|
4
4
|
const Theme = require("@arcblock/ux/lib/Theme");
|
|
5
|
-
|
|
5
|
+
require("url-join");
|
|
6
6
|
const PropTypes = require("prop-types");
|
|
7
7
|
const SessionManager = require("@arcblock/did-connect/lib/SessionManager");
|
|
8
8
|
const Session = require("@arcblock/did-connect/lib/Session");
|
|
@@ -14,16 +14,12 @@ const discussKitUx = require("@blocklet/discuss-kit-ux");
|
|
|
14
14
|
const ahooks = require("ahooks");
|
|
15
15
|
const ErrorFallback = require("./components/error-fallback");
|
|
16
16
|
const locales = require("./locales");
|
|
17
|
+
const utils = require("./lib/utils");
|
|
17
18
|
const api = require("./api");
|
|
18
19
|
const useAsyncRetry = (fn, deps = []) => {
|
|
19
20
|
const state = ahooks.useRequest(fn, { refreshDeps: deps });
|
|
20
21
|
return { ...state, value: state == null ? void 0 : state.data, retry: state == null ? void 0 : state.run };
|
|
21
22
|
};
|
|
22
|
-
const getPrefix = () => {
|
|
23
|
-
var _a, _b;
|
|
24
|
-
const service = (_b = (_a = window.blocklet) == null ? void 0 : _a.componentMountPoints) == null ? void 0 : _b.find((x) => x.name === "did-comments");
|
|
25
|
-
return service ? joinUrl(service.mountPoint, "/") : "";
|
|
26
|
-
};
|
|
27
23
|
const getCurrentBlockletComponentName = () => {
|
|
28
24
|
var _a, _b;
|
|
29
25
|
const ensureTrailingSlash = (str) => str.endsWith("/") ? str : `${str}/`;
|
|
@@ -104,7 +100,7 @@ const DiscussKitComments = react.forwardRef(
|
|
|
104
100
|
sendIcon,
|
|
105
101
|
showTopbar
|
|
106
102
|
}, ref) => {
|
|
107
|
-
const [apiAvailable, setApiAvailable] = react.useState(
|
|
103
|
+
const [apiAvailable, setApiAvailable] = react.useState(utils.isDiscussKitRunning);
|
|
108
104
|
discussKitUx.useDefaultApiErrorHandler({
|
|
109
105
|
request: api,
|
|
110
106
|
onError: (e) => {
|
|
@@ -153,6 +149,12 @@ const DiscussKitComments = react.forwardRef(
|
|
|
153
149
|
},
|
|
154
150
|
[object.id, state]
|
|
155
151
|
);
|
|
152
|
+
if (!apiAvailable) {
|
|
153
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Alert, { severity: "info", children: [
|
|
154
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.AlertTitle, { children: t("apiUnavailable.title") }),
|
|
155
|
+
t("apiUnavailable.desc")
|
|
156
|
+
] });
|
|
157
|
+
}
|
|
156
158
|
if (!initialized) {
|
|
157
159
|
return /* @__PURE__ */ jsxRuntime.jsx(material.Box, { width: "100%", display: "flex", justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, {}) });
|
|
158
160
|
}
|
|
@@ -189,12 +191,6 @@ const DiscussKitComments = react.forwardRef(
|
|
|
189
191
|
}
|
|
190
192
|
);
|
|
191
193
|
};
|
|
192
|
-
if (!apiAvailable) {
|
|
193
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(material.Alert, { severity: "info", children: [
|
|
194
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.AlertTitle, { children: t("apiUnavailable.title") }),
|
|
195
|
-
t("apiUnavailable.desc")
|
|
196
|
-
] });
|
|
197
|
-
}
|
|
198
194
|
return /* @__PURE__ */ jsxRuntime.jsxs(Container, { ref, children: [
|
|
199
195
|
/* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
200
196
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Box, { display: "flex", justifyContent: "space-between", alignItems: "end", children: [
|
|
@@ -269,7 +265,6 @@ DiscussKitComments.defaultProps = {
|
|
|
269
265
|
};
|
|
270
266
|
function Wrapper({
|
|
271
267
|
target,
|
|
272
|
-
prefix,
|
|
273
268
|
flatView,
|
|
274
269
|
autoCollapse,
|
|
275
270
|
autoLoadComments,
|
|
@@ -294,11 +289,7 @@ function Wrapper({
|
|
|
294
289
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
295
290
|
[target]
|
|
296
291
|
);
|
|
297
|
-
const
|
|
298
|
-
if (!_prefix) {
|
|
299
|
-
throw new Error("prefix is required.");
|
|
300
|
-
}
|
|
301
|
-
const wsClient = discussKitUx.getWsClient(_prefix);
|
|
292
|
+
const wsClient = discussKitUx.getWsClient(utils.discussKitPrefix);
|
|
302
293
|
react.useEffect(() => {
|
|
303
294
|
wsClient.connect();
|
|
304
295
|
return () => {
|
|
@@ -306,7 +297,6 @@ function Wrapper({
|
|
|
306
297
|
;
|
|
307
298
|
};
|
|
308
299
|
}, []);
|
|
309
|
-
api.defaults.baseURL = joinUrl(_prefix, "/api/");
|
|
310
300
|
return /* @__PURE__ */ jsxRuntime.jsx(discussKitUx.UploaderProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { FallbackComponent: ErrorFallback, children: /* @__PURE__ */ jsxRuntime.jsx(context.LocaleProvider, { translations: locales.translations, locale, children: /* @__PURE__ */ jsxRuntime.jsx(discussKitUx.InternalThemeProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(discussKitUx.ConfirmProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(discussKitUx.DefaultEditorConfigProvider, { request: api, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
311
301
|
discussKitUx.CommentsProvider,
|
|
312
302
|
{
|
|
@@ -335,7 +325,6 @@ Wrapper.propTypes = {
|
|
|
335
325
|
displayConnectButton: PropTypes.bool,
|
|
336
326
|
displayReaction: PropTypes.bool,
|
|
337
327
|
onChange: PropTypes.func,
|
|
338
|
-
prefix: PropTypes.string,
|
|
339
328
|
flatView: PropTypes.bool,
|
|
340
329
|
autoCollapse: PropTypes.bool,
|
|
341
330
|
autoLoadComments: PropTypes.bool,
|
|
@@ -351,7 +340,6 @@ Wrapper.defaultProps = {
|
|
|
351
340
|
displayReaction: true,
|
|
352
341
|
onChange: () => {
|
|
353
342
|
},
|
|
354
|
-
prefix: "",
|
|
355
343
|
flatView: false,
|
|
356
344
|
autoCollapse: false,
|
|
357
345
|
autoLoadComments: true,
|
package/lib/cjs/lib/utils.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a, _b;
|
|
2
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
const joinUrl = require("url-join");
|
|
3
5
|
const protectLogin = (session, action) => {
|
|
4
6
|
if (session.user) {
|
|
5
7
|
return action();
|
|
@@ -12,6 +14,16 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
12
14
|
const minDelay = (promise, ms) => {
|
|
13
15
|
return Promise.all([promise, sleep(ms)]).then(([result]) => result);
|
|
14
16
|
};
|
|
17
|
+
const discussKitService = (_b = (_a = window.blocklet) == null ? void 0 : _a.componentMountPoints) == null ? void 0 : _b.find(
|
|
18
|
+
(x) => x.did === "z8ia1WEiBZ7hxURf6LwH21Wpg99vophFwSJdu"
|
|
19
|
+
);
|
|
20
|
+
const discussKitPrefix = discussKitService ? joinUrl(discussKitService.mountPoint, "/") : "";
|
|
21
|
+
const discussKitApiPrefix = joinUrl(discussKitPrefix, "/api/");
|
|
22
|
+
const isDiscussKitRunning = (discussKitService == null ? void 0 : discussKitService.status) === "running";
|
|
23
|
+
exports.discussKitApiPrefix = discussKitApiPrefix;
|
|
24
|
+
exports.discussKitPrefix = discussKitPrefix;
|
|
25
|
+
exports.discussKitService = discussKitService;
|
|
26
|
+
exports.isDiscussKitRunning = isDiscussKitRunning;
|
|
15
27
|
exports.minDelay = minDelay;
|
|
16
28
|
exports.protectLogin = protectLogin;
|
|
17
29
|
exports.sleep = sleep;
|
package/lib/es/api.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createAxios } from "@blocklet/js-sdk";
|
|
2
|
-
|
|
2
|
+
import { discussKitApiPrefix } from "./lib/utils";
|
|
3
|
+
const request = createAxios({ baseURL: discussKitApiPrefix, timeout: 2e4 });
|
|
3
4
|
request.interceptors.request.use(
|
|
4
5
|
(config) => {
|
|
5
6
|
return config;
|
package/lib/es/comments.js
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useState, useContext, useRef, useMemo, useEffect } from "react";
|
|
3
3
|
import { styled } from "@arcblock/ux/lib/Theme";
|
|
4
|
-
import
|
|
4
|
+
import "url-join";
|
|
5
5
|
import PropTypes from "prop-types";
|
|
6
6
|
import SessionManager from "@arcblock/did-connect/lib/SessionManager";
|
|
7
7
|
import { SessionContext } from "@arcblock/did-connect/lib/Session";
|
|
8
8
|
import Button from "@arcblock/ux/lib/Button";
|
|
9
|
-
import {
|
|
9
|
+
import { Alert, AlertTitle, Box, CircularProgress } from "@mui/material";
|
|
10
10
|
import { useLocaleContext, LocaleProvider } from "@arcblock/ux/lib/Locale/context";
|
|
11
11
|
import { ErrorBoundary } from "react-error-boundary";
|
|
12
12
|
import { useDefaultApiErrorHandler, useCommentsContext, useSubscription, GithubReaction, SegmentedControl, CommentList, getWsClient, UploaderProvider, InternalThemeProvider, ConfirmProvider, DefaultEditorConfigProvider, CommentsProvider, CommentInput } from "@blocklet/discuss-kit-ux";
|
|
13
13
|
import { useRequest } from "ahooks";
|
|
14
14
|
import ErrorFallback from "./components/error-fallback";
|
|
15
15
|
import { translations } from "./locales";
|
|
16
|
+
import { isDiscussKitRunning, discussKitPrefix } from "./lib/utils";
|
|
16
17
|
import api, { fetchRatings } from "./api";
|
|
17
18
|
const useAsyncRetry = (fn, deps = []) => {
|
|
18
19
|
const state = useRequest(fn, { refreshDeps: deps });
|
|
19
20
|
return { ...state, value: state == null ? void 0 : state.data, retry: state == null ? void 0 : state.run };
|
|
20
21
|
};
|
|
21
|
-
const getPrefix = () => {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
const service = (_b = (_a = window.blocklet) == null ? void 0 : _a.componentMountPoints) == null ? void 0 : _b.find((x) => x.name === "did-comments");
|
|
24
|
-
return service ? joinUrl(service.mountPoint, "/") : "";
|
|
25
|
-
};
|
|
26
22
|
const getCurrentBlockletComponentName = () => {
|
|
27
23
|
var _a, _b;
|
|
28
24
|
const ensureTrailingSlash = (str) => str.endsWith("/") ? str : `${str}/`;
|
|
@@ -103,7 +99,7 @@ const DiscussKitComments = forwardRef(
|
|
|
103
99
|
sendIcon,
|
|
104
100
|
showTopbar
|
|
105
101
|
}, ref) => {
|
|
106
|
-
const [apiAvailable, setApiAvailable] = useState(
|
|
102
|
+
const [apiAvailable, setApiAvailable] = useState(isDiscussKitRunning);
|
|
107
103
|
useDefaultApiErrorHandler({
|
|
108
104
|
request: api,
|
|
109
105
|
onError: (e) => {
|
|
@@ -152,6 +148,12 @@ const DiscussKitComments = forwardRef(
|
|
|
152
148
|
},
|
|
153
149
|
[object.id, state]
|
|
154
150
|
);
|
|
151
|
+
if (!apiAvailable) {
|
|
152
|
+
return /* @__PURE__ */ jsxs(Alert, { severity: "info", children: [
|
|
153
|
+
/* @__PURE__ */ jsx(AlertTitle, { children: t("apiUnavailable.title") }),
|
|
154
|
+
t("apiUnavailable.desc")
|
|
155
|
+
] });
|
|
156
|
+
}
|
|
155
157
|
if (!initialized) {
|
|
156
158
|
return /* @__PURE__ */ jsx(Box, { width: "100%", display: "flex", justifyContent: "center", children: /* @__PURE__ */ jsx(CircularProgress, {}) });
|
|
157
159
|
}
|
|
@@ -188,12 +190,6 @@ const DiscussKitComments = forwardRef(
|
|
|
188
190
|
}
|
|
189
191
|
);
|
|
190
192
|
};
|
|
191
|
-
if (!apiAvailable) {
|
|
192
|
-
return /* @__PURE__ */ jsxs(Alert, { severity: "info", children: [
|
|
193
|
-
/* @__PURE__ */ jsx(AlertTitle, { children: t("apiUnavailable.title") }),
|
|
194
|
-
t("apiUnavailable.desc")
|
|
195
|
-
] });
|
|
196
|
-
}
|
|
197
193
|
return /* @__PURE__ */ jsxs(Container, { ref, children: [
|
|
198
194
|
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
199
195
|
/* @__PURE__ */ jsxs(Box, { display: "flex", justifyContent: "space-between", alignItems: "end", children: [
|
|
@@ -268,7 +264,6 @@ DiscussKitComments.defaultProps = {
|
|
|
268
264
|
};
|
|
269
265
|
function Wrapper({
|
|
270
266
|
target,
|
|
271
|
-
prefix,
|
|
272
267
|
flatView,
|
|
273
268
|
autoCollapse,
|
|
274
269
|
autoLoadComments,
|
|
@@ -293,11 +288,7 @@ function Wrapper({
|
|
|
293
288
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
294
289
|
[target]
|
|
295
290
|
);
|
|
296
|
-
const
|
|
297
|
-
if (!_prefix) {
|
|
298
|
-
throw new Error("prefix is required.");
|
|
299
|
-
}
|
|
300
|
-
const wsClient = getWsClient(_prefix);
|
|
291
|
+
const wsClient = getWsClient(discussKitPrefix);
|
|
301
292
|
useEffect(() => {
|
|
302
293
|
wsClient.connect();
|
|
303
294
|
return () => {
|
|
@@ -305,7 +296,6 @@ function Wrapper({
|
|
|
305
296
|
;
|
|
306
297
|
};
|
|
307
298
|
}, []);
|
|
308
|
-
api.defaults.baseURL = joinUrl(_prefix, "/api/");
|
|
309
299
|
return /* @__PURE__ */ jsx(UploaderProvider, { children: /* @__PURE__ */ jsx(ErrorBoundary, { FallbackComponent: ErrorFallback, children: /* @__PURE__ */ jsx(LocaleProvider, { translations, locale, children: /* @__PURE__ */ jsx(InternalThemeProvider, { children: /* @__PURE__ */ jsx(ConfirmProvider, { children: /* @__PURE__ */ jsx(DefaultEditorConfigProvider, { request: api, children: /* @__PURE__ */ jsx(
|
|
310
300
|
CommentsProvider,
|
|
311
301
|
{
|
|
@@ -334,7 +324,6 @@ Wrapper.propTypes = {
|
|
|
334
324
|
displayConnectButton: PropTypes.bool,
|
|
335
325
|
displayReaction: PropTypes.bool,
|
|
336
326
|
onChange: PropTypes.func,
|
|
337
|
-
prefix: PropTypes.string,
|
|
338
327
|
flatView: PropTypes.bool,
|
|
339
328
|
autoCollapse: PropTypes.bool,
|
|
340
329
|
autoLoadComments: PropTypes.bool,
|
|
@@ -350,7 +339,6 @@ Wrapper.defaultProps = {
|
|
|
350
339
|
displayReaction: true,
|
|
351
340
|
onChange: () => {
|
|
352
341
|
},
|
|
353
|
-
prefix: "",
|
|
354
342
|
flatView: false,
|
|
355
343
|
autoCollapse: false,
|
|
356
344
|
autoLoadComments: true,
|
package/lib/es/lib/utils.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
var _a, _b;
|
|
2
|
+
import joinUrl from "url-join";
|
|
1
3
|
const protectLogin = (session, action) => {
|
|
2
4
|
if (session.user) {
|
|
3
5
|
return action();
|
|
@@ -10,7 +12,17 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
10
12
|
const minDelay = (promise, ms) => {
|
|
11
13
|
return Promise.all([promise, sleep(ms)]).then(([result]) => result);
|
|
12
14
|
};
|
|
15
|
+
const discussKitService = (_b = (_a = window.blocklet) == null ? void 0 : _a.componentMountPoints) == null ? void 0 : _b.find(
|
|
16
|
+
(x) => x.did === "z8ia1WEiBZ7hxURf6LwH21Wpg99vophFwSJdu"
|
|
17
|
+
);
|
|
18
|
+
const discussKitPrefix = discussKitService ? joinUrl(discussKitService.mountPoint, "/") : "";
|
|
19
|
+
const discussKitApiPrefix = joinUrl(discussKitPrefix, "/api/");
|
|
20
|
+
const isDiscussKitRunning = (discussKitService == null ? void 0 : discussKitService.status) === "running";
|
|
13
21
|
export {
|
|
22
|
+
discussKitApiPrefix,
|
|
23
|
+
discussKitPrefix,
|
|
24
|
+
discussKitService,
|
|
25
|
+
isDiscussKitRunning,
|
|
14
26
|
minDelay,
|
|
15
27
|
protectLogin,
|
|
16
28
|
sleep
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/discuss-kit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.45",
|
|
4
4
|
"description": "A react component for Discuss Kit blocklet.",
|
|
5
5
|
"main": "./lib/cjs/index.js",
|
|
6
6
|
"module": "./lib/es/index.js",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"@arcblock/did-connect": "^2.10.1",
|
|
38
38
|
"@arcblock/ux": "^2.10.1",
|
|
39
39
|
"@arcblock/ws": "^1.18.123",
|
|
40
|
-
"@blocklet/discuss-kit-ux": "2.0.
|
|
41
|
-
"@blocklet/editor": "2.0.
|
|
40
|
+
"@blocklet/discuss-kit-ux": "2.0.45",
|
|
41
|
+
"@blocklet/editor": "2.0.45",
|
|
42
42
|
"@blocklet/js-sdk": "^1.16.28",
|
|
43
43
|
"@blocklet/ui-react": "^2.10.1",
|
|
44
44
|
"@emotion/react": "^11.10.5",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"vite-plugin-build": "^0.10.0",
|
|
79
79
|
"vite-plugin-svgr": "^4.2.0"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "3edd8218822e22b9855555c8e677cdb14c91e03c"
|
|
82
82
|
}
|