strapi-plugin-comments 2.0.8 → 2.0.11

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.
Files changed (266) hide show
  1. package/README.md +45 -11
  2. package/admin/src/translations/en.json +1 -0
  3. package/admin/src/translations/fr.json +132 -1
  4. package/admin/src/translations/pt-BR.json +132 -0
  5. package/build/README.md +818 -0
  6. package/build/admin/src/components/ActionButton/styles.d.ts +2 -0
  7. package/build/admin/src/components/ActionButton/styles.js +17 -0
  8. package/build/admin/src/components/ConfirmationDialog/index.d.ts +26 -0
  9. package/build/admin/src/components/ConfirmationDialog/index.js +104 -0
  10. package/build/admin/src/components/DiscussionStatus/index.d.ts +9 -0
  11. package/build/admin/src/components/DiscussionStatus/index.js +38 -0
  12. package/build/admin/src/components/DiscussionThread/index.d.ts +16 -0
  13. package/build/admin/src/components/DiscussionThread/index.js +99 -0
  14. package/build/admin/src/components/DiscussionThreadItem/index.d.ts +9 -0
  15. package/build/admin/src/components/DiscussionThreadItem/index.js +72 -0
  16. package/build/admin/src/components/DiscussionThreadItem/styles.d.ts +4 -0
  17. package/build/admin/src/components/DiscussionThreadItem/styles.js +27 -0
  18. package/build/admin/src/components/DiscussionThreadItemActions/index.d.ts +19 -0
  19. package/build/admin/src/components/DiscussionThreadItemActions/index.js +414 -0
  20. package/build/admin/src/components/DiscussionThreadItemActions/styles.d.ts +2 -0
  21. package/build/admin/src/components/DiscussionThreadItemActions/styles.js +17 -0
  22. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.d.ts +17 -0
  23. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +103 -0
  24. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +2 -0
  25. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +15 -0
  26. package/build/admin/src/components/DiscussionThreadItemFooter/index.d.ts +16 -0
  27. package/build/admin/src/components/DiscussionThreadItemFooter/index.js +73 -0
  28. package/build/admin/src/components/DiscussionThreadItemFooter/styles.d.ts +3 -0
  29. package/build/admin/src/components/DiscussionThreadItemFooter/styles.js +25 -0
  30. package/build/admin/src/components/DiscussionThreadItemReviewAction/index.d.ts +30 -0
  31. package/build/admin/src/components/DiscussionThreadItemReviewAction/index.js +233 -0
  32. package/build/admin/src/components/FormSwitch/index.d.ts +11 -0
  33. package/build/admin/src/components/FormSwitch/index.js +39 -0
  34. package/build/admin/src/components/FormSwitch/styles.d.ts +2 -0
  35. package/build/admin/src/components/FormSwitch/styles.js +16 -0
  36. package/build/admin/src/components/IconButton/styles.d.ts +2 -0
  37. package/build/admin/src/components/IconButton/styles.js +27 -0
  38. package/build/admin/src/components/Initializer/index.d.ts +3 -0
  39. package/build/admin/src/components/Initializer/index.js +14 -0
  40. package/build/admin/src/components/LoadingIndicatorOverlay/index.d.ts +3 -0
  41. package/build/admin/src/components/LoadingIndicatorOverlay/index.js +18 -0
  42. package/build/admin/src/components/LoadingIndicatorOverlay/styles.d.ts +3 -0
  43. package/build/admin/src/components/LoadingIndicatorOverlay/styles.js +32 -0
  44. package/build/admin/src/components/Nav/index.d.ts +7 -0
  45. package/build/admin/src/components/Nav/index.js +72 -0
  46. package/build/admin/src/components/PluginIcon/index.d.ts +3 -0
  47. package/build/admin/src/components/PluginIcon/index.js +13 -0
  48. package/build/admin/src/components/ReportsReviewModal/index.d.ts +21 -0
  49. package/build/admin/src/components/ReportsReviewModal/index.js +72 -0
  50. package/build/admin/src/components/ReportsReviewTable/index.d.ts +21 -0
  51. package/build/admin/src/components/ReportsReviewTable/index.js +321 -0
  52. package/build/admin/src/components/StatusBadge/index.d.ts +11 -0
  53. package/build/admin/src/components/StatusBadge/index.js +22 -0
  54. package/build/admin/src/components/StatusBadge/styles.d.ts +2 -0
  55. package/build/admin/src/components/StatusBadge/styles.js +25 -0
  56. package/build/admin/src/components/TableFilters/index.d.ts +10 -0
  57. package/build/admin/src/components/TableFilters/index.js +109 -0
  58. package/build/admin/src/components/TablePagination/index.d.ts +15 -0
  59. package/build/admin/src/components/TablePagination/index.js +45 -0
  60. package/build/admin/src/components/icons/comments.d.ts +9 -0
  61. package/build/admin/src/components/icons/comments.js +23 -0
  62. package/build/admin/src/components/icons/index.d.ts +6 -0
  63. package/build/admin/src/components/icons/index.js +21 -0
  64. package/build/admin/src/components/icons/lock.d.ts +11 -0
  65. package/build/admin/src/components/icons/lock.js +29 -0
  66. package/build/admin/src/components/icons/review.d.ts +11 -0
  67. package/build/admin/src/components/icons/review.js +31 -0
  68. package/build/admin/src/components/icons/unlock.d.ts +11 -0
  69. package/build/admin/src/components/icons/unlock.js +29 -0
  70. package/build/admin/src/hooks/useConfig.d.ts +8 -0
  71. package/build/admin/src/hooks/useConfig.js +52 -0
  72. package/build/admin/src/index.d.ts +7 -0
  73. package/build/admin/src/index.js +137 -0
  74. package/build/admin/src/pages/App/index.d.ts +4 -0
  75. package/build/admin/src/pages/App/index.js +90 -0
  76. package/build/admin/src/pages/App/reducer/actions.d.ts +8 -0
  77. package/build/admin/src/pages/App/reducer/actions.js +12 -0
  78. package/build/admin/src/pages/App/reducer/constants.d.ts +4 -0
  79. package/build/admin/src/pages/App/reducer/constants.js +7 -0
  80. package/build/admin/src/pages/App/reducer/index.d.ts +14 -0
  81. package/build/admin/src/pages/App/reducer/index.js +31 -0
  82. package/build/admin/src/pages/App/reducer/init.d.ts +3 -0
  83. package/build/admin/src/pages/App/reducer/init.js +9 -0
  84. package/build/admin/src/pages/App/reducer/selectors.d.ts +6 -0
  85. package/build/admin/src/pages/App/reducer/selectors.js +20 -0
  86. package/build/admin/src/pages/App/utils/api.d.ts +2 -0
  87. package/build/admin/src/pages/App/utils/api.js +16 -0
  88. package/build/admin/src/pages/ComingSoonPage/index.d.ts +3 -0
  89. package/build/admin/src/pages/ComingSoonPage/index.js +78 -0
  90. package/build/admin/src/pages/Details/components/DetailsEntity/index.d.ts +18 -0
  91. package/build/admin/src/pages/Details/components/DetailsEntity/index.js +132 -0
  92. package/build/admin/src/pages/Details/components/DetailsFilters/index.d.ts +12 -0
  93. package/build/admin/src/pages/Details/components/DetailsFilters/index.js +48 -0
  94. package/build/admin/src/pages/Details/components/DetailsFilters/styles.d.ts +2 -0
  95. package/build/admin/src/pages/Details/components/DetailsFilters/styles.js +16 -0
  96. package/build/admin/src/pages/Details/index.d.ts +4 -0
  97. package/build/admin/src/pages/Details/index.js +216 -0
  98. package/build/admin/src/pages/Discover/components/DiscoverTableRow/index.d.ts +20 -0
  99. package/build/admin/src/pages/Discover/components/DiscoverTableRow/index.js +344 -0
  100. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +2 -0
  101. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +16 -0
  102. package/build/admin/src/pages/Discover/index.d.ts +4 -0
  103. package/build/admin/src/pages/Discover/index.js +332 -0
  104. package/build/admin/src/pages/Discover/utils/api.d.ts +2 -0
  105. package/build/admin/src/pages/Discover/utils/api.js +23 -0
  106. package/build/admin/src/pages/Discover/utils/filtersSchema.d.ts +11 -0
  107. package/build/admin/src/pages/Discover/utils/filtersSchema.js +11 -0
  108. package/build/admin/src/pages/Settings/components/RestartAlert/styles.d.ts +2 -0
  109. package/build/admin/src/pages/Settings/components/RestartAlert/styles.js +16 -0
  110. package/build/admin/src/pages/Settings/index.d.ts +3 -0
  111. package/build/admin/src/pages/Settings/index.js +712 -0
  112. package/build/admin/src/pages/Settings/utils/api.d.ts +7 -0
  113. package/build/admin/src/pages/Settings/utils/api.js +80 -0
  114. package/build/admin/src/pages/utils/api.d.ts +12 -0
  115. package/build/admin/src/pages/utils/api.js +83 -0
  116. package/build/admin/src/permissions.d.ts +28 -0
  117. package/build/admin/src/permissions.js +65 -0
  118. package/build/admin/src/pluginId.d.ts +2 -0
  119. package/build/admin/src/pluginId.js +50 -0
  120. package/build/admin/src/reducers.d.ts +12 -0
  121. package/build/admin/src/reducers.js +14 -0
  122. package/build/admin/src/translations/en.json +132 -0
  123. package/build/admin/src/translations/fr.json +1 -0
  124. package/build/admin/src/translations/pt-BR.json +132 -0
  125. package/build/admin/src/utils/axiosInstance.d.ts +3 -0
  126. package/build/admin/src/utils/axiosInstance.js +37 -0
  127. package/build/admin/src/utils/constants.d.ts +25 -0
  128. package/build/admin/src/utils/constants.js +30 -0
  129. package/build/admin/src/utils/getApiUrl.d.ts +3 -0
  130. package/build/admin/src/utils/getApiUrl.js +6 -0
  131. package/build/admin/src/utils/getMessage.d.ts +4 -0
  132. package/build/admin/src/utils/getMessage.js +25 -0
  133. package/build/admin/src/utils/getRelatedGroups.d.ts +4 -0
  134. package/build/admin/src/utils/getRelatedGroups.js +6 -0
  135. package/build/admin/src/utils/getUrl.d.ts +3 -0
  136. package/build/admin/src/utils/getUrl.js +6 -0
  137. package/build/admin/src/utils/handleAPIError.d.ts +4 -0
  138. package/build/admin/src/utils/handleAPIError.js +20 -0
  139. package/build/admin/src/utils/index.d.ts +12 -0
  140. package/build/admin/src/utils/index.js +97 -0
  141. package/build/admin/src/utils/parseRegExp.d.ts +6 -0
  142. package/build/admin/src/utils/parseRegExp.js +11 -0
  143. package/build/admin/src/utils/renderEntryTitle.d.ts +4 -0
  144. package/build/admin/src/utils/renderEntryTitle.js +16 -0
  145. package/build/admin/src/utils/renderInitials.d.ts +3 -0
  146. package/build/admin/src/utils/renderInitials.js +11 -0
  147. package/build/admin/src/utils/resolveCommentStatus.d.ts +4 -0
  148. package/build/admin/src/utils/resolveCommentStatus.js +32 -0
  149. package/build/admin/src/utils/resolveCommentStatusColor.d.ts +4 -0
  150. package/build/admin/src/utils/resolveCommentStatusColor.js +22 -0
  151. package/build/content-types/comment.d.ts +91 -0
  152. package/build/content-types/comment.js +92 -0
  153. package/build/content-types/index.d.ts +143 -0
  154. package/build/content-types/index.js +18 -0
  155. package/build/content-types/report.d.ts +48 -0
  156. package/build/content-types/report.js +49 -0
  157. package/build/package.json +94 -0
  158. package/build/permissions.d.ts +18 -0
  159. package/build/permissions.js +18 -0
  160. package/build/server/bootstrap.d.ts +4 -0
  161. package/build/server/bootstrap.js +65 -0
  162. package/build/server/config/index.d.ts +4 -0
  163. package/build/server/config/index.js +19 -0
  164. package/build/server/controllers/admin.d.ts +4 -0
  165. package/build/server/controllers/admin.js +124 -0
  166. package/build/server/controllers/client.d.ts +4 -0
  167. package/build/server/controllers/client.js +111 -0
  168. package/build/server/controllers/index.d.ts +6 -0
  169. package/build/server/controllers/index.js +15 -0
  170. package/build/server/controllers/utils/functions.d.ts +7 -0
  171. package/build/server/controllers/utils/functions.js +24 -0
  172. package/build/server/controllers/utils/parsers.d.ts +15 -0
  173. package/build/server/controllers/utils/parsers.js +25 -0
  174. package/build/server/destroy.d.ts +3 -0
  175. package/build/server/destroy.js +3 -0
  176. package/build/server/graphql/index.d.ts +4 -0
  177. package/build/server/graphql/index.js +37 -0
  178. package/build/server/graphql/mutations/createAbuseReport.d.ts +11 -0
  179. package/build/server/graphql/mutations/createAbuseReport.js +27 -0
  180. package/build/server/graphql/mutations/createComment.d.ts +14 -0
  181. package/build/server/graphql/mutations/createComment.js +26 -0
  182. package/build/server/graphql/mutations/index.d.ts +4 -0
  183. package/build/server/graphql/mutations/index.js +28 -0
  184. package/build/server/graphql/mutations/removeComment.d.ts +11 -0
  185. package/build/server/graphql/mutations/removeComment.js +27 -0
  186. package/build/server/graphql/mutations/updateComment.d.ts +11 -0
  187. package/build/server/graphql/mutations/updateComment.js +27 -0
  188. package/build/server/graphql/queries/findAllFlat.d.ts +19 -0
  189. package/build/server/graphql/queries/findAllFlat.js +47 -0
  190. package/build/server/graphql/queries/findAllInHierarchy.d.ts +18 -0
  191. package/build/server/graphql/queries/findAllInHierarchy.js +38 -0
  192. package/build/server/graphql/queries/index.d.ts +4 -0
  193. package/build/server/graphql/queries/index.js +24 -0
  194. package/build/server/graphql/resolvers-config.d.ts +23 -0
  195. package/build/server/graphql/resolvers-config.js +13 -0
  196. package/build/server/graphql/types/comment-author.d.ts +4 -0
  197. package/build/server/graphql/types/comment-author.js +12 -0
  198. package/build/server/graphql/types/comment-nested.d.ts +4 -0
  199. package/build/server/graphql/types/comment-nested.js +19 -0
  200. package/build/server/graphql/types/comment.d.ts +4 -0
  201. package/build/server/graphql/types/comment.js +18 -0
  202. package/build/server/graphql/types/create-comment-author.d.ts +4 -0
  203. package/build/server/graphql/types/create-comment-author.js +12 -0
  204. package/build/server/graphql/types/create-comment.d.ts +4 -0
  205. package/build/server/graphql/types/create-comment.js +12 -0
  206. package/build/server/graphql/types/create-report.d.ts +4 -0
  207. package/build/server/graphql/types/create-report.js +12 -0
  208. package/build/server/graphql/types/id.d.ts +4 -0
  209. package/build/server/graphql/types/id.js +26 -0
  210. package/build/server/graphql/types/identify-comment-author.d.ts +4 -0
  211. package/build/server/graphql/types/identify-comment-author.js +9 -0
  212. package/build/server/graphql/types/index.d.ts +4 -0
  213. package/build/server/graphql/types/index.js +44 -0
  214. package/build/server/graphql/types/remove-comment.d.ts +4 -0
  215. package/build/server/graphql/types/remove-comment.js +11 -0
  216. package/build/server/graphql/types/report-reason.d.ts +4 -0
  217. package/build/server/graphql/types/report-reason.js +12 -0
  218. package/build/server/graphql/types/report.d.ts +4 -0
  219. package/build/server/graphql/types/report.js +14 -0
  220. package/build/server/graphql/types/response-find-all.d.ts +4 -0
  221. package/build/server/graphql/types/response-find-all.js +10 -0
  222. package/build/server/graphql/types/response-meta.d.ts +4 -0
  223. package/build/server/graphql/types/response-meta.js +9 -0
  224. package/build/server/graphql/types/response-pagination.d.ts +4 -0
  225. package/build/server/graphql/types/response-pagination.js +14 -0
  226. package/build/server/graphql/types/update-comment.d.ts +4 -0
  227. package/build/server/graphql/types/update-comment.js +12 -0
  228. package/build/server/index.d.ts +26 -0
  229. package/build/server/index.js +25 -0
  230. package/build/server/register.d.ts +3 -0
  231. package/build/server/register.js +3 -0
  232. package/build/server/routes/admin.d.ts +4 -0
  233. package/build/server/routes/admin.js +118 -0
  234. package/build/server/routes/client.d.ts +4 -0
  235. package/build/server/routes/client.js +54 -0
  236. package/build/server/routes/index.d.ts +11 -0
  237. package/build/server/routes/index.js +21 -0
  238. package/build/server/services/admin.d.ts +5 -0
  239. package/build/server/services/admin.js +296 -0
  240. package/build/server/services/client.d.ts +5 -0
  241. package/build/server/services/client.js +247 -0
  242. package/build/server/services/common.d.ts +5 -0
  243. package/build/server/services/common.js +266 -0
  244. package/build/server/services/graphql.d.ts +5 -0
  245. package/build/server/services/graphql.js +136 -0
  246. package/build/server/services/index.d.ts +8 -0
  247. package/build/server/services/index.js +16 -0
  248. package/build/server/services/utils/functions.d.ts +13 -0
  249. package/build/server/services/utils/functions.js +141 -0
  250. package/build/server/utils/constants.d.ts +9 -0
  251. package/build/server/utils/constants.js +23 -0
  252. package/build/server/utils/error.d.ts +23 -0
  253. package/build/server/utils/error.js +29 -0
  254. package/build/server/utils/functions.d.ts +14 -0
  255. package/build/server/utils/functions.js +50 -0
  256. package/build/strapi-admin.d.ts +3 -0
  257. package/build/strapi-admin.js +10 -0
  258. package/build/strapi-server.d.ts +177 -0
  259. package/build/strapi-server.js +46 -0
  260. package/build/tsconfig.tsbuildinfo +1 -0
  261. package/build/types/contentTypes.d.ts +46 -0
  262. package/build/types/contentTypes.js +3 -0
  263. package/package.json +3 -3
  264. package/server/controllers/client.js +0 -3
  265. package/server/graphql/queries/findAllFlat.js +6 -2
  266. package/server/services/common.js +2 -2
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __setModuleDefault =
26
+ (this && this.__setModuleDefault) ||
27
+ (Object.create
28
+ ? function (o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }
31
+ : function (o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar =
35
+ (this && this.__importStar) ||
36
+ function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null)
40
+ for (var k in mod)
41
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
42
+ __createBinding(result, mod, k);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ var __importDefault =
47
+ (this && this.__importDefault) ||
48
+ function (mod) {
49
+ return mod && mod.__esModule ? mod : { default: mod };
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ const react_1 = __importStar(require("react"));
53
+ const prop_types_1 = __importDefault(require("prop-types"));
54
+ const react_intl_1 = require("react-intl");
55
+ const react_query_1 = require("react-query");
56
+ const lodash_1 = require("lodash");
57
+ const Avatar_1 = require("@strapi/design-system/Avatar");
58
+ const Flex_1 = require("@strapi/design-system/Flex");
59
+ const IconButton_1 = require("@strapi/design-system/IconButton");
60
+ const Link_1 = require("@strapi/design-system/Link");
61
+ const Stack_1 = require("@strapi/design-system/Stack");
62
+ const Table_1 = require("@strapi/design-system/Table");
63
+ const Typography_1 = require("@strapi/design-system/Typography");
64
+ const icons_1 = require("@strapi/icons");
65
+ const helper_plugin_1 = require("@strapi/helper-plugin");
66
+ const utils_1 = require("../../../../utils");
67
+ const api_1 = require("../../../utils/api");
68
+ const pluginId_1 = require("../../../../pluginId");
69
+ const styles_1 = require("./styles");
70
+ const renderEntryTitle_1 = __importDefault(
71
+ require("../../../../utils/renderEntryTitle")
72
+ );
73
+ const DiscussionThreadItemApprovalFlowActions_1 = __importDefault(
74
+ require("../../../../components/DiscussionThreadItemApprovalFlowActions")
75
+ );
76
+ const StatusBadge_1 = __importDefault(
77
+ require("../../../../components/StatusBadge")
78
+ );
79
+ const styles_2 = require("../../../../components/IconButton/styles");
80
+ const DiscussionThreadItemReviewAction_1 = __importDefault(
81
+ require("../../../../components/DiscussionThreadItemReviewAction")
82
+ );
83
+ const DiscoverTableRow = ({
84
+ config,
85
+ item,
86
+ allowedActions: { canModerate, canAccessReports, canReviewReports },
87
+ onClick,
88
+ }) => {
89
+ const { id, reports } = item;
90
+ const [blockButtonsDisabled, setBlockButtonsDisabled] = (0, react_1.useState)(
91
+ false
92
+ );
93
+ const { formatDate } = (0, react_intl_1.useIntl)();
94
+ const toggleNotification = (0, helper_plugin_1.useNotification)();
95
+ const queryClient = (0, react_query_1.useQueryClient)();
96
+ const { lockApp, unlockApp } = (0, helper_plugin_1.useOverlayBlocker)();
97
+ const onSuccess =
98
+ (message, stateAction = () => {}, indalidate = true) =>
99
+ async () => {
100
+ if (indalidate) {
101
+ await queryClient.invalidateQueries("get-data");
102
+ }
103
+ toggleNotification({
104
+ type: "success",
105
+ message: `${pluginId_1.pluginId}.${message}`,
106
+ });
107
+ stateAction(false);
108
+ unlockApp();
109
+ };
110
+ const onError = (err) => {
111
+ (0, utils_1.handleAPIError)(err, toggleNotification);
112
+ };
113
+ const blockItemMutation = (0, react_query_1.useMutation)(api_1.blockItem, {
114
+ onSuccess: onSuccess(
115
+ "page.details.actions.comment.block.confirmation.success"
116
+ ),
117
+ onError,
118
+ refetchActive: false,
119
+ });
120
+ const blockItemThreadMutation = (0, react_query_1.useMutation)(
121
+ api_1.blockItemThread,
122
+ {
123
+ onSuccess: onSuccess(
124
+ "page.details.actions.thread.block.confirmation.success"
125
+ ),
126
+ onError,
127
+ refetchActive: false,
128
+ }
129
+ );
130
+ const handleBlockItemClick = async () => {
131
+ if (canModerate) {
132
+ lockApp();
133
+ blockItemMutation.mutate(id);
134
+ }
135
+ };
136
+ const handleBlockItemThreadClick = async () => {
137
+ if (canModerate) {
138
+ lockApp();
139
+ blockItemThreadMutation.mutate(id);
140
+ }
141
+ };
142
+ const handleBlockActionClick = async (mutation, onCallback) => {
143
+ lockApp();
144
+ await mutation.mutateAsync(id);
145
+ onCallback();
146
+ };
147
+ const isLoading =
148
+ blockItemMutation.isLoading || blockItemThreadMutation.isLoading;
149
+ const openReports = reports?.filter((_) => !_.resolved);
150
+ const hasReports = !(0, lodash_1.isEmpty)(openReports);
151
+ const reviewFlowEnabled =
152
+ canAccessReports && hasReports && !(item.blocked || item.blockedThread);
153
+ const handleClick = () => onClick();
154
+ const handleBlockButtonsStateChange = (disabled) =>
155
+ setBlockButtonsDisabled(disabled);
156
+ const renderStatus = (props) => {
157
+ const status = (0, utils_1.resolveCommentStatus)({
158
+ ...props,
159
+ reviewFlowEnabled,
160
+ });
161
+ const color = (0, utils_1.resolveCommentStatusColor)(status);
162
+ return react_1.default.createElement(
163
+ StatusBadge_1.default,
164
+ {
165
+ backgroundColor: `${color}100`,
166
+ textColor: `${color}700`,
167
+ color: color,
168
+ },
169
+ (0, utils_1.getMessage)(
170
+ {
171
+ id: `page.common.item.status.${status}`,
172
+ props: {
173
+ count: openReports.length,
174
+ },
175
+ },
176
+ status
177
+ )
178
+ );
179
+ };
180
+ const renderEntryUrl = (entry) =>
181
+ entry ? `/content-manager/collectionType/${entry.uid}/${entry.id}` : null;
182
+ const renderDetailsUrl = (entry) =>
183
+ (0, utils_1.getUrl)(`discover/${entry.id}`);
184
+ const gotApprovalFlow = !(0, lodash_1.isNil)(item.approvalStatus);
185
+ const needsApproval = gotApprovalFlow && item.approvalStatus === "PENDING";
186
+ let actionItemsCount = 1;
187
+ if (reviewFlowEnabled || needsApproval) {
188
+ actionItemsCount = 2;
189
+ }
190
+ return react_1.default.createElement(
191
+ Table_1.Tr,
192
+ { key: item.id },
193
+ react_1.default.createElement(
194
+ Table_1.Td,
195
+ null,
196
+ react_1.default.createElement(
197
+ Typography_1.Typography,
198
+ { textColor: "neutral800", fontWeight: "bold" },
199
+ "#",
200
+ item.id
201
+ )
202
+ ),
203
+ react_1.default.createElement(
204
+ Table_1.Td,
205
+ null,
206
+ react_1.default.createElement(
207
+ Stack_1.Stack,
208
+ { size: 2, horizontal: true },
209
+ item.author?.avatar
210
+ ? react_1.default.createElement(Avatar_1.Avatar, {
211
+ src: item.author?.avatar,
212
+ alt: item.author.name,
213
+ })
214
+ : react_1.default.createElement(
215
+ Avatar_1.Initials,
216
+ null,
217
+ (0, utils_1.renderInitials)(item.author.name)
218
+ ),
219
+ react_1.default.createElement(
220
+ Typography_1.Typography,
221
+ { textColor: "neutral800", variant: "pi" },
222
+ item.author.name
223
+ )
224
+ )
225
+ ),
226
+ react_1.default.createElement(
227
+ Table_1.Td,
228
+ { style: { maxWidth: "30vw" } },
229
+ react_1.default.createElement(
230
+ Typography_1.Typography,
231
+ { textColor: "neutral800", ellipsis: true },
232
+ item.content
233
+ )
234
+ ),
235
+ react_1.default.createElement(
236
+ Table_1.Td,
237
+ null,
238
+ item.threadOf?.id
239
+ ? react_1.default.createElement(
240
+ Link_1.Link,
241
+ { to: renderDetailsUrl(item.threadOf) },
242
+ (0, utils_1.getMessage)(
243
+ {
244
+ id: "page.discover.table.cell.thread",
245
+ props: { id: item.threadOf.id },
246
+ },
247
+ "#" + item.threadOf.id
248
+ )
249
+ )
250
+ : "-"
251
+ ),
252
+ react_1.default.createElement(
253
+ Table_1.Td,
254
+ { style: { maxWidth: "15vw" } },
255
+ item.related
256
+ ? react_1.default.createElement(
257
+ styles_1.TableLink,
258
+ { to: renderEntryUrl(item.related) },
259
+ (0, renderEntryTitle_1.default)(item.related, config)
260
+ )
261
+ : "-"
262
+ ),
263
+ react_1.default.createElement(
264
+ Table_1.Td,
265
+ null,
266
+ react_1.default.createElement(
267
+ Typography_1.Typography,
268
+ { textColor: "neutral800" },
269
+ formatDate(item.updatedAt || item.createdAt, {
270
+ dateStyle: "long",
271
+ timeStyle: "short",
272
+ })
273
+ )
274
+ ),
275
+ react_1.default.createElement(
276
+ Table_1.Td,
277
+ null,
278
+ react_1.default.createElement(
279
+ Typography_1.Typography,
280
+ { textColor: "neutral800" },
281
+ renderStatus(item)
282
+ )
283
+ ),
284
+ react_1.default.createElement(
285
+ Table_1.Td,
286
+ null,
287
+ react_1.default.createElement(
288
+ Flex_1.Flex,
289
+ { direction: "column", alignItems: "flex-end" },
290
+ react_1.default.createElement(
291
+ styles_2.IconButtonGroupStyled,
292
+ { isSingle: !(reviewFlowEnabled || (canModerate && needsApproval)) },
293
+ canModerate &&
294
+ needsApproval &&
295
+ react_1.default.createElement(
296
+ DiscussionThreadItemApprovalFlowActions_1.default,
297
+ {
298
+ id: item.id,
299
+ allowedActions: { canModerate },
300
+ queryToInvalidate: "get-data",
301
+ }
302
+ ),
303
+ react_1.default.createElement(
304
+ DiscussionThreadItemReviewAction_1.default,
305
+ {
306
+ item: item,
307
+ queryToInvalidate: "get-data",
308
+ areBlockButtonsDisabled: blockButtonsDisabled,
309
+ isLoading: isLoading,
310
+ allowedActions: {
311
+ canModerate,
312
+ canAccessReports,
313
+ canReviewReports,
314
+ },
315
+ blockItemMutation: blockItemMutation,
316
+ blockItemThreadMutation: blockItemThreadMutation,
317
+ onBlockButtonsStateChange: handleBlockButtonsStateChange,
318
+ onBlockActionClick: handleBlockActionClick,
319
+ }
320
+ ),
321
+ react_1.default.createElement(IconButton_1.IconButton, {
322
+ onClick: handleClick,
323
+ label: (0, utils_1.getMessage)(
324
+ "page.discover.table.action.display"
325
+ ),
326
+ icon: react_1.default.createElement(icons_1.Eye, null),
327
+ })
328
+ )
329
+ )
330
+ )
331
+ );
332
+ };
333
+ DiscoverTableRow.propTypes = {
334
+ config: prop_types_1.default.object.isRequired,
335
+ item: prop_types_1.default.object.isRequired,
336
+ allowedActions: prop_types_1.default.shape({
337
+ canModerate: prop_types_1.default.bool,
338
+ canAccessReports: prop_types_1.default.bool,
339
+ canReviewReports: prop_types_1.default.bool,
340
+ }),
341
+ onClick: prop_types_1.default.func.isRequired,
342
+ };
343
+ exports.default = DiscoverTableRow;
344
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export declare const TableLink: any;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault =
3
+ (this && this.__importDefault) ||
4
+ function (mod) {
5
+ return mod && mod.__esModule ? mod : { default: mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TableLink = void 0;
9
+ const styled_components_1 = __importDefault(require("styled-components"));
10
+ const Link_1 = require("@strapi/design-system/Link");
11
+ exports.TableLink = (0, styled_components_1.default)(Link_1.Link)`
12
+ display: block;
13
+ text-overflow: ellipsis;
14
+ overflow: hidden;
15
+ `;
16
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,4 @@
1
+ export declare function mapDispatchToProps(dispatch: any): any;
2
+ declare const _default: any;
3
+ export default _default;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ var __createBinding =
3
+ (this && this.__createBinding) ||
4
+ (Object.create
5
+ ? function (o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (
9
+ !desc ||
10
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
11
+ ) {
12
+ desc = {
13
+ enumerable: true,
14
+ get: function () {
15
+ return m[k];
16
+ },
17
+ };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }
21
+ : function (o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ });
25
+ var __setModuleDefault =
26
+ (this && this.__setModuleDefault) ||
27
+ (Object.create
28
+ ? function (o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }
31
+ : function (o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar =
35
+ (this && this.__importStar) ||
36
+ function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null)
40
+ for (var k in mod)
41
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
42
+ __createBinding(result, mod, k);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ var __importDefault =
47
+ (this && this.__importDefault) ||
48
+ function (mod) {
49
+ return mod && mod.__esModule ? mod : { default: mod };
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.mapDispatchToProps = void 0;
53
+ const react_1 = __importStar(require("react"));
54
+ const react_redux_1 = require("react-redux");
55
+ const redux_1 = require("redux");
56
+ const react_fast_compare_1 = __importDefault(require("react-fast-compare"));
57
+ const react_query_1 = require("react-query");
58
+ const react_router_dom_1 = require("react-router-dom");
59
+ const lodash_1 = require("lodash");
60
+ const Box_1 = require("@strapi/design-system/Box");
61
+ const Layout_1 = require("@strapi/design-system/Layout");
62
+ const Table_1 = require("@strapi/design-system/Table");
63
+ const Typography_1 = require("@strapi/design-system/Typography");
64
+ const VisuallyHidden_1 = require("@strapi/design-system/VisuallyHidden");
65
+ const LiveRegions_1 = require("@strapi/design-system/LiveRegions");
66
+ const helper_plugin_1 = require("@strapi/helper-plugin");
67
+ const getMessage_1 = __importDefault(require("../../utils/getMessage"));
68
+ const api_1 = require("./utils/api");
69
+ const permissions_1 = __importDefault(require("../../permissions"));
70
+ const getUrl_1 = __importDefault(require("../../utils/getUrl"));
71
+ const TablePagination_1 = __importDefault(
72
+ require("../../components/TablePagination")
73
+ );
74
+ const filtersSchema_1 = __importDefault(require("./utils/filtersSchema"));
75
+ const TableFilters_1 = __importDefault(
76
+ require("../../components/TableFilters")
77
+ );
78
+ const selectors_1 = __importDefault(require("../App/reducer/selectors"));
79
+ const DiscoverTableRow_1 = __importDefault(
80
+ require("./components/DiscoverTableRow")
81
+ );
82
+ const Discover = ({ config }) => {
83
+ (0, helper_plugin_1.useFocusWhenNavigate)();
84
+ const { push } = (0, react_router_dom_1.useHistory)();
85
+ const { notifyStatus } = (0, LiveRegions_1.useNotifyAT)();
86
+ const { trackUsage } = (0, helper_plugin_1.useTracking)();
87
+ const trackUsageRef = (0, react_1.useRef)(trackUsage);
88
+ const toggleNotification = (0, helper_plugin_1.useNotification)();
89
+ const [{ query: queryParams }] = (0, helper_plugin_1.useQueryParams)();
90
+ const _q = queryParams?._q || "";
91
+ const viewPermissions = (0, react_1.useMemo)(
92
+ () => ({
93
+ access: permissions_1.default.access,
94
+ moderate: permissions_1.default.moderate,
95
+ accessReports: permissions_1.default.reports,
96
+ reviewReports: permissions_1.default.reportsReview,
97
+ }),
98
+ []
99
+ );
100
+ const {
101
+ isLoading: isLoadingForPermissions,
102
+ allowedActions: {
103
+ canAccess,
104
+ canModerate,
105
+ canAccessReports,
106
+ canReviewReports,
107
+ },
108
+ } = (0, helper_plugin_1.useRBAC)(viewPermissions);
109
+ const {
110
+ isLoading: isLoadingForData,
111
+ data: { result, pagination = {} },
112
+ isFetching,
113
+ } = (0, react_query_1.useQuery)(
114
+ ["get-data", queryParams, canAccess],
115
+ () => (0, api_1.fetchData)(queryParams, toggleNotification),
116
+ {
117
+ initialData: {},
118
+ }
119
+ );
120
+ const handleClickDisplay = (id) => {
121
+ push((0, getUrl_1.default)(`discover/${id}`));
122
+ };
123
+ const isLoading = isLoadingForData || isFetching;
124
+ const { total } = pagination;
125
+ const emptyLayout = {
126
+ comments: {
127
+ id: (0, getMessage_1.default)("page.discover.table.empty"),
128
+ defaultMessage: "You don't have any comments yet.",
129
+ },
130
+ search: {
131
+ id: (0, getMessage_1.default)("page.discover.table.empty.search"),
132
+ defaultMessage: "No comments match the search.",
133
+ },
134
+ };
135
+ const emptyContent = _q ? "search" : "comments";
136
+ const COL_COUNT = 8;
137
+ if (canAccess) {
138
+ return react_1.default.createElement(
139
+ Box_1.Box,
140
+ { background: "neutral100" },
141
+ react_1.default.createElement(
142
+ Layout_1.Layout,
143
+ null,
144
+ isLoading || isLoadingForPermissions
145
+ ? react_1.default.createElement(
146
+ helper_plugin_1.LoadingIndicatorPage,
147
+ null
148
+ )
149
+ : react_1.default.createElement(
150
+ react_1.default.Fragment,
151
+ null,
152
+ react_1.default.createElement(Layout_1.HeaderLayout, {
153
+ title: (0, getMessage_1.default)("page.discover.header"),
154
+ subtitle: `${total} ${(0, getMessage_1.default)(
155
+ "page.discover.header.count"
156
+ )}`,
157
+ as: "h2",
158
+ }),
159
+ react_1.default.createElement(Layout_1.ActionLayout, {
160
+ startActions: react_1.default.createElement(
161
+ react_1.default.Fragment,
162
+ null,
163
+ react_1.default.createElement(
164
+ helper_plugin_1.SearchURLQuery,
165
+ {
166
+ label: (0, getMessage_1.default)(
167
+ "search.label",
168
+ "Search",
169
+ false
170
+ ),
171
+ }
172
+ ),
173
+ react_1.default.createElement(TableFilters_1.default, {
174
+ displayedFilters: filtersSchema_1.default,
175
+ })
176
+ ),
177
+ }),
178
+ react_1.default.createElement(
179
+ Layout_1.ContentLayout,
180
+ null,
181
+ !(0, lodash_1.isEmpty)(result)
182
+ ? react_1.default.createElement(
183
+ react_1.default.Fragment,
184
+ null,
185
+ react_1.default.createElement(
186
+ Table_1.Table,
187
+ { colCount: COL_COUNT, rowCount: result.length },
188
+ react_1.default.createElement(
189
+ Table_1.Thead,
190
+ null,
191
+ react_1.default.createElement(
192
+ Table_1.Tr,
193
+ null,
194
+ react_1.default.createElement(
195
+ Table_1.Th,
196
+ null,
197
+ react_1.default.createElement(
198
+ Typography_1.Typography,
199
+ { variant: "sigma" },
200
+ (0, getMessage_1.default)(
201
+ "page.discover.table.header.id"
202
+ )
203
+ )
204
+ ),
205
+ react_1.default.createElement(
206
+ Table_1.Th,
207
+ null,
208
+ react_1.default.createElement(
209
+ Typography_1.Typography,
210
+ { variant: "sigma" },
211
+ (0, getMessage_1.default)(
212
+ "page.discover.table.header.author"
213
+ )
214
+ )
215
+ ),
216
+ react_1.default.createElement(
217
+ Table_1.Th,
218
+ null,
219
+ react_1.default.createElement(
220
+ Typography_1.Typography,
221
+ { variant: "sigma" },
222
+ (0, getMessage_1.default)(
223
+ "page.discover.table.header.message"
224
+ )
225
+ )
226
+ ),
227
+ react_1.default.createElement(
228
+ Table_1.Th,
229
+ null,
230
+ react_1.default.createElement(
231
+ Typography_1.Typography,
232
+ { variant: "sigma" },
233
+ (0, getMessage_1.default)(
234
+ "page.discover.table.header.thread"
235
+ )
236
+ )
237
+ ),
238
+ react_1.default.createElement(
239
+ Table_1.Th,
240
+ null,
241
+ react_1.default.createElement(
242
+ Typography_1.Typography,
243
+ { variant: "sigma" },
244
+ (0, getMessage_1.default)(
245
+ "page.discover.table.header.entry"
246
+ )
247
+ )
248
+ ),
249
+ react_1.default.createElement(
250
+ Table_1.Th,
251
+ null,
252
+ react_1.default.createElement(
253
+ Typography_1.Typography,
254
+ { variant: "sigma" },
255
+ (0, getMessage_1.default)(
256
+ "page.discover.table.header.lastUpdate"
257
+ )
258
+ )
259
+ ),
260
+ react_1.default.createElement(
261
+ Table_1.Th,
262
+ null,
263
+ react_1.default.createElement(
264
+ Typography_1.Typography,
265
+ { variant: "sigma" },
266
+ (0, getMessage_1.default)(
267
+ "page.discover.table.header.status"
268
+ )
269
+ )
270
+ ),
271
+ react_1.default.createElement(
272
+ Table_1.Th,
273
+ null,
274
+ react_1.default.createElement(
275
+ VisuallyHidden_1.VisuallyHidden,
276
+ null,
277
+ (0, getMessage_1.default)(
278
+ "page.discover.table.header.actions"
279
+ )
280
+ )
281
+ )
282
+ )
283
+ ),
284
+ react_1.default.createElement(
285
+ Table_1.Tbody,
286
+ null,
287
+ result.map((entry) =>
288
+ react_1.default.createElement(
289
+ DiscoverTableRow_1.default,
290
+ {
291
+ key: `comment-${entry.id}`,
292
+ config: config,
293
+ item: entry,
294
+ allowedActions: {
295
+ canModerate,
296
+ canAccessReports,
297
+ canReviewReports,
298
+ },
299
+ onClick: () => handleClickDisplay(entry.id),
300
+ }
301
+ )
302
+ )
303
+ )
304
+ ),
305
+ react_1.default.createElement(TablePagination_1.default, {
306
+ pagination: { pageCount: pagination?.pageCount || 1 },
307
+ })
308
+ )
309
+ : react_1.default.createElement(
310
+ helper_plugin_1.EmptyStateLayout,
311
+ { content: emptyLayout[emptyContent] }
312
+ )
313
+ )
314
+ )
315
+ )
316
+ );
317
+ }
318
+ return null;
319
+ };
320
+ const mapStateToProps = (0, selectors_1.default)();
321
+ function mapDispatchToProps(dispatch) {
322
+ return (0, redux_1.bindActionCreators)({}, dispatch);
323
+ }
324
+ exports.mapDispatchToProps = mapDispatchToProps;
325
+ const withConnect = (0, react_redux_1.connect)(
326
+ mapStateToProps,
327
+ mapDispatchToProps
328
+ );
329
+ exports.default = (0, redux_1.compose)(withConnect)(
330
+ (0, react_1.memo)(Discover, react_fast_compare_1.default)
331
+ );
332
+ //# sourceMappingURL=index.js.map