@edifice.io/react 2.5.3 → 2.5.4
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/icons.js +34 -32
- package/dist/modules/comments/components/Comment.js +1 -1
- package/dist/modules/comments/constants.d.ts +1 -0
- package/dist/modules/comments/constants.js +2 -1
- package/dist/modules/comments/provider/CommentProvider.js +2 -1
- package/dist/modules/comments/types.d.ts +4 -0
- package/dist/modules/icons/components/IconUndoSlashed.d.ts +7 -0
- package/dist/modules/icons/components/IconUndoSlashed.js +12 -0
- package/dist/modules/icons/components/index.d.ts +1 -0
- package/dist/modules/modals/ResourceModal/ResourceModal.d.ts +1 -0
- package/dist/modules/modals/ResourceModal/ResourceModal.js +10 -3
- package/package.json +8 -8
package/dist/icons.js
CHANGED
|
@@ -154,22 +154,23 @@ import { default as default154 } from "./modules/icons/components/IconToolCenter
|
|
|
154
154
|
import { default as default155 } from "./modules/icons/components/IconTool.js";
|
|
155
155
|
import { default as default156 } from "./modules/icons/components/IconTrendingUp.js";
|
|
156
156
|
import { default as default157 } from "./modules/icons/components/IconUndoAll.js";
|
|
157
|
-
import { default as default158 } from "./modules/icons/components/
|
|
158
|
-
import { default as default159 } from "./modules/icons/components/
|
|
159
|
-
import { default as default160 } from "./modules/icons/components/
|
|
160
|
-
import { default as default161 } from "./modules/icons/components/
|
|
161
|
-
import { default as default162 } from "./modules/icons/components/
|
|
162
|
-
import { default as default163 } from "./modules/icons/components/
|
|
163
|
-
import { default as default164 } from "./modules/icons/components/
|
|
164
|
-
import { default as default165 } from "./modules/icons/components/
|
|
165
|
-
import { default as default166 } from "./modules/icons/components/
|
|
166
|
-
import { default as default167 } from "./modules/icons/components/
|
|
167
|
-
import { default as default168 } from "./modules/icons/components/
|
|
168
|
-
import { default as default169 } from "./modules/icons/components/
|
|
169
|
-
import { default as default170 } from "./modules/icons/components/
|
|
170
|
-
import { default as default171 } from "./modules/icons/components/
|
|
171
|
-
import { default as default172 } from "./modules/icons/components/
|
|
172
|
-
import { default as default173 } from "./modules/icons/components/
|
|
157
|
+
import { default as default158 } from "./modules/icons/components/IconUndoSlashed.js";
|
|
158
|
+
import { default as default159 } from "./modules/icons/components/IconUndo.js";
|
|
159
|
+
import { default as default160 } from "./modules/icons/components/IconUnion.js";
|
|
160
|
+
import { default as default161 } from "./modules/icons/components/IconUnlink.js";
|
|
161
|
+
import { default as default162 } from "./modules/icons/components/IconUnlock.js";
|
|
162
|
+
import { default as default163 } from "./modules/icons/components/IconUnreadMail.js";
|
|
163
|
+
import { default as default164 } from "./modules/icons/components/IconUpload.js";
|
|
164
|
+
import { default as default165 } from "./modules/icons/components/IconUserSearch.js";
|
|
165
|
+
import { default as default166 } from "./modules/icons/components/IconUser.js";
|
|
166
|
+
import { default as default167 } from "./modules/icons/components/IconUsers.js";
|
|
167
|
+
import { default as default168 } from "./modules/icons/components/IconVideo.js";
|
|
168
|
+
import { default as default169 } from "./modules/icons/components/IconViewCalendar.js";
|
|
169
|
+
import { default as default170 } from "./modules/icons/components/IconViewList.js";
|
|
170
|
+
import { default as default171 } from "./modules/icons/components/IconWand.js";
|
|
171
|
+
import { default as default172 } from "./modules/icons/components/IconWrite.js";
|
|
172
|
+
import { default as default173 } from "./modules/icons/components/IconZoomIn.js";
|
|
173
|
+
import { default as default174 } from "./modules/icons/components/IconZoomOut.js";
|
|
173
174
|
export {
|
|
174
175
|
default3 as IconAdd,
|
|
175
176
|
default2 as IconAddUser,
|
|
@@ -326,21 +327,22 @@ export {
|
|
|
326
327
|
default155 as IconTool,
|
|
327
328
|
default154 as IconToolCenter,
|
|
328
329
|
default156 as IconTrendingUp,
|
|
329
|
-
|
|
330
|
+
default159 as IconUndo,
|
|
330
331
|
default157 as IconUndoAll,
|
|
331
|
-
|
|
332
|
-
default160 as
|
|
333
|
-
default161 as
|
|
334
|
-
default162 as
|
|
335
|
-
default163 as
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
default167 as
|
|
340
|
-
default168 as
|
|
341
|
-
default169 as
|
|
342
|
-
default170 as
|
|
343
|
-
default171 as
|
|
344
|
-
default172 as
|
|
345
|
-
default173 as
|
|
332
|
+
default158 as IconUndoSlashed,
|
|
333
|
+
default160 as IconUnion,
|
|
334
|
+
default161 as IconUnlink,
|
|
335
|
+
default162 as IconUnlock,
|
|
336
|
+
default163 as IconUnreadMail,
|
|
337
|
+
default164 as IconUpload,
|
|
338
|
+
default166 as IconUser,
|
|
339
|
+
default165 as IconUserSearch,
|
|
340
|
+
default167 as IconUsers,
|
|
341
|
+
default168 as IconVideo,
|
|
342
|
+
default169 as IconViewCalendar,
|
|
343
|
+
default170 as IconViewList,
|
|
344
|
+
default171 as IconWand,
|
|
345
|
+
default172 as IconWrite,
|
|
346
|
+
default173 as IconZoomIn,
|
|
347
|
+
default174 as IconZoomOut
|
|
346
348
|
};
|
|
@@ -73,7 +73,7 @@ const DeleteModal = /* @__PURE__ */ lazy(() => import("./DeleteModal.js")), Comm
|
|
|
73
73
|
whiteSpace: "pre-line"
|
|
74
74
|
}, children: content }),
|
|
75
75
|
type === "edit" && /* @__PURE__ */ jsxs("div", { className: "ms-n8", children: [
|
|
76
|
-
!replyTo && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => handleReplyToComment(comment.id), children: t("comment.reply") }),
|
|
76
|
+
!replyTo && options.allowReplies && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => handleReplyToComment(comment.id), children: t("comment.reply") }),
|
|
77
77
|
userId === authorId && /* @__PURE__ */ jsx(Button, { variant: "ghost", color: "tertiary", size: "sm", onClick: () => {
|
|
78
78
|
handleModifyComment(comment.id), setValue(content);
|
|
79
79
|
}, children: t("comment.edit") }),
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
const DEFAULT_MAX_COMMENT_LENGTH = 200, DEFAULT_MAX_REPLY_LENGTH = 200, DEFAULT_MAX_COMMENTS = 4, DEFAULT_ADD_COMMENTS = 5, DEFAULT_MAX_REPLIES = 5, DEFAULT_ADD_REPLIES = 5;
|
|
1
|
+
const DEFAULT_MAX_COMMENT_LENGTH = 200, DEFAULT_MAX_REPLY_LENGTH = 200, DEFAULT_MAX_COMMENTS = 4, DEFAULT_ADD_COMMENTS = 5, DEFAULT_MAX_REPLIES = 5, DEFAULT_ADD_REPLIES = 5, DEFAULT_ALLOW_REPLIES = !0;
|
|
2
2
|
export {
|
|
3
3
|
DEFAULT_ADD_COMMENTS,
|
|
4
4
|
DEFAULT_ADD_REPLIES,
|
|
5
|
+
DEFAULT_ALLOW_REPLIES,
|
|
5
6
|
DEFAULT_MAX_COMMENTS,
|
|
6
7
|
DEFAULT_MAX_COMMENT_LENGTH,
|
|
7
8
|
DEFAULT_MAX_REPLIES,
|
|
@@ -3,7 +3,7 @@ import { useMemo } from "react";
|
|
|
3
3
|
import { CommentForm } from "../components/CommentForm.js";
|
|
4
4
|
import { CommentHeader } from "../components/CommentHeader.js";
|
|
5
5
|
import { CommentList } from "../components/CommentList.js";
|
|
6
|
-
import { DEFAULT_ADD_REPLIES, DEFAULT_MAX_REPLIES, DEFAULT_ADD_COMMENTS, DEFAULT_MAX_COMMENTS, DEFAULT_MAX_REPLY_LENGTH, DEFAULT_MAX_COMMENT_LENGTH } from "../constants.js";
|
|
6
|
+
import { DEFAULT_ALLOW_REPLIES, DEFAULT_ADD_REPLIES, DEFAULT_MAX_REPLIES, DEFAULT_ADD_COMMENTS, DEFAULT_MAX_COMMENTS, DEFAULT_MAX_REPLY_LENGTH, DEFAULT_MAX_COMMENT_LENGTH } from "../constants.js";
|
|
7
7
|
import { CommentContext } from "../context/Context.js";
|
|
8
8
|
import { useComments } from "../hooks/useComments.js";
|
|
9
9
|
import Button from "../../../components/Button/Button.js";
|
|
@@ -20,6 +20,7 @@ const CommentProvider = ({
|
|
|
20
20
|
additionalComments: DEFAULT_ADD_COMMENTS,
|
|
21
21
|
maxReplies: DEFAULT_MAX_REPLIES,
|
|
22
22
|
additionalReplies: DEFAULT_ADD_REPLIES,
|
|
23
|
+
allowReplies: DEFAULT_ALLOW_REPLIES,
|
|
23
24
|
...commentOptions
|
|
24
25
|
}, {
|
|
25
26
|
type
|
|
@@ -104,6 +104,10 @@ export type CommentOptions = {
|
|
|
104
104
|
* Number of replies to load additionally in the limited list
|
|
105
105
|
*/
|
|
106
106
|
additionalReplies: number;
|
|
107
|
+
/**
|
|
108
|
+
* Allow replying to comments
|
|
109
|
+
*/
|
|
110
|
+
allowReplies: boolean;
|
|
107
111
|
};
|
|
108
112
|
export interface UserProfileResult {
|
|
109
113
|
/**
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconUndoSlashed: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconUndoSlashed;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconUndoSlashed = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M19.775 8.466A5 5 0 0 1 22 12.625V21a1 1 0 0 1-2 0v-8.375c0-1.186-.69-2.208-1.689-2.695zM7.918 2.293a1 1 0 1 1 1.414 1.414L5.414 7.625h6.719l-2 2H5.414l2.36 2.36-1.415 1.414-4.066-4.067a1 1 0 0 1 0-1.414zM20.293 2.293a1 1 0 1 1 1.414 1.414l-17 17a1 1 0 1 1-1.414-1.414z" })
|
|
9
|
+
] });
|
|
10
|
+
export {
|
|
11
|
+
SvgIconUndoSlashed as default
|
|
12
|
+
};
|
|
@@ -154,6 +154,7 @@ export { default as IconToolCenter } from './IconToolCenter';
|
|
|
154
154
|
export { default as IconTool } from './IconTool';
|
|
155
155
|
export { default as IconTrendingUp } from './IconTrendingUp';
|
|
156
156
|
export { default as IconUndoAll } from './IconUndoAll';
|
|
157
|
+
export { default as IconUndoSlashed } from './IconUndoSlashed';
|
|
157
158
|
export { default as IconUndo } from './IconUndo';
|
|
158
159
|
export { default as IconUnion } from './IconUnion';
|
|
159
160
|
export { default as IconUnlink } from './IconUnlink';
|
|
@@ -7,6 +7,7 @@ import { useTranslation } from "react-i18next";
|
|
|
7
7
|
import ImagePicker from "../../multimedia/ImagePicker/ImagePicker.js";
|
|
8
8
|
import { useThumb } from "./hooks/useThumb.js";
|
|
9
9
|
import { useEdificeClient } from "../../../providers/EdificeClientProvider/EdificeClientProvider.hook.js";
|
|
10
|
+
import useHasWorkflow from "../../../hooks/useHasWorkflow/useHasWorkflow.js";
|
|
10
11
|
import useToast from "../../../hooks/useToast/useToast.js";
|
|
11
12
|
import useResource from "../../../hooks/useResource/useResource.js";
|
|
12
13
|
import useMediaLibrary from "../../../hooks/useMediaLibrary/useMediaLibrary.js";
|
|
@@ -34,7 +35,7 @@ const DEFAULT_INPUT_MAX_LENGTH = 60, DEFAULT_TEXTAREA_MAX_LENGTH = 400, Resource
|
|
|
34
35
|
const {
|
|
35
36
|
appCode: contextAppCode,
|
|
36
37
|
currentApp
|
|
37
|
-
} = useEdificeClient(), application = customAppCode || contextAppCode, {
|
|
38
|
+
} = useEdificeClient(), application = customAppCode || contextAppCode, hasOptionalCommentRepliesWorkflow = useHasWorkflow("org.entcore.blog.controllers.BlogController|optionalCommentReplies"), {
|
|
38
39
|
t
|
|
39
40
|
} = useTranslation(), {
|
|
40
41
|
mode
|
|
@@ -53,7 +54,8 @@ const DEFAULT_INPUT_MAX_LENGTH = 60, DEFAULT_TEXTAREA_MAX_LENGTH = 400, Resource
|
|
|
53
54
|
description: isUpdating ? resource == null ? void 0 : resource.description : "",
|
|
54
55
|
enablePublic: isUpdating ? resource == null ? void 0 : resource.public : !1,
|
|
55
56
|
title: isUpdating ? resource == null ? void 0 : resource.name : "",
|
|
56
|
-
formSlug: isUpdating ? resource == null ? void 0 : resource.slug : ""
|
|
57
|
+
formSlug: isUpdating ? resource == null ? void 0 : resource.slug : "",
|
|
58
|
+
allowReplies: isUpdating ? resource == null ? void 0 : resource.allowReplies : !0
|
|
57
59
|
}
|
|
58
60
|
}), {
|
|
59
61
|
ref: mediaLibraryRef,
|
|
@@ -74,7 +76,8 @@ const DEFAULT_INPUT_MAX_LENGTH = 60, DEFAULT_TEXTAREA_MAX_LENGTH = 400, Resource
|
|
|
74
76
|
name: formData.title,
|
|
75
77
|
public: formData.enablePublic,
|
|
76
78
|
slug: formData.enablePublic && formData.formSlug || "",
|
|
77
|
-
thumbnail
|
|
79
|
+
thumbnail,
|
|
80
|
+
allowReplies: formData.allowReplies
|
|
78
81
|
};
|
|
79
82
|
let result, param;
|
|
80
83
|
if (isCreating) {
|
|
@@ -139,6 +142,10 @@ const DEFAULT_INPUT_MAX_LENGTH = 60, DEFAULT_TEXTAREA_MAX_LENGTH = 400, Resource
|
|
|
139
142
|
required: !1,
|
|
140
143
|
maxLength: textareaMaxLength
|
|
141
144
|
}), placeholder: ((_f = customT.placeholder) == null ? void 0 : _f.description) ?? t("explorer.resource.editModal.description.placeholder"), size: "md", maxLength: textareaMaxLength, showCounter: !0 })
|
|
145
|
+
] }),
|
|
146
|
+
application === "blog" && hasOptionalCommentRepliesWorkflow === !0 && /* @__PURE__ */ jsxs(FormControl, { id: "allowReplies", className: "d-flex gap-8 mt-16 mb-8", children: [
|
|
147
|
+
/* @__PURE__ */ jsx(FormControl.Input, { type: "checkbox", defaultChecked: isUpdating ? resource.allowReplies : !0, ...register("allowReplies"), className: "form-check-input mt-0", size: "sm" }),
|
|
148
|
+
/* @__PURE__ */ jsx(FormControl.Label, { className: "form-check-label mb-0", children: t("explorer.resource.editModal.comments.allowReplies") })
|
|
142
149
|
] })
|
|
143
150
|
] })
|
|
144
151
|
] }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edifice.io/react",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.4",
|
|
4
4
|
"description": "Edifice React Library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"dist"
|
|
74
74
|
],
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@ant-design/icons": "^
|
|
76
|
+
"@ant-design/icons": "^5.4.0",
|
|
77
77
|
"@dnd-kit/core": "^6.1.0",
|
|
78
78
|
"@dnd-kit/sortable": "^8.0.0",
|
|
79
79
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"@tiptap/react": "2.11.0",
|
|
120
120
|
"@tiptap/starter-kit": "2.11.0",
|
|
121
121
|
"@uidotdev/usehooks": "^2.4.1",
|
|
122
|
-
"antd": "^
|
|
122
|
+
"antd": "^5.29.1",
|
|
123
123
|
"clsx": "^2.1.1",
|
|
124
124
|
"dayjs": "1.11.10",
|
|
125
125
|
"emoji-picker-react": "4.5.2",
|
|
@@ -133,9 +133,9 @@
|
|
|
133
133
|
"react-slugify": "^3.0.3",
|
|
134
134
|
"swiper": "^10.1.0",
|
|
135
135
|
"ua-parser-js": "^1.0.36",
|
|
136
|
-
"@edifice.io/bootstrap": "2.5.
|
|
137
|
-
"@edifice.io/tiptap-extensions": "2.5.
|
|
138
|
-
"@edifice.io/utilities": "2.5.
|
|
136
|
+
"@edifice.io/bootstrap": "2.5.4",
|
|
137
|
+
"@edifice.io/tiptap-extensions": "2.5.4",
|
|
138
|
+
"@edifice.io/utilities": "2.5.4"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
|
141
141
|
"@babel/plugin-transform-react-pure-annotations": "^7.23.3",
|
|
@@ -166,8 +166,8 @@
|
|
|
166
166
|
"vite": "^5.4.11",
|
|
167
167
|
"vite-plugin-dts": "^4.1.0",
|
|
168
168
|
"vite-tsconfig-paths": "^5.0.1",
|
|
169
|
-
"@edifice.io/client": "2.5.
|
|
170
|
-
"@edifice.io/config": "2.5.
|
|
169
|
+
"@edifice.io/client": "2.5.4",
|
|
170
|
+
"@edifice.io/config": "2.5.4"
|
|
171
171
|
},
|
|
172
172
|
"peerDependencies": {
|
|
173
173
|
"@react-spring/web": "^9.7.5",
|