strapi-plugin-comments 2.0.8 → 2.1.0-beta.1

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 (267) hide show
  1. package/README.md +171 -127
  2. package/admin/src/components/ActionButton/styles.d.ts +2 -0
  3. package/admin/src/components/ActionButton/styles.js +13 -8
  4. package/admin/src/components/ConfirmationDialog/index.d.ts +26 -0
  5. package/admin/src/components/ConfirmationDialog/index.js +36 -55
  6. package/admin/src/components/DiscussionStatus/index.d.ts +9 -0
  7. package/admin/src/components/DiscussionStatus/index.js +22 -31
  8. package/admin/src/components/DiscussionThread/index.d.ts +16 -0
  9. package/admin/src/components/DiscussionThread/index.js +39 -56
  10. package/admin/src/components/DiscussionThreadItem/index.d.ts +9 -0
  11. package/admin/src/components/DiscussionThreadItem/index.js +28 -52
  12. package/admin/src/components/DiscussionThreadItem/styles.d.ts +4 -0
  13. package/admin/src/components/DiscussionThreadItem/styles.js +16 -11
  14. package/admin/src/components/DiscussionThreadItemActions/index.d.ts +19 -0
  15. package/admin/src/components/DiscussionThreadItemActions/index.js +121 -158
  16. package/admin/src/components/DiscussionThreadItemActions/styles.d.ts +2 -0
  17. package/admin/src/components/DiscussionThreadItemActions/styles.js +13 -7
  18. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.d.ts +17 -0
  19. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +38 -48
  20. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +2 -0
  21. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +12 -6
  22. package/admin/src/components/DiscussionThreadItemFooter/index.d.ts +16 -0
  23. package/admin/src/components/DiscussionThreadItemFooter/index.js +35 -42
  24. package/admin/src/components/DiscussionThreadItemFooter/styles.d.ts +3 -0
  25. package/admin/src/components/DiscussionThreadItemFooter/styles.js +17 -12
  26. package/admin/src/components/DiscussionThreadItemReviewAction/index.d.ts +30 -0
  27. package/admin/src/components/DiscussionThreadItemReviewAction/index.js +77 -91
  28. package/admin/src/components/FormSwitch/index.d.ts +7 -0
  29. package/admin/src/components/FormSwitch/index.js +15 -18
  30. package/admin/src/components/FormSwitch/styles.d.ts +2 -0
  31. package/admin/src/components/FormSwitch/styles.js +14 -8
  32. package/admin/src/components/IconButton/styles.d.ts +2 -0
  33. package/admin/src/components/IconButton/styles.js +16 -9
  34. package/admin/src/components/Initializer/index.d.ts +5 -0
  35. package/admin/src/components/Initializer/index.js +12 -24
  36. package/admin/src/components/LoadingIndicatorOverlay/index.d.ts +3 -0
  37. package/admin/src/components/LoadingIndicatorOverlay/index.js +12 -15
  38. package/admin/src/components/LoadingIndicatorOverlay/styles.d.ts +3 -0
  39. package/admin/src/components/LoadingIndicatorOverlay/styles.js +22 -17
  40. package/admin/src/components/Nav/index.d.ts +7 -0
  41. package/admin/src/components/Nav/index.js +25 -48
  42. package/admin/src/components/PluginIcon/index.d.ts +3 -0
  43. package/admin/src/components/PluginIcon/index.js +10 -12
  44. package/admin/src/components/ReportsReviewModal/index.d.ts +21 -0
  45. package/admin/src/components/ReportsReviewModal/index.js +31 -46
  46. package/admin/src/components/ReportsReviewTable/index.d.ts +21 -0
  47. package/admin/src/components/ReportsReviewTable/index.js +120 -140
  48. package/admin/src/components/StatusBadge/index.d.ts +7 -0
  49. package/admin/src/components/StatusBadge/index.js +12 -17
  50. package/admin/src/components/StatusBadge/styles.d.ts +2 -0
  51. package/admin/src/components/StatusBadge/styles.js +19 -13
  52. package/admin/src/components/TableFilters/index.d.ts +10 -0
  53. package/admin/src/components/TableFilters/index.js +52 -49
  54. package/admin/src/components/TablePagination/index.d.ts +17 -0
  55. package/admin/src/components/TablePagination/index.js +27 -29
  56. package/admin/src/components/icons/comments.d.ts +6 -0
  57. package/admin/src/components/icons/comments.js +11 -8
  58. package/admin/src/components/icons/index.d.ts +6 -0
  59. package/admin/src/components/icons/index.js +15 -6
  60. package/admin/src/components/icons/lock.d.ts +7 -0
  61. package/admin/src/components/icons/lock.js +11 -21
  62. package/admin/src/components/icons/review.d.ts +7 -0
  63. package/admin/src/components/icons/review.js +11 -17
  64. package/admin/src/components/icons/unlock.d.ts +7 -0
  65. package/admin/src/components/icons/unlock.js +11 -19
  66. package/admin/src/hooks/useConfig.d.ts +8 -0
  67. package/admin/src/hooks/useConfig.js +40 -45
  68. package/admin/src/index.d.ts +7 -0
  69. package/admin/src/index.js +98 -92
  70. package/admin/src/pages/App/index.d.ts +4 -0
  71. package/admin/src/pages/App/index.js +43 -67
  72. package/admin/src/pages/App/reducer/actions.d.ts +8 -0
  73. package/admin/src/pages/App/reducer/actions.js +11 -7
  74. package/admin/src/pages/App/reducer/constants.d.ts +4 -0
  75. package/admin/src/pages/App/reducer/constants.js +7 -4
  76. package/admin/src/pages/App/reducer/index.d.ts +9 -0
  77. package/admin/src/pages/App/reducer/index.js +24 -22
  78. package/admin/src/pages/App/reducer/init.d.ts +3 -0
  79. package/admin/src/pages/App/reducer/init.js +6 -4
  80. package/admin/src/pages/App/reducer/selectors.d.ts +6 -0
  81. package/admin/src/pages/App/reducer/selectors.js +17 -34
  82. package/admin/src/pages/App/utils/api.d.ts +2 -0
  83. package/admin/src/pages/App/utils/api.js +14 -11
  84. package/admin/src/pages/ComingSoonPage/index.d.ts +3 -0
  85. package/admin/src/pages/ComingSoonPage/index.js +42 -24
  86. package/admin/src/pages/Details/components/DetailsEntity/index.d.ts +18 -0
  87. package/admin/src/pages/Details/components/DetailsEntity/index.js +49 -77
  88. package/admin/src/pages/Details/components/DetailsFilters/index.d.ts +12 -0
  89. package/admin/src/pages/Details/components/DetailsFilters/index.js +19 -26
  90. package/admin/src/pages/Details/components/DetailsFilters/styles.d.ts +2 -0
  91. package/admin/src/pages/Details/components/DetailsFilters/styles.js +14 -8
  92. package/admin/src/pages/Details/index.d.ts +4 -0
  93. package/admin/src/pages/Details/index.js +94 -133
  94. package/admin/src/pages/Discover/components/DiscoverTableRow/index.d.ts +20 -0
  95. package/admin/src/pages/Discover/components/DiscoverTableRow/index.js +128 -139
  96. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +2 -0
  97. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +14 -8
  98. package/admin/src/pages/Discover/index.d.ts +4 -0
  99. package/admin/src/pages/Discover/index.js +129 -170
  100. package/admin/src/pages/Discover/utils/api.d.ts +2 -0
  101. package/admin/src/pages/Discover/utils/api.js +15 -13
  102. package/admin/src/pages/Discover/utils/filtersSchema.d.ts +11 -0
  103. package/admin/src/pages/Discover/utils/filtersSchema.js +8 -6
  104. package/admin/src/pages/Settings/components/RestartAlert/styles.d.ts +2 -0
  105. package/admin/src/pages/Settings/components/RestartAlert/styles.js +14 -8
  106. package/admin/src/pages/Settings/index.d.ts +3 -0
  107. package/admin/src/pages/Settings/index.js +225 -391
  108. package/admin/src/pages/Settings/utils/api.d.ts +7 -0
  109. package/admin/src/pages/Settings/utils/api.js +60 -55
  110. package/admin/src/pages/utils/api.d.ts +12 -0
  111. package/admin/src/pages/utils/api.js +58 -53
  112. package/admin/src/permissions.d.ts +28 -0
  113. package/admin/src/permissions.js +31 -17
  114. package/admin/src/pluginId.d.ts +2 -0
  115. package/admin/src/pluginId.js +29 -5
  116. package/admin/src/reducers.d.ts +7 -0
  117. package/admin/src/reducers.js +10 -6
  118. package/admin/src/translations/en.json +131 -130
  119. package/admin/src/translations/fr.json +1 -1
  120. package/admin/src/translations/pt-BR.json +132 -0
  121. package/admin/src/utils/axiosInstance.d.ts +3 -0
  122. package/admin/src/utils/axiosInstance.js +21 -27
  123. package/admin/src/utils/constants.d.ts +25 -0
  124. package/admin/src/utils/constants.js +23 -22
  125. package/admin/src/utils/getApiUrl.d.ts +3 -0
  126. package/admin/src/utils/getApiUrl.js +6 -5
  127. package/admin/src/utils/getMessage.d.ts +4 -0
  128. package/admin/src/utils/getMessage.js +15 -15
  129. package/admin/src/utils/getRelatedGroups.d.ts +4 -0
  130. package/admin/src/utils/getRelatedGroups.js +5 -3
  131. package/admin/src/utils/getUrl.d.ts +3 -0
  132. package/admin/src/utils/getUrl.js +6 -5
  133. package/admin/src/utils/handleAPIError.d.ts +4 -0
  134. package/admin/src/utils/handleAPIError.js +12 -11
  135. package/admin/src/utils/index.d.ts +12 -0
  136. package/admin/src/utils/index.js +29 -11
  137. package/admin/src/utils/parseRegExp.d.ts +6 -0
  138. package/admin/src/utils/parseRegExp.js +6 -5
  139. package/admin/src/utils/renderEntryTitle.d.ts +4 -0
  140. package/admin/src/utils/renderEntryTitle.js +11 -12
  141. package/admin/src/utils/renderInitials.d.ts +3 -0
  142. package/admin/src/utils/renderInitials.js +10 -5
  143. package/admin/src/utils/resolveCommentStatus.d.ts +4 -0
  144. package/admin/src/utils/resolveCommentStatus.js +17 -21
  145. package/admin/src/utils/resolveCommentStatusColor.d.ts +4 -0
  146. package/admin/src/utils/resolveCommentStatusColor.js +19 -19
  147. package/content-types/comment.d.ts +91 -0
  148. package/content-types/comment.js +87 -88
  149. package/content-types/index.d.ts +143 -0
  150. package/content-types/index.js +15 -10
  151. package/content-types/report.d.ts +48 -0
  152. package/content-types/report.js +44 -49
  153. package/package.json +24 -19
  154. package/permissions.d.ts +18 -0
  155. package/permissions.js +12 -13
  156. package/server/bootstrap.d.ts +4 -0
  157. package/server/bootstrap.js +56 -62
  158. package/server/config/index.d.ts +4 -0
  159. package/server/config/index.js +17 -15
  160. package/server/controllers/admin.d.ts +4 -0
  161. package/server/controllers/admin.js +134 -167
  162. package/server/controllers/client.d.ts +4 -0
  163. package/server/controllers/client.js +104 -115
  164. package/server/controllers/index.d.ts +6 -0
  165. package/server/controllers/index.js +12 -8
  166. package/server/controllers/utils/functions.d.ts +7 -0
  167. package/server/controllers/utils/functions.js +22 -17
  168. package/server/controllers/utils/parsers.d.ts +15 -0
  169. package/server/controllers/utils/parsers.js +17 -17
  170. package/server/destroy.d.ts +3 -0
  171. package/server/destroy.js +3 -4
  172. package/server/graphql/index.d.ts +4 -0
  173. package/server/graphql/index.js +27 -25
  174. package/server/graphql/mutations/createAbuseReport.d.ts +11 -0
  175. package/server/graphql/mutations/createAbuseReport.js +22 -24
  176. package/server/graphql/mutations/createComment.d.ts +14 -0
  177. package/server/graphql/mutations/createComment.js +22 -24
  178. package/server/graphql/mutations/index.d.ts +4 -0
  179. package/server/graphql/mutations/index.js +24 -19
  180. package/server/graphql/mutations/removeComment.d.ts +11 -0
  181. package/server/graphql/mutations/removeComment.js +22 -24
  182. package/server/graphql/mutations/updateComment.d.ts +11 -0
  183. package/server/graphql/mutations/updateComment.js +22 -24
  184. package/server/graphql/queries/findAllFlat.d.ts +19 -0
  185. package/server/graphql/queries/findAllFlat.js +31 -30
  186. package/server/graphql/queries/findAllInHierarchy.d.ts +18 -0
  187. package/server/graphql/queries/findAllInHierarchy.js +26 -30
  188. package/server/graphql/queries/index.d.ts +4 -0
  189. package/server/graphql/queries/index.js +20 -17
  190. package/server/graphql/resolvers-config.d.ts +23 -0
  191. package/server/graphql/resolvers-config.js +11 -11
  192. package/server/graphql/types/comment-author.d.ts +4 -0
  193. package/server/graphql/types/comment-author.js +10 -8
  194. package/server/graphql/types/comment-nested.d.ts +4 -0
  195. package/server/graphql/types/comment-nested.js +17 -15
  196. package/server/graphql/types/comment.d.ts +4 -0
  197. package/server/graphql/types/comment.js +16 -14
  198. package/server/graphql/types/create-comment-author.d.ts +4 -0
  199. package/server/graphql/types/create-comment-author.js +10 -8
  200. package/server/graphql/types/create-comment.d.ts +4 -0
  201. package/server/graphql/types/create-comment.js +10 -8
  202. package/server/graphql/types/create-report.d.ts +4 -0
  203. package/server/graphql/types/create-report.js +10 -8
  204. package/server/graphql/types/id.d.ts +4 -0
  205. package/server/graphql/types/id.js +24 -23
  206. package/server/graphql/types/identify-comment-author.d.ts +4 -0
  207. package/server/graphql/types/identify-comment-author.js +7 -5
  208. package/server/graphql/types/index.d.ts +4 -0
  209. package/server/graphql/types/index.js +36 -17
  210. package/server/graphql/types/remove-comment.d.ts +4 -0
  211. package/server/graphql/types/remove-comment.js +9 -7
  212. package/server/graphql/types/report-reason.d.ts +4 -0
  213. package/server/graphql/types/report-reason.js +10 -8
  214. package/server/graphql/types/report.d.ts +4 -0
  215. package/server/graphql/types/report.js +12 -10
  216. package/server/graphql/types/response-find-all.d.ts +4 -0
  217. package/server/graphql/types/response-find-all.js +8 -6
  218. package/server/graphql/types/response-meta.d.ts +4 -0
  219. package/server/graphql/types/response-meta.js +7 -5
  220. package/server/graphql/types/response-pagination.d.ts +4 -0
  221. package/server/graphql/types/response-pagination.js +12 -10
  222. package/server/graphql/types/update-comment.d.ts +4 -0
  223. package/server/graphql/types/update-comment.js +10 -8
  224. package/server/index.d.ts +26 -0
  225. package/server/index.js +24 -21
  226. package/server/register.d.ts +3 -0
  227. package/server/register.js +3 -4
  228. package/server/routes/admin.d.ts +4 -0
  229. package/server/routes/admin.js +103 -109
  230. package/server/routes/client.d.ts +4 -0
  231. package/server/routes/client.js +48 -46
  232. package/server/routes/index.d.ts +11 -0
  233. package/server/routes/index.js +18 -14
  234. package/server/services/admin.d.ts +5 -0
  235. package/server/services/admin.js +126 -158
  236. package/server/services/client.d.ts +5 -0
  237. package/server/services/client.js +135 -151
  238. package/server/services/common.d.ts +5 -0
  239. package/server/services/common.js +165 -194
  240. package/server/services/graphql.d.ts +5 -0
  241. package/server/services/graphql.js +117 -182
  242. package/server/services/index.d.ts +8 -0
  243. package/server/services/index.js +15 -12
  244. package/server/services/utils/functions.d.ts +13 -0
  245. package/server/services/utils/functions.js +100 -109
  246. package/server/utils/constants.d.ts +9 -0
  247. package/server/utils/constants.js +19 -23
  248. package/server/utils/error.d.ts +19 -0
  249. package/server/utils/error.js +23 -18
  250. package/server/utils/functions.d.ts +6 -0
  251. package/server/utils/functions.js +35 -18
  252. package/strapi-admin.d.ts +3 -0
  253. package/strapi-admin.js +8 -3
  254. package/strapi-server.d.ts +177 -0
  255. package/strapi-server.js +43 -46
  256. package/tsconfig.tsbuildinfo +1 -0
  257. package/types/contentTypes.d.ts +44 -0
  258. package/types/contentTypes.js +3 -0
  259. package/.husky/pre-commit +0 -4
  260. package/LICENSE.md +0 -7
  261. package/__mocks__/initSetup.js +0 -108
  262. package/jest.config.js +0 -7
  263. package/server/controllers/utils/__tests__/functions.test.js +0 -43
  264. package/server/controllers/utils/__tests__/parsers.test.js +0 -94
  265. package/server/services/__tests__/common.test.js +0 -399
  266. package/server/services/utils/__tests__/functions.test.js +0 -53
  267. package/server/utils/__tests__/functions.test.js +0 -17
@@ -1,113 +1,111 @@
1
- /**
2
- *
3
- * Entity Details
4
- *
5
- */
6
-
7
- import React, { useState } from 'react';
8
- import PropTypes from 'prop-types';
9
- import { useMutation, useQueryClient } from 'react-query';
10
- import { useHistory } from 'react-router-dom';
11
- import { isNil, isEmpty } from 'lodash';
12
- import { Flex } from '@strapi/design-system/Flex';
13
- import { IconButton } from '@strapi/design-system/IconButton';
14
- import { useNotification, useOverlayBlocker } from '@strapi/helper-plugin';
15
- import { Eye } from '@strapi/icons';
16
- import { getMessage, getUrl, handleAPIError, resolveCommentStatus, resolveCommentStatusColor } from '../../utils';
17
- import { DiscussionThreadItemActionsWrapper } from './styles';
18
- import ConfirmationDialog from '../ConfirmationDialog';
19
- import { blockItem, blockItemThread, unblockItem, unblockItemThread } from '../../pages/utils/api';
20
- import pluginId from '../../pluginId';
21
- import { LockIcon, UnlockIcon } from '../icons';
22
- import DiscussionThreadItemApprovalFlowActions from '../DiscussionThreadItemApprovalFlowActions';
23
- import StatusBadge from '../StatusBadge';
24
- import { IconButtonGroupStyled } from '../IconButton/styles';
25
- import { ActionButton } from '../ActionButton/styles';
26
- import DiscussionThreadItemReviewAction from '../DiscussionThreadItemReviewAction';
27
-
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const prop_types_1 = __importDefault(require("prop-types"));
31
+ const react_query_1 = require("react-query");
32
+ const react_router_dom_1 = require("react-router-dom");
33
+ const lodash_1 = require("lodash");
34
+ const Flex_1 = require("@strapi/design-system/Flex");
35
+ const IconButton_1 = require("@strapi/design-system/IconButton");
36
+ const helper_plugin_1 = require("@strapi/helper-plugin");
37
+ const icons_1 = require("@strapi/icons");
38
+ const utils_1 = require("../../utils");
39
+ const styles_1 = require("./styles");
40
+ const ConfirmationDialog_1 = __importDefault(require("../ConfirmationDialog"));
41
+ const api_1 = require("../../pages/utils/api");
42
+ const pluginId_1 = require("../../pluginId");
43
+ const icons_2 = require("../icons");
44
+ const DiscussionThreadItemApprovalFlowActions_1 = __importDefault(require("../DiscussionThreadItemApprovalFlowActions"));
45
+ const StatusBadge_1 = __importDefault(require("../StatusBadge"));
46
+ const styles_2 = require("../IconButton/styles");
47
+ const styles_3 = require("../ActionButton/styles");
48
+ const DiscussionThreadItemReviewAction_1 = __importDefault(require("../DiscussionThreadItemReviewAction"));
28
49
  const DiscussionThreadItemActions = ({ allowedActions: { canModerate, canAccessReports, canReviewReports }, ...item }) => {
29
- const { id,
30
- blocked,
31
- removed,
32
- blockedThread,
33
- gotThread,
34
- threadItemsCount,
35
- threadFirstItemId,
36
- pinned,
37
- preview,
38
- reports = [],
39
- approvalStatus } = item;
40
-
41
- const [blockConfirmationVisible, setBlockConfirmationVisible] = useState(false);
42
- const [blockThreadConfirmationVisible, setBlockThreadConfirmationVisible] = useState(false);
43
- const [blockButtonsDisabled, setBlockButtonsDisabled] = useState(blockedThread);
44
-
45
- const { push } = useHistory();
46
- const toggleNotification = useNotification();
47
- const queryClient = useQueryClient();
48
- const { lockApp, unlockApp } = useOverlayBlocker();
49
-
50
- const onSuccess = (message, stateAction = () => {}) => async () => {
51
- await queryClient.invalidateQueries('get-details-data');
50
+ const { id, blocked, removed, blockedThread, gotThread, threadItemsCount, threadFirstItemId, pinned, preview, reports = [], approvalStatus, } = item;
51
+ const [blockConfirmationVisible, setBlockConfirmationVisible] = (0, react_1.useState)(false);
52
+ const [blockThreadConfirmationVisible, setBlockThreadConfirmationVisible] = (0, react_1.useState)(false);
53
+ const [blockButtonsDisabled, setBlockButtonsDisabled] = (0, react_1.useState)(blockedThread);
54
+ const { push } = (0, react_router_dom_1.useHistory)();
55
+ const toggleNotification = (0, helper_plugin_1.useNotification)();
56
+ const queryClient = (0, react_query_1.useQueryClient)();
57
+ const { lockApp, unlockApp } = (0, helper_plugin_1.useOverlayBlocker)();
58
+ const onSuccess = (message, stateAction = () => { }) => async () => {
59
+ await queryClient.invalidateQueries("get-details-data");
52
60
  toggleNotification({
53
- type: 'success',
54
- message: `${pluginId}.${message}`,
61
+ type: "success",
62
+ message: `${pluginId_1.pluginId}.${message}`,
55
63
  });
56
64
  stateAction(false);
57
65
  unlockApp();
58
66
  };
59
-
60
- const onError = err => { handleAPIError(err, toggleNotification); };
61
-
62
- const blockItemMutation = useMutation(blockItem, {
63
- onSuccess: onSuccess(
64
- 'page.details.actions.comment.block.confirmation.success',
65
- setBlockConfirmationVisible
66
- ),
67
+ const onError = (err) => {
68
+ (0, utils_1.handleAPIError)(err, toggleNotification);
69
+ };
70
+ const blockItemMutation = (0, react_query_1.useMutation)(api_1.blockItem, {
71
+ onSuccess: onSuccess("page.details.actions.comment.block.confirmation.success", setBlockConfirmationVisible),
67
72
  onError,
68
73
  refetchActive: false,
69
74
  });
70
- const unblockItemMutation = useMutation(unblockItem, {
71
- onSuccess: onSuccess('page.details.actions.comment.unblock.confirmation.success'),
75
+ const unblockItemMutation = (0, react_query_1.useMutation)(api_1.unblockItem, {
76
+ onSuccess: onSuccess("page.details.actions.comment.unblock.confirmation.success"),
72
77
  onError,
73
78
  refetchActive: false,
74
79
  });
75
- const blockItemThreadMutation = useMutation(blockItemThread, {
76
- onSuccess: onSuccess(
77
- 'page.details.actions.thread.block.confirmation.success',
78
- setBlockThreadConfirmationVisible
79
- ),
80
+ const blockItemThreadMutation = (0, react_query_1.useMutation)(api_1.blockItemThread, {
81
+ onSuccess: onSuccess("page.details.actions.thread.block.confirmation.success", setBlockThreadConfirmationVisible),
80
82
  onError,
81
83
  refetchActive: false,
82
84
  });
83
- const unblockItemThreadMutation = useMutation(unblockItemThread, {
84
- onSuccess: onSuccess('page.details.actions.thread.unblock.confirmation.success'),
85
+ const unblockItemThreadMutation = (0, react_query_1.useMutation)(api_1.unblockItemThread, {
86
+ onSuccess: onSuccess("page.details.actions.thread.unblock.confirmation.success"),
85
87
  onError,
86
88
  refetchActive: false,
87
89
  });
88
-
89
- const gotApprovalFlow = !isNil(approvalStatus);
90
- const needsApproval = gotApprovalFlow && (approvalStatus === 'PENDING');
90
+ const gotApprovalFlow = !(0, lodash_1.isNil)(approvalStatus);
91
+ const needsApproval = gotApprovalFlow && approvalStatus === "PENDING";
91
92
  const isBlocked = blocked || blockedThread;
92
- const isRejected = gotApprovalFlow && (approvalStatus === 'REJECTED');
93
- const openReports = reports?.filter(_ => !_.resolved);
94
- const hasReports = !isEmpty(openReports);
93
+ const isRejected = gotApprovalFlow && approvalStatus === "REJECTED";
94
+ const openReports = reports?.filter((_) => !_.resolved);
95
+ const hasReports = !(0, lodash_1.isEmpty)(openReports);
95
96
  const reviewFlowEnabled = (canAccessReports || canReviewReports) && hasReports;
96
97
  const hasActiveThread = gotThread && !(removed || preview || pinned || blockedThread);
97
98
  const isStatusBadgeVisible = isBlocked || reviewFlowEnabled;
98
-
99
99
  const renderStatus = (props) => {
100
- const status = resolveCommentStatus({ ...props, reviewFlowEnabled });
101
- const color = resolveCommentStatusColor(status);
102
-
103
- return (<StatusBadge backgroundColor={`${color}100`} textColor={`${color}700`} color={color}>{ getMessage({
100
+ const status = (0, utils_1.resolveCommentStatus)({ ...props, reviewFlowEnabled });
101
+ const color = (0, utils_1.resolveCommentStatusColor)(status);
102
+ return (react_1.default.createElement(StatusBadge_1.default, { backgroundColor: `${color}100`, textColor: `${color}700`, color: color }, (0, utils_1.getMessage)({
104
103
  id: `page.common.item.status.${status}`,
105
104
  props: {
106
- count: openReports.length
107
- }
108
- }, status) }</StatusBadge>);
109
- };
110
-
105
+ count: openReports.length,
106
+ },
107
+ }, status)));
108
+ };
111
109
  const handleBlockClick = () => setBlockConfirmationVisible(true);
112
110
  const handleBlockConfirm = async () => {
113
111
  if (canModerate) {
@@ -124,7 +122,6 @@ const DiscussionThreadItemActions = ({ allowedActions: { canModerate, canAccessR
124
122
  unblockItemMutation.mutate(id);
125
123
  }
126
124
  };
127
-
128
125
  const handleBlockThreadClick = () => setBlockThreadConfirmationVisible(true);
129
126
  const handleBlockThreadConfirm = async () => {
130
127
  if (canModerate) {
@@ -141,91 +138,57 @@ const DiscussionThreadItemActions = ({ allowedActions: { canModerate, canAccessR
141
138
  unblockItemThreadMutation.mutate(id);
142
139
  }
143
140
  };
144
-
145
141
  const handleDrilldownClick = () => {
146
142
  if (hasActiveThread) {
147
- push(getUrl(`discover/${threadFirstItemId}`));
143
+ push((0, utils_1.getUrl)(`discover/${threadFirstItemId}`));
148
144
  }
149
145
  };
150
-
151
146
  const handleBlockActionClick = async (mutation, onCallback) => {
152
147
  lockApp();
153
148
  await mutation.mutateAsync(id);
154
149
  onCallback();
155
150
  };
156
-
157
- const handleBlockButtonsStateChange = disabled => setBlockButtonsDisabled(disabled);
158
-
151
+ const handleBlockButtonsStateChange = (disabled) => setBlockButtonsDisabled(disabled);
159
152
  const anyGroupButtonsVisible = needsApproval || reviewFlowEnabled || !blockedThread;
160
- const isLoading = unblockItemMutation.isLoading || blockItemMutation.isLoading || blockItemThreadMutation.isLoading || unblockItemThreadMutation.isLoading;
161
-
153
+ const isLoading = unblockItemMutation.isLoading ||
154
+ blockItemMutation.isLoading ||
155
+ blockItemThreadMutation.isLoading ||
156
+ unblockItemThreadMutation.isLoading;
162
157
  if (removed || isRejected || !canModerate) {
163
- return (<DiscussionThreadItemActionsWrapper as={Flex} direction="row">
164
- { renderStatus(item) }
165
- </DiscussionThreadItemActionsWrapper>);
158
+ return (react_1.default.createElement(styles_1.DiscussionThreadItemActionsWrapper, { as: Flex_1.Flex, direction: "row" }, renderStatus(item)));
166
159
  }
167
-
168
- return (<>
169
- <DiscussionThreadItemActionsWrapper as={Flex} direction="row">
170
- { isStatusBadgeVisible && (renderStatus(item))}
171
- { (!blockedThread && (gotThread || pinned)) && (<ActionButton onClick={handleBlockThreadClick} startIcon={<LockIcon />} loading={blockItemThreadMutation.isLoading} variant="danger">{ getMessage('page.details.actions.thread.block', 'Block thread') }</ActionButton>) }
172
- { (blockedThread && (gotThread || pinned)) && (<ActionButton onClick={handleUnblockThreadClick} startIcon={<UnlockIcon />} loading={unblockItemThreadMutation.isLoading} variant="success">{ getMessage('page.details.actions.thread.unblock', 'Unblock thread') }</ActionButton>) }
173
- { anyGroupButtonsVisible && (<IconButtonGroupStyled isSingle withMargin>
174
- { !blockedThread && !(blocked || needsApproval) && (<IconButton onClick={handleBlockClick} loading={blockItemMutation.isLoading} icon={<LockIcon />} label={getMessage('page.details.actions.comment.block', 'Block')} />)}
175
- { !blockedThread && blocked && (<IconButton onClick={handleUnblockClick} loading={unblockItemMutation.isLoading} icon={<UnlockIcon />} label={getMessage('page.details.actions.comment.unblock', 'Unblock')} />)}
176
- { needsApproval && (<DiscussionThreadItemApprovalFlowActions id={id} allowedActions={{ canModerate }} queryToInvalidate="get-details-data" />) }
177
- <DiscussionThreadItemReviewAction
178
- item={item}
179
- queryToInvalidate="get-details-data"
180
- areBlockButtonsDisabled={blockButtonsDisabled}
181
- isLoading={isLoading}
182
- allowedActions={{ canModerate, canAccessReports, canReviewReports }}
183
- blockItemMutation={blockItemMutation}
184
- blockItemThreadMutation={blockItemThreadMutation}
185
- onBlockButtonsStateChange={handleBlockButtonsStateChange}
186
- onBlockActionClick={handleBlockActionClick}
187
- />
188
- </IconButtonGroupStyled>)}
189
- { hasActiveThread && (<IconButtonGroupStyled isSingle withMargin>
190
- <IconButton
191
- onClick={handleDrilldownClick}
192
- icon={<Eye />}
193
- label={getMessage('page.details.panel.discussion.nav.drilldown', 'Drilldown thread')}
194
- style={(blocked && !blockedThread) ? { marginTop: '1px', marginRight: '.5rem' } : {}} />
195
- </IconButtonGroupStyled>) }
196
- </DiscussionThreadItemActionsWrapper>
197
- { !blocked && (<ConfirmationDialog
198
- isVisible={blockConfirmationVisible}
199
- isActionAsync={blockItemMutation.isLoading}
200
- header={getMessage('page.details.actions.comment.block.confirmation.header')}
201
- labelConfirm={getMessage('page.details.actions.comment.block.confirmation.button.confirm')}
202
- iconConfirm={<LockIcon />}
203
- onConfirm={handleBlockConfirm}
204
- onCancel={handleBlockCancel}>
205
- { getMessage('page.details.actions.comment.block.confirmation.description') }
206
- </ConfirmationDialog>) }
207
- { !blockedThread && (<ConfirmationDialog
208
- isVisible={blockThreadConfirmationVisible}
209
- isActionAsync={blockItemThreadMutation.isLoading}
210
- header={getMessage('page.details.actions.thread.block.confirmation.header')}
211
- labelConfirm={getMessage('page.details.actions.thread.block.confirmation.button.confirm')}
212
- iconConfirm={<LockIcon />}
213
- onConfirm={handleBlockThreadConfirm}
214
- onCancel={handleBlockThreadCancel}>
215
- { getMessage('page.details.actions.thread.block.confirmation.description') }
216
- </ConfirmationDialog>) }
217
- </>);
160
+ return (react_1.default.createElement(react_1.default.Fragment, null,
161
+ react_1.default.createElement(styles_1.DiscussionThreadItemActionsWrapper, { as: Flex_1.Flex, direction: "row" },
162
+ isStatusBadgeVisible && renderStatus(item),
163
+ !blockedThread && (gotThread || pinned) && (react_1.default.createElement(styles_3.ActionButton, { onClick: handleBlockThreadClick, startIcon: react_1.default.createElement(icons_2.LockIcon, null), loading: blockItemThreadMutation.isLoading, variant: "danger" }, (0, utils_1.getMessage)("page.details.actions.thread.block", "Block thread"))),
164
+ blockedThread && (gotThread || pinned) && (react_1.default.createElement(styles_3.ActionButton, { onClick: handleUnblockThreadClick, startIcon: react_1.default.createElement(icons_2.UnlockIcon, null), loading: unblockItemThreadMutation.isLoading, variant: "success" }, (0, utils_1.getMessage)("page.details.actions.thread.unblock", "Unblock thread"))),
165
+ anyGroupButtonsVisible && (react_1.default.createElement(styles_2.IconButtonGroupStyled, { isSingle: true, withMargin: true },
166
+ !blockedThread && !(blocked || needsApproval) && (react_1.default.createElement(IconButton_1.IconButton, { onClick: handleBlockClick, loading: blockItemMutation.isLoading, icon: react_1.default.createElement(icons_2.LockIcon, null), label: (0, utils_1.getMessage)("page.details.actions.comment.block", "Block") })),
167
+ !blockedThread && blocked && (react_1.default.createElement(IconButton_1.IconButton, { onClick: handleUnblockClick, loading: unblockItemMutation.isLoading, icon: react_1.default.createElement(icons_2.UnlockIcon, null), label: (0, utils_1.getMessage)("page.details.actions.comment.unblock", "Unblock") })),
168
+ needsApproval && (react_1.default.createElement(DiscussionThreadItemApprovalFlowActions_1.default, { id: id, allowedActions: { canModerate }, queryToInvalidate: "get-details-data" })),
169
+ react_1.default.createElement(DiscussionThreadItemReviewAction_1.default, { item: item, queryToInvalidate: "get-details-data", areBlockButtonsDisabled: blockButtonsDisabled, isLoading: isLoading, allowedActions: {
170
+ canModerate,
171
+ canAccessReports,
172
+ canReviewReports,
173
+ }, blockItemMutation: blockItemMutation, blockItemThreadMutation: blockItemThreadMutation, onBlockButtonsStateChange: handleBlockButtonsStateChange, onBlockActionClick: handleBlockActionClick }))),
174
+ hasActiveThread && (react_1.default.createElement(styles_2.IconButtonGroupStyled, { isSingle: true, withMargin: true },
175
+ react_1.default.createElement(IconButton_1.IconButton, { onClick: handleDrilldownClick, icon: react_1.default.createElement(icons_1.Eye, null), label: (0, utils_1.getMessage)("page.details.panel.discussion.nav.drilldown", "Drilldown thread"), style: blocked && !blockedThread
176
+ ? { marginTop: "1px", marginRight: ".5rem" }
177
+ : {} })))),
178
+ !blocked && (react_1.default.createElement(ConfirmationDialog_1.default, { isVisible: blockConfirmationVisible, isActionAsync: blockItemMutation.isLoading, header: (0, utils_1.getMessage)("page.details.actions.comment.block.confirmation.header"), labelConfirm: (0, utils_1.getMessage)("page.details.actions.comment.block.confirmation.button.confirm"), iconConfirm: react_1.default.createElement(icons_2.LockIcon, null), onConfirm: handleBlockConfirm, onCancel: handleBlockCancel }, (0, utils_1.getMessage)("page.details.actions.comment.block.confirmation.description"))),
179
+ !blockedThread && (react_1.default.createElement(ConfirmationDialog_1.default, { isVisible: blockThreadConfirmationVisible, isActionAsync: blockItemThreadMutation.isLoading, header: (0, utils_1.getMessage)("page.details.actions.thread.block.confirmation.header"), labelConfirm: (0, utils_1.getMessage)("page.details.actions.thread.block.confirmation.button.confirm"), iconConfirm: react_1.default.createElement(icons_2.LockIcon, null), onConfirm: handleBlockThreadConfirm, onCancel: handleBlockThreadCancel }, (0, utils_1.getMessage)("page.details.actions.thread.block.confirmation.description")))));
218
180
  };
219
-
220
181
  DiscussionThreadItemActions.propTypes = {
221
- isRoot: PropTypes.bool,
222
- blocked: PropTypes.bool.isRequired,
223
- blockedThread: PropTypes.bool.isRequired,
224
- approvalStatus: PropTypes.oneOfType([PropTypes.nullable, PropTypes.oneOf(['PENDING', 'APPROVED', 'REJECTED'])]),
225
- allowedActions: PropTypes.shape({
226
- canModerate: PropTypes.bool,
182
+ isRoot: prop_types_1.default.bool,
183
+ blocked: prop_types_1.default.bool.isRequired,
184
+ blockedThread: prop_types_1.default.bool.isRequired,
185
+ approvalStatus: prop_types_1.default.oneOfType([
186
+ prop_types_1.default.nullable,
187
+ prop_types_1.default.oneOf(["PENDING", "APPROVED", "REJECTED"]),
188
+ ]),
189
+ allowedActions: prop_types_1.default.shape({
190
+ canModerate: prop_types_1.default.bool,
227
191
  }),
228
192
  };
229
-
230
- export default DiscussionThreadItemActions;
231
-
193
+ exports.default = DiscussionThreadItemActions;
194
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export declare const DiscussionThreadItemActionsWrapper: any;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -1,7 +1,13 @@
1
- import styled from 'styled-components';
2
- import { Box } from '@strapi/design-system/Box';
3
-
4
- export const DiscussionThreadItemActionsWrapper = styled(Box)`
5
- margin-left: 1rem;
6
- align-items: flex-start;
7
- `;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DiscussionThreadItemActionsWrapper = void 0;
7
+ const styled_components_1 = __importDefault(require("styled-components"));
8
+ const Box_1 = require("@strapi/design-system/Box");
9
+ exports.DiscussionThreadItemActionsWrapper = (0, styled_components_1.default)(Box_1.Box) `
10
+ margin-left: 1rem;
11
+ align-items: flex-start;
12
+ `;
13
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,17 @@
1
+ declare const DiscussionThreadItemApprovalFlowActions: {
2
+ ({ id, allowedActions: { canModerate }, queryToInvalidate, }: {
3
+ id: any;
4
+ allowedActions: {
5
+ canModerate: any;
6
+ };
7
+ queryToInvalidate: any;
8
+ }): any;
9
+ propTypes: {
10
+ id: any;
11
+ queryToInvalidate: any;
12
+ allowedActions: any;
13
+ wrapped: any;
14
+ };
15
+ };
16
+ export default DiscussionThreadItemApprovalFlowActions;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -1,80 +1,70 @@
1
- /**
2
- *
3
- * Approval Flow Actions
4
- *
5
- */
6
-
7
- import React from 'react';
8
- import PropTypes from 'prop-types';
9
- import { useMutation, useQueryClient } from 'react-query';
10
- import { IconButton } from '@strapi/design-system/IconButton';
11
- import { Check, Cross } from '@strapi/icons';
12
- import { useNotification, useOverlayBlocker } from '@strapi/helper-plugin';
13
- import { getMessage, handleAPIError } from '../../utils';
14
- import { approveItem, rejectItem } from '../../pages/utils/api';
15
- import pluginId from '../../pluginId';
16
-
17
- const DiscussionThreadItemApprovalFlowActions = ({ id, allowedActions: { canModerate }, queryToInvalidate }) => {
18
-
19
- const toggleNotification = useNotification();
20
- const queryClient = useQueryClient();
21
- const { lockApp, unlockApp } = useOverlayBlocker();
22
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const prop_types_1 = __importDefault(require("prop-types"));
8
+ const react_query_1 = require("react-query");
9
+ const IconButton_1 = require("@strapi/design-system/IconButton");
10
+ const icons_1 = require("@strapi/icons");
11
+ const helper_plugin_1 = require("@strapi/helper-plugin");
12
+ const utils_1 = require("../../utils");
13
+ const api_1 = require("../../pages/utils/api");
14
+ const pluginId_1 = require("../../pluginId");
15
+ const DiscussionThreadItemApprovalFlowActions = ({ id, allowedActions: { canModerate }, queryToInvalidate, }) => {
16
+ const toggleNotification = (0, helper_plugin_1.useNotification)();
17
+ const queryClient = (0, react_query_1.useQueryClient)();
18
+ const { lockApp, unlockApp } = (0, helper_plugin_1.useOverlayBlocker)();
23
19
  const onSuccess = (message) => async () => {
24
20
  if (queryToInvalidate) {
25
21
  await queryClient.invalidateQueries(queryToInvalidate);
26
22
  }
27
23
  toggleNotification({
28
- type: 'success',
29
- message: `${pluginId}.${message}`,
24
+ type: "success",
25
+ message: `${pluginId_1.pluginId}.${message}`,
30
26
  });
31
27
  unlockApp();
32
28
  };
33
-
34
- const onError = err => { handleAPIError(err, toggleNotification); };
35
-
36
- const approveItemMutation = useMutation(approveItem, {
37
- onSuccess: onSuccess('page.details.actions.comment.approve.confirmation.success'),
29
+ const onError = (err) => {
30
+ (0, utils_1.handleAPIError)(err, toggleNotification);
31
+ };
32
+ const approveItemMutation = (0, react_query_1.useMutation)(api_1.approveItem, {
33
+ onSuccess: onSuccess("page.details.actions.comment.approve.confirmation.success"),
38
34
  onError,
39
35
  refetchActive: false,
40
36
  });
41
- const rejectItemMutation = useMutation(rejectItem, {
42
- onSuccess: onSuccess('page.details.actions.comment.reject.confirmation.success'),
37
+ const rejectItemMutation = (0, react_query_1.useMutation)(api_1.rejectItem, {
38
+ onSuccess: onSuccess("page.details.actions.comment.reject.confirmation.success"),
43
39
  onError,
44
40
  refetchActive: false,
45
41
  });
46
-
47
42
  const handleApproveClick = () => {
48
43
  if (canModerate) {
49
44
  lockApp();
50
45
  approveItemMutation.mutate(id);
51
46
  }
52
47
  };
53
-
54
48
  const handleRejectClick = () => {
55
49
  if (canModerate) {
56
50
  lockApp();
57
51
  rejectItemMutation.mutate(id);
58
52
  }
59
53
  };
60
-
61
54
  if (canModerate) {
62
- return (<>
63
- <IconButton icon={<Check />} label={getMessage('page.details.actions.comment.approve', 'Approve')} onClick={handleApproveClick} />
64
- <IconButton icon={<Cross />} label={getMessage('page.details.actions.comment.reject', 'Reject')} onClick={handleRejectClick} />
65
- </>);
66
- }
55
+ return (react_1.default.createElement(react_1.default.Fragment, null,
56
+ react_1.default.createElement(IconButton_1.IconButton, { icon: react_1.default.createElement(icons_1.Check, null), label: (0, utils_1.getMessage)("page.details.actions.comment.approve", "Approve"), onClick: handleApproveClick }),
57
+ react_1.default.createElement(IconButton_1.IconButton, { icon: react_1.default.createElement(icons_1.Cross, null), label: (0, utils_1.getMessage)("page.details.actions.comment.reject", "Reject"), onClick: handleRejectClick })));
58
+ }
67
59
  return null;
68
60
  };
69
-
70
61
  DiscussionThreadItemApprovalFlowActions.propTypes = {
71
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
72
- queryToInvalidate: PropTypes.string,
73
- allowedActions: PropTypes.shape({
74
- canModerate: PropTypes.bool,
62
+ id: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]).isRequired,
63
+ queryToInvalidate: prop_types_1.default.string,
64
+ allowedActions: prop_types_1.default.shape({
65
+ canModerate: prop_types_1.default.bool,
75
66
  }),
76
- wrapped: PropTypes.bool,
67
+ wrapped: prop_types_1.default.bool,
77
68
  };
78
-
79
- export default DiscussionThreadItemApprovalFlowActions;
80
-
69
+ exports.default = DiscussionThreadItemApprovalFlowActions;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export declare const DiscussionThreadItemActionsGroupWrapper: any;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -1,6 +1,12 @@
1
- import styled from 'styled-components';
2
- import { IconButtonGroup } from '@strapi/design-system/IconButton';
3
-
4
- export const DiscussionThreadItemActionsGroupWrapper = styled(IconButtonGroup)`
5
- margin-left: .5rem;
6
- `;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DiscussionThreadItemActionsGroupWrapper = void 0;
7
+ const styled_components_1 = __importDefault(require("styled-components"));
8
+ const IconButton_1 = require("@strapi/design-system/IconButton");
9
+ exports.DiscussionThreadItemActionsGroupWrapper = (0, styled_components_1.default)(IconButton_1.IconButtonGroup) `
10
+ margin-left: 0.5rem;
11
+ `;
12
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1,16 @@
1
+ declare const DiscussionThreadItemFooter: {
2
+ ({ children, author, createdAt, updatedAt, }: {
3
+ children: any;
4
+ author: any;
5
+ createdAt: any;
6
+ updatedAt: any;
7
+ }): any;
8
+ propTypes: {
9
+ author: any;
10
+ createdAt: any;
11
+ updatedAt: any;
12
+ children: any;
13
+ };
14
+ };
15
+ export default DiscussionThreadItemFooter;
16
+ //# sourceMappingURL=index.d.ts.map