strapi-plugin-comments 2.0.11 → 2.1.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 (443) hide show
  1. package/README.md +165 -119
  2. package/admin/src/components/ActionButton/styles.ts +11 -0
  3. package/admin/src/components/Avatar/index.tsx +31 -0
  4. package/admin/src/components/ConfirmationDialog/index.tsx +88 -0
  5. package/admin/src/components/DiscussionStatus/index.tsx +36 -0
  6. package/admin/src/components/DiscussionThread/index.tsx +97 -0
  7. package/admin/src/components/DiscussionThreadItem/index.tsx +71 -0
  8. package/admin/src/components/DiscussionThreadItem/{styles.js → styles.ts} +8 -6
  9. package/admin/src/components/DiscussionThreadItemActions/index.tsx +365 -0
  10. package/admin/src/components/DiscussionThreadItemActions/styles.ts +9 -0
  11. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.tsx +99 -0
  12. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.ts +8 -0
  13. package/admin/src/components/DiscussionThreadItemFooter/index.tsx +62 -0
  14. package/admin/src/components/DiscussionThreadItemFooter/styles.ts +15 -0
  15. package/admin/src/components/DiscussionThreadItemReviewAction/index.tsx +180 -0
  16. package/admin/src/components/FormSwitch/index.tsx +35 -0
  17. package/admin/src/components/FormSwitch/styles.ts +10 -0
  18. package/admin/src/components/IconButton/styles.ts +19 -0
  19. package/admin/src/components/Initializer/{index.js → index.tsx} +8 -6
  20. package/admin/src/components/LoadingIndicatorOverlay/index.tsx +19 -0
  21. package/admin/src/components/LoadingIndicatorOverlay/styles.ts +21 -0
  22. package/admin/src/components/Nav/index.tsx +61 -0
  23. package/admin/src/components/PluginIcon/{index.js → index.tsx} +4 -2
  24. package/admin/src/components/ReportsReviewModal/index.tsx +71 -0
  25. package/admin/src/components/ReportsReviewTable/index.tsx +233 -0
  26. package/admin/src/components/StatusBadge/index.tsx +21 -0
  27. package/admin/src/components/StatusBadge/styles.ts +19 -0
  28. package/admin/src/components/TableFilters/{index.js → index.tsx} +14 -9
  29. package/admin/src/components/TablePagination/{index.js → index.tsx} +8 -6
  30. package/admin/src/components/icons/comments.tsx +15 -0
  31. package/admin/src/components/icons/index.ts +6 -0
  32. package/admin/src/components/icons/{lock.js → lock.tsx} +17 -12
  33. package/admin/src/components/icons/review.tsx +25 -0
  34. package/admin/src/components/icons/unlock.tsx +25 -0
  35. package/admin/src/hooks/useConfig.ts +58 -0
  36. package/admin/src/{index.js → index.ts} +26 -22
  37. package/admin/src/pages/App/index.tsx +67 -0
  38. package/admin/src/pages/App/reducer/actions.ts +10 -0
  39. package/admin/src/pages/App/reducer/constants.ts +4 -0
  40. package/admin/src/pages/App/reducer/{index.js → index.ts} +8 -6
  41. package/admin/src/pages/App/reducer/init.ts +9 -0
  42. package/admin/src/pages/App/reducer/selectors.ts +32 -0
  43. package/admin/src/pages/App/utils/{api.js → api.ts} +3 -1
  44. package/admin/src/pages/ComingSoonPage/index.tsx +31 -0
  45. package/admin/src/pages/Details/components/DetailsEntity/index.tsx +106 -0
  46. package/admin/src/pages/Details/components/DetailsFilters/index.tsx +43 -0
  47. package/admin/src/pages/Details/components/DetailsFilters/styles.ts +9 -0
  48. package/admin/src/pages/Details/index.tsx +169 -0
  49. package/admin/src/pages/Discover/components/DiscoverTableRow/index.tsx +252 -0
  50. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.ts +9 -0
  51. package/admin/src/pages/Discover/index.tsx +230 -0
  52. package/admin/src/pages/Discover/utils/api.ts +22 -0
  53. package/admin/src/pages/Discover/utils/filtersSchema.ts +9 -0
  54. package/admin/src/pages/Settings/components/RestartAlert/styles.ts +10 -0
  55. package/admin/src/pages/Settings/index.tsx +602 -0
  56. package/admin/src/pages/Settings/utils/{api.js → api.ts} +16 -5
  57. package/admin/src/pages/utils/api.ts +70 -0
  58. package/admin/src/permissions.ts +30 -0
  59. package/admin/src/pluginId.ts +3 -0
  60. package/admin/src/reducers.ts +8 -0
  61. package/admin/src/translations/en.json +131 -131
  62. package/admin/src/translations/pt-BR.json +130 -130
  63. package/admin/src/utils/{axiosInstance.js → axiosInstance.ts} +12 -9
  64. package/admin/src/utils/constants.ts +25 -0
  65. package/admin/src/utils/getApiUrl.ts +5 -0
  66. package/admin/src/utils/getMessage.ts +29 -0
  67. package/admin/src/utils/getRelatedGroups.ts +6 -0
  68. package/admin/src/utils/getUrl.ts +5 -0
  69. package/admin/src/utils/handleAPIError.ts +21 -0
  70. package/admin/src/utils/index.ts +11 -0
  71. package/admin/src/utils/parseRegExp.ts +9 -0
  72. package/admin/src/utils/renderEntryTitle.ts +16 -0
  73. package/admin/src/utils/renderInitials.ts +10 -0
  74. package/admin/src/utils/resolveCommentStatus.ts +37 -0
  75. package/admin/src/utils/resolveCommentStatusColor.ts +22 -0
  76. package/build/README.md +41 -5
  77. package/build/admin/src/components/ActionButton/styles.d.ts +1 -1
  78. package/build/admin/src/components/ActionButton/styles.js +5 -7
  79. package/build/admin/src/components/Avatar/index.d.ts +12 -0
  80. package/build/admin/src/components/Avatar/index.js +26 -0
  81. package/build/admin/src/components/ConfirmationDialog/index.js +23 -90
  82. package/build/admin/src/components/DiscussionStatus/index.js +13 -27
  83. package/build/admin/src/components/DiscussionThread/index.js +29 -83
  84. package/build/admin/src/components/DiscussionThreadItem/index.js +20 -59
  85. package/build/admin/src/components/DiscussionThreadItem/styles.d.ts +1 -1
  86. package/build/admin/src/components/DiscussionThreadItem/styles.js +8 -17
  87. package/build/admin/src/components/DiscussionThreadItemActions/index.js +163 -383
  88. package/build/admin/src/components/DiscussionThreadItemActions/styles.d.ts +1 -1
  89. package/build/admin/src/components/DiscussionThreadItemActions/styles.js +5 -9
  90. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +52 -85
  91. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +1 -1
  92. package/build/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +5 -8
  93. package/build/admin/src/components/DiscussionThreadItemFooter/index.js +27 -61
  94. package/build/admin/src/components/DiscussionThreadItemFooter/styles.d.ts +1 -1
  95. package/build/admin/src/components/DiscussionThreadItemFooter/styles.js +7 -14
  96. package/build/admin/src/components/DiscussionThreadItemReviewAction/index.js +91 -207
  97. package/build/admin/src/components/FormSwitch/index.d.ts +5 -9
  98. package/build/admin/src/components/FormSwitch/index.js +8 -32
  99. package/build/admin/src/components/FormSwitch/styles.d.ts +1 -1
  100. package/build/admin/src/components/FormSwitch/styles.js +5 -7
  101. package/build/admin/src/components/IconButton/styles.d.ts +1 -1
  102. package/build/admin/src/components/IconButton/styles.js +7 -13
  103. package/build/admin/src/components/Initializer/index.d.ts +4 -2
  104. package/build/admin/src/components/Initializer/index.js +7 -7
  105. package/build/admin/src/components/LoadingIndicatorOverlay/index.d.ts +1 -1
  106. package/build/admin/src/components/LoadingIndicatorOverlay/index.js +6 -12
  107. package/build/admin/src/components/LoadingIndicatorOverlay/styles.d.ts +1 -1
  108. package/build/admin/src/components/LoadingIndicatorOverlay/styles.js +7 -14
  109. package/build/admin/src/components/Nav/index.js +16 -62
  110. package/build/admin/src/components/PluginIcon/index.d.ts +1 -1
  111. package/build/admin/src/components/PluginIcon/index.js +5 -8
  112. package/build/admin/src/components/ReportsReviewModal/index.js +23 -62
  113. package/build/admin/src/components/ReportsReviewTable/index.js +112 -293
  114. package/build/admin/src/components/StatusBadge/index.d.ts +5 -9
  115. package/build/admin/src/components/StatusBadge/index.js +6 -16
  116. package/build/admin/src/components/StatusBadge/styles.d.ts +1 -1
  117. package/build/admin/src/components/StatusBadge/styles.js +5 -7
  118. package/build/admin/src/components/TableFilters/index.js +38 -91
  119. package/build/admin/src/components/TablePagination/index.d.ts +13 -11
  120. package/build/admin/src/components/TablePagination/index.js +19 -31
  121. package/build/admin/src/components/icons/comments.d.ts +4 -7
  122. package/build/admin/src/components/icons/comments.js +7 -18
  123. package/build/admin/src/components/icons/index.d.ts +1 -1
  124. package/build/admin/src/components/icons/index.js +5 -11
  125. package/build/admin/src/components/icons/lock.d.ts +5 -9
  126. package/build/admin/src/components/icons/lock.js +7 -24
  127. package/build/admin/src/components/icons/review.d.ts +5 -9
  128. package/build/admin/src/components/icons/review.js +7 -26
  129. package/build/admin/src/components/icons/unlock.d.ts +5 -9
  130. package/build/admin/src/components/icons/unlock.js +7 -24
  131. package/build/admin/src/hooks/useConfig.js +34 -42
  132. package/build/admin/src/index.js +84 -121
  133. package/build/admin/src/pages/App/index.js +23 -66
  134. package/build/admin/src/pages/App/reducer/actions.d.ts +4 -4
  135. package/build/admin/src/pages/App/reducer/actions.js +3 -3
  136. package/build/admin/src/pages/App/reducer/constants.d.ts +1 -1
  137. package/build/admin/src/pages/App/reducer/constants.js +1 -1
  138. package/build/admin/src/pages/App/reducer/index.d.ts +5 -10
  139. package/build/admin/src/pages/App/reducer/index.js +16 -19
  140. package/build/admin/src/pages/App/reducer/init.d.ts +1 -1
  141. package/build/admin/src/pages/App/reducer/init.js +4 -4
  142. package/build/admin/src/pages/App/reducer/selectors.d.ts +1 -1
  143. package/build/admin/src/pages/App/reducer/selectors.js +6 -8
  144. package/build/admin/src/pages/App/utils/api.js +8 -9
  145. package/build/admin/src/pages/ComingSoonPage/index.js +27 -62
  146. package/build/admin/src/pages/Details/components/DetailsEntity/index.js +39 -115
  147. package/build/admin/src/pages/Details/components/DetailsFilters/index.js +13 -33
  148. package/build/admin/src/pages/Details/components/DetailsFilters/styles.d.ts +1 -1
  149. package/build/admin/src/pages/Details/components/DetailsFilters/styles.js +5 -7
  150. package/build/admin/src/pages/Details/index.js +64 -183
  151. package/build/admin/src/pages/Discover/components/DiscoverTableRow/index.js +139 -314
  152. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +1 -1
  153. package/build/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +5 -7
  154. package/build/admin/src/pages/Discover/index.js +98 -298
  155. package/build/admin/src/pages/Discover/utils/api.js +8 -15
  156. package/build/admin/src/pages/Discover/utils/filtersSchema.d.ts +8 -8
  157. package/build/admin/src/pages/Discover/utils/filtersSchema.js +6 -6
  158. package/build/admin/src/pages/Settings/components/RestartAlert/styles.d.ts +1 -1
  159. package/build/admin/src/pages/Settings/components/RestartAlert/styles.js +5 -7
  160. package/build/admin/src/pages/Settings/index.js +192 -678
  161. package/build/admin/src/pages/Settings/utils/api.js +44 -59
  162. package/build/admin/src/pages/utils/api.js +26 -51
  163. package/build/admin/src/permissions.d.ts +25 -25
  164. package/build/admin/src/permissions.js +28 -60
  165. package/build/admin/src/pluginId.d.ts +1 -1
  166. package/build/admin/src/pluginId.js +20 -41
  167. package/build/admin/src/reducers.d.ts +4 -9
  168. package/build/admin/src/reducers.js +5 -7
  169. package/build/admin/src/translations/fr.json +132 -1
  170. package/build/admin/src/utils/axiosInstance.js +15 -23
  171. package/build/admin/src/utils/constants.d.ts +17 -17
  172. package/build/admin/src/utils/constants.js +16 -20
  173. package/build/admin/src/utils/getApiUrl.d.ts +1 -1
  174. package/build/admin/src/utils/getApiUrl.js +1 -1
  175. package/build/admin/src/utils/getMessage.js +13 -17
  176. package/build/admin/src/utils/getRelatedGroups.js +2 -3
  177. package/build/admin/src/utils/getUrl.d.ts +1 -1
  178. package/build/admin/src/utils/getUrl.js +1 -1
  179. package/build/admin/src/utils/handleAPIError.js +12 -15
  180. package/build/admin/src/utils/index.js +16 -84
  181. package/build/admin/src/utils/parseRegExp.d.ts +3 -3
  182. package/build/admin/src/utils/parseRegExp.js +6 -6
  183. package/build/admin/src/utils/renderEntryTitle.js +7 -10
  184. package/build/admin/src/utils/renderInitials.d.ts +1 -1
  185. package/build/admin/src/utils/renderInitials.js +2 -3
  186. package/build/admin/src/utils/resolveCommentStatus.js +19 -25
  187. package/build/admin/src/utils/resolveCommentStatusColor.js +15 -15
  188. package/build/content-types/comment.d.ts +87 -87
  189. package/build/content-types/comment.js +87 -87
  190. package/build/content-types/index.d.ts +136 -136
  191. package/build/content-types/index.js +10 -12
  192. package/build/content-types/report.d.ts +41 -41
  193. package/build/content-types/report.js +41 -41
  194. package/build/package.json +5 -5
  195. package/build/permissions.d.ts +14 -14
  196. package/build/permissions.js +14 -14
  197. package/build/server/bootstrap.js +52 -58
  198. package/build/server/config/index.js +13 -13
  199. package/build/server/controllers/admin.js +128 -117
  200. package/build/server/controllers/client.js +15 -4
  201. package/build/server/controllers/index.js +6 -8
  202. package/build/server/controllers/utils/functions.d.ts +1 -1
  203. package/build/server/controllers/utils/parsers.d.ts +5 -10
  204. package/build/server/controllers/utils/parsers.js +46 -20
  205. package/build/server/destroy.d.ts +1 -1
  206. package/build/server/destroy.js +3 -2
  207. package/build/server/graphql/index.js +19 -29
  208. package/build/server/graphql/mutations/createAbuseReport.js +19 -23
  209. package/build/server/graphql/mutations/createComment.d.ts +1 -1
  210. package/build/server/graphql/mutations/createComment.js +19 -22
  211. package/build/server/graphql/mutations/index.js +19 -21
  212. package/build/server/graphql/mutations/removeComment.d.ts +1 -1
  213. package/build/server/graphql/mutations/removeComment.js +19 -23
  214. package/build/server/graphql/mutations/updateComment.d.ts +1 -1
  215. package/build/server/graphql/mutations/updateComment.js +19 -23
  216. package/build/server/graphql/queries/findAllFlat.d.ts +1 -1
  217. package/build/server/graphql/queries/findAllFlat.js +30 -40
  218. package/build/server/graphql/queries/findAllInHierarchy.d.ts +1 -2
  219. package/build/server/graphql/queries/findAllInHierarchy.js +25 -32
  220. package/build/server/graphql/queries/index.js +17 -19
  221. package/build/server/graphql/resolvers-config.js +10 -10
  222. package/build/server/graphql/types/comment-author.js +7 -8
  223. package/build/server/graphql/types/comment-nested.js +14 -15
  224. package/build/server/graphql/types/comment.js +13 -14
  225. package/build/server/graphql/types/create-comment-author.js +7 -8
  226. package/build/server/graphql/types/create-comment.js +7 -8
  227. package/build/server/graphql/types/create-report.js +7 -8
  228. package/build/server/graphql/types/id.js +13 -14
  229. package/build/server/graphql/types/identify-comment-author.js +4 -5
  230. package/build/server/graphql/types/index.js +21 -27
  231. package/build/server/graphql/types/remove-comment.js +6 -7
  232. package/build/server/graphql/types/report-reason.js +9 -9
  233. package/build/server/graphql/types/report.js +9 -10
  234. package/build/server/graphql/types/response-find-all.js +5 -6
  235. package/build/server/graphql/types/response-meta.js +4 -5
  236. package/build/server/graphql/types/response-pagination.js +9 -10
  237. package/build/server/graphql/types/update-comment.js +7 -8
  238. package/build/server/register.d.ts +1 -1
  239. package/build/server/register.js +3 -2
  240. package/build/server/routes/admin.d.ts +1 -1
  241. package/build/server/routes/admin.js +99 -99
  242. package/build/server/routes/client.d.ts +1 -1
  243. package/build/server/routes/client.js +79 -43
  244. package/build/server/routes/index.d.ts +4 -4
  245. package/build/server/routes/index.js +12 -14
  246. package/build/server/services/admin.js +257 -284
  247. package/build/server/services/client.js +54 -42
  248. package/build/server/services/common.js +33 -11
  249. package/build/server/services/graphql.js +113 -124
  250. package/build/server/services/utils/functions.d.ts +1 -1
  251. package/build/server/services/utils/functions.js +76 -109
  252. package/build/server/utils/constants.js +13 -14
  253. package/build/server/utils/error.d.ts +12 -16
  254. package/build/server/utils/error.js +23 -23
  255. package/build/server/utils/functions.d.ts +4 -12
  256. package/build/server/utils/functions.js +20 -34
  257. package/build/strapi-admin.js +4 -6
  258. package/build/tsconfig.tsbuildinfo +1 -1
  259. package/build/types/contentTypes.d.ts +7 -5
  260. package/content-types/comment.ts +93 -0
  261. package/content-types/index.ts +11 -0
  262. package/content-types/report.ts +50 -0
  263. package/jest.config.ts +22 -0
  264. package/package.json +45 -11
  265. package/permissions.ts +17 -0
  266. package/server/{bootstrap.js → bootstrap.ts} +12 -11
  267. package/server/config/index.ts +19 -0
  268. package/server/controllers/admin.ts +194 -0
  269. package/server/controllers/client.ts +220 -0
  270. package/server/controllers/index.ts +13 -0
  271. package/server/controllers/utils/functions.ts +27 -0
  272. package/server/controllers/utils/parsers.ts +59 -0
  273. package/server/destroy.ts +3 -0
  274. package/server/graphql/index.ts +27 -0
  275. package/server/graphql/mutations/createAbuseReport.ts +38 -0
  276. package/server/graphql/mutations/createComment.ts +41 -0
  277. package/server/graphql/mutations/index.ts +26 -0
  278. package/server/graphql/mutations/removeComment.ts +41 -0
  279. package/server/graphql/mutations/updateComment.ts +40 -0
  280. package/server/graphql/queries/findAllFlat.ts +58 -0
  281. package/server/graphql/queries/findAllInHierarchy.ts +47 -0
  282. package/server/graphql/queries/index.ts +22 -0
  283. package/server/graphql/resolvers-config.ts +13 -0
  284. package/server/graphql/types/comment-author.ts +12 -0
  285. package/server/graphql/types/comment-nested.ts +19 -0
  286. package/server/graphql/types/comment.ts +18 -0
  287. package/server/graphql/types/create-comment-author.ts +12 -0
  288. package/server/graphql/types/create-comment.ts +12 -0
  289. package/server/graphql/types/create-report.ts +12 -0
  290. package/server/graphql/types/id.ts +28 -0
  291. package/server/graphql/types/identify-comment-author.ts +9 -0
  292. package/server/graphql/types/index.ts +38 -0
  293. package/server/graphql/types/remove-comment.ts +11 -0
  294. package/server/graphql/types/report-reason.ts +12 -0
  295. package/server/graphql/types/report.ts +14 -0
  296. package/server/graphql/types/response-find-all.ts +10 -0
  297. package/server/graphql/types/response-meta.ts +9 -0
  298. package/server/graphql/types/response-pagination.ts +14 -0
  299. package/server/graphql/types/update-comment.ts +12 -0
  300. package/server/index.ts +20 -0
  301. package/server/register.ts +3 -0
  302. package/server/routes/admin.ts +118 -0
  303. package/server/routes/client.ts +95 -0
  304. package/server/routes/index.ts +25 -0
  305. package/server/services/admin.ts +406 -0
  306. package/server/services/client.ts +394 -0
  307. package/server/services/common.ts +503 -0
  308. package/server/services/{graphql.js → graphql.ts} +72 -43
  309. package/server/services/index.ts +13 -0
  310. package/server/services/utils/functions.ts +150 -0
  311. package/server/utils/constants.ts +23 -0
  312. package/server/utils/error.ts +44 -0
  313. package/server/utils/functions.ts +55 -0
  314. package/strapi-admin.ts +5 -0
  315. package/strapi-server.ts +77 -0
  316. package/tsconfig.json +38 -0
  317. package/types/common.d.ts +1 -0
  318. package/types/config.d.ts +35 -0
  319. package/types/constants.d.ts +3 -0
  320. package/types/contentTypes.ts +56 -0
  321. package/types/controllers.d.ts +125 -0
  322. package/types/graphql.d.ts +24 -0
  323. package/types/index.d.ts +7 -0
  324. package/types/services.d.ts +166 -0
  325. package/__mocks__/initSetup.js +0 -108
  326. package/admin/src/components/ActionButton/styles.js +0 -10
  327. package/admin/src/components/ConfirmationDialog/index.js +0 -56
  328. package/admin/src/components/DiscussionStatus/index.js +0 -33
  329. package/admin/src/components/DiscussionThread/index.js +0 -62
  330. package/admin/src/components/DiscussionThreadItem/index.js +0 -57
  331. package/admin/src/components/DiscussionThreadItemActions/index.js +0 -231
  332. package/admin/src/components/DiscussionThreadItemActions/styles.js +0 -7
  333. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.js +0 -80
  334. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +0 -6
  335. package/admin/src/components/DiscussionThreadItemFooter/index.js +0 -47
  336. package/admin/src/components/DiscussionThreadItemFooter/styles.js +0 -13
  337. package/admin/src/components/DiscussionThreadItemReviewAction/index.js +0 -131
  338. package/admin/src/components/FormSwitch/index.js +0 -18
  339. package/admin/src/components/FormSwitch/styles.js +0 -8
  340. package/admin/src/components/IconButton/styles.js +0 -14
  341. package/admin/src/components/LoadingIndicatorOverlay/index.js +0 -15
  342. package/admin/src/components/LoadingIndicatorOverlay/styles.js +0 -20
  343. package/admin/src/components/Nav/index.js +0 -49
  344. package/admin/src/components/ReportsReviewModal/index.js +0 -48
  345. package/admin/src/components/ReportsReviewTable/index.js +0 -160
  346. package/admin/src/components/StatusBadge/index.js +0 -17
  347. package/admin/src/components/StatusBadge/styles.js +0 -17
  348. package/admin/src/components/icons/comments.js +0 -9
  349. package/admin/src/components/icons/index.js +0 -6
  350. package/admin/src/components/icons/review.js +0 -18
  351. package/admin/src/components/icons/unlock.js +0 -20
  352. package/admin/src/hooks/useConfig.js +0 -49
  353. package/admin/src/pages/App/index.js +0 -71
  354. package/admin/src/pages/App/reducer/actions.js +0 -8
  355. package/admin/src/pages/App/reducer/constants.js +0 -4
  356. package/admin/src/pages/App/reducer/init.js +0 -7
  357. package/admin/src/pages/App/reducer/selectors.js +0 -35
  358. package/admin/src/pages/ComingSoonPage/index.js +0 -25
  359. package/admin/src/pages/Details/components/DetailsEntity/index.js +0 -84
  360. package/admin/src/pages/Details/components/DetailsFilters/index.js +0 -35
  361. package/admin/src/pages/Details/components/DetailsFilters/styles.js +0 -8
  362. package/admin/src/pages/Details/index.js +0 -136
  363. package/admin/src/pages/Discover/components/DiscoverTableRow/index.js +0 -180
  364. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.js +0 -8
  365. package/admin/src/pages/Discover/index.js +0 -173
  366. package/admin/src/pages/Discover/utils/api.js +0 -14
  367. package/admin/src/pages/Discover/utils/filtersSchema.js +0 -9
  368. package/admin/src/pages/Settings/components/RestartAlert/styles.js +0 -8
  369. package/admin/src/pages/Settings/index.js +0 -392
  370. package/admin/src/pages/utils/api.js +0 -53
  371. package/admin/src/permissions.js +0 -19
  372. package/admin/src/pluginId.js +0 -5
  373. package/admin/src/reducers.js +0 -8
  374. package/admin/src/utils/constants.js +0 -25
  375. package/admin/src/utils/getApiUrl.js +0 -5
  376. package/admin/src/utils/getMessage.js +0 -21
  377. package/admin/src/utils/getRelatedGroups.js +0 -3
  378. package/admin/src/utils/getUrl.js +0 -5
  379. package/admin/src/utils/handleAPIError.js +0 -16
  380. package/admin/src/utils/index.js +0 -11
  381. package/admin/src/utils/parseRegExp.js +0 -10
  382. package/admin/src/utils/renderEntryTitle.js +0 -14
  383. package/admin/src/utils/renderInitials.js +0 -5
  384. package/admin/src/utils/resolveCommentStatus.js +0 -30
  385. package/admin/src/utils/resolveCommentStatusColor.js +0 -22
  386. package/content-types/comment.js +0 -93
  387. package/content-types/index.js +0 -11
  388. package/content-types/report.js +0 -54
  389. package/jest.config.js +0 -7
  390. package/permissions.js +0 -19
  391. package/server/config/index.js +0 -17
  392. package/server/controllers/admin.js +0 -168
  393. package/server/controllers/client.js +0 -114
  394. package/server/controllers/index.js +0 -9
  395. package/server/controllers/utils/__tests__/functions.test.js +0 -43
  396. package/server/controllers/utils/__tests__/parsers.test.js +0 -94
  397. package/server/controllers/utils/functions.js +0 -19
  398. package/server/controllers/utils/parsers.js +0 -23
  399. package/server/destroy.js +0 -5
  400. package/server/graphql/index.js +0 -25
  401. package/server/graphql/mutations/createAbuseReport.js +0 -25
  402. package/server/graphql/mutations/createComment.js +0 -25
  403. package/server/graphql/mutations/index.js +0 -21
  404. package/server/graphql/mutations/removeComment.js +0 -25
  405. package/server/graphql/mutations/updateComment.js +0 -25
  406. package/server/graphql/queries/findAllFlat.js +0 -35
  407. package/server/graphql/queries/findAllInHierarchy.js +0 -31
  408. package/server/graphql/queries/index.js +0 -19
  409. package/server/graphql/resolvers-config.js +0 -13
  410. package/server/graphql/types/comment-author.js +0 -9
  411. package/server/graphql/types/comment-nested.js +0 -16
  412. package/server/graphql/types/comment.js +0 -15
  413. package/server/graphql/types/create-comment-author.js +0 -9
  414. package/server/graphql/types/create-comment.js +0 -9
  415. package/server/graphql/types/create-report.js +0 -9
  416. package/server/graphql/types/id.js +0 -24
  417. package/server/graphql/types/identify-comment-author.js +0 -6
  418. package/server/graphql/types/index.js +0 -19
  419. package/server/graphql/types/remove-comment.js +0 -8
  420. package/server/graphql/types/report-reason.js +0 -10
  421. package/server/graphql/types/report.js +0 -11
  422. package/server/graphql/types/response-find-all.js +0 -7
  423. package/server/graphql/types/response-meta.js +0 -6
  424. package/server/graphql/types/response-pagination.js +0 -11
  425. package/server/graphql/types/update-comment.js +0 -9
  426. package/server/index.js +0 -22
  427. package/server/register.js +0 -5
  428. package/server/routes/admin.js +0 -124
  429. package/server/routes/client.js +0 -52
  430. package/server/routes/index.js +0 -15
  431. package/server/services/__tests__/common.test.js +0 -399
  432. package/server/services/admin.js +0 -296
  433. package/server/services/client.js +0 -263
  434. package/server/services/common.js +0 -295
  435. package/server/services/index.js +0 -13
  436. package/server/services/utils/__tests__/functions.test.js +0 -53
  437. package/server/services/utils/functions.js +0 -112
  438. package/server/utils/__tests__/functions.test.js +0 -17
  439. package/server/utils/constants.js +0 -26
  440. package/server/utils/error.js +0 -24
  441. package/server/utils/functions.js +0 -19
  442. package/strapi-admin.js +0 -3
  443. package/strapi-server.js +0 -49
@@ -0,0 +1,602 @@
1
+ // @ts-nocheck
2
+
3
+ import React, { useRef, useMemo, useState } from "react";
4
+ import { useQuery } from "react-query";
5
+ // @ts-ignore
6
+ import { Formik } from "formik";
7
+ import { capitalize, first, orderBy, isEmpty, isEqual, isNil } from "lodash";
8
+ // @ts-ignore
9
+ import {
10
+ CheckPermissions,
11
+ LoadingIndicatorPage,
12
+ Form,
13
+ useTracking,
14
+ useNotification,
15
+ useRBAC,
16
+ useFocusWhenNavigate,
17
+ useOverlayBlocker,
18
+ } from "@strapi/helper-plugin";
19
+ import {
20
+ Accordion,
21
+ AccordionToggle,
22
+ AccordionContent,
23
+ AccordionGroup,
24
+ } from "@strapi/design-system/Accordion";
25
+ import { Main } from "@strapi/design-system/Main";
26
+ import { ContentLayout, HeaderLayout } from "@strapi/design-system/Layout";
27
+ import { Button } from "@strapi/design-system/Button";
28
+ import { Box } from "@strapi/design-system/Box";
29
+ import { Stack } from "@strapi/design-system/Stack";
30
+ import { Switch } from "@strapi/design-system/Switch";
31
+ import { Typography } from "@strapi/design-system/Typography";
32
+ import { Grid, GridItem } from "@strapi/design-system/Grid";
33
+ import { ToggleInput } from "@strapi/design-system/ToggleInput";
34
+ import { Select, Option } from "@strapi/design-system/Select";
35
+ import { useNotifyAT } from "@strapi/design-system/LiveRegions";
36
+ import { Tooltip } from "@strapi/design-system/Tooltip";
37
+ import { Check, Refresh, Play, Information } from "@strapi/icons";
38
+
39
+ import pluginPermissions from "../../permissions";
40
+ import useConfig from "../../hooks/useConfig";
41
+ import { fetchAllContentTypes, fetchRoles } from "./utils/api";
42
+ import { getMessage, parseRegExp } from "../../utils";
43
+ import ConfirmationDialog from "../../components/ConfirmationDialog";
44
+ import { RestartAlert } from "./components/RestartAlert/styles";
45
+ import FormSwitch from "../../components/FormSwitch";
46
+ import { ToBeFixed } from "../../../../types";
47
+
48
+ const Settings = () => {
49
+ useFocusWhenNavigate();
50
+
51
+ const { notifyStatus } = useNotifyAT();
52
+ const { trackUsage } = useTracking();
53
+ const trackUsageRef = useRef(trackUsage);
54
+ const toggleNotification = useNotification();
55
+ const { lockApp, unlockApp } = useOverlayBlocker();
56
+
57
+ const viewPermissions = useMemo(
58
+ () => ({
59
+ access: pluginPermissions.settings.read,
60
+ change: pluginPermissions.settings.change,
61
+ }),
62
+ []
63
+ );
64
+
65
+ const {
66
+ isLoading: isLoadingForPermissions,
67
+ allowedActions: { canAccess, canChange },
68
+ } = useRBAC(viewPermissions);
69
+
70
+ const [restoreConfigmationVisible, setRestoreConfigmationVisible] =
71
+ useState(false);
72
+ const [restartRequired, setRestartRequired] = useState(false);
73
+ const [contentTypeExpanded, setContentTypeExpanded] = useState(undefined);
74
+
75
+ const { fetch, restartMutation, submitMutation, restoreMutation } =
76
+ useConfig(toggleNotification);
77
+ const {
78
+ data: configData,
79
+ isLoading: isConfigLoading,
80
+ err: configErr,
81
+ }: ToBeFixed = fetch;
82
+
83
+ const {
84
+ data: allCollectionsData,
85
+ isLoading: areCollectionsLoading,
86
+ err: collectionsErr,
87
+ }: ToBeFixed = useQuery(["get-all-content-types", canAccess], () =>
88
+ fetchAllContentTypes(toggleNotification)
89
+ );
90
+
91
+ const {
92
+ data: allRolesData,
93
+ isLoading: areRolesLoading,
94
+ err: rolesErr,
95
+ }: ToBeFixed = useQuery(["get-all-roles", canAccess], () =>
96
+ fetchRoles(toggleNotification)
97
+ );
98
+
99
+ const isLoading =
100
+ isLoadingForPermissions ||
101
+ isConfigLoading ||
102
+ areCollectionsLoading ||
103
+ areRolesLoading;
104
+ const isError = configErr || collectionsErr || rolesErr;
105
+
106
+ const preparePayload = ({
107
+ enabledCollections,
108
+ gqlAuthEnabled,
109
+ approvalFlow,
110
+ entryLabel,
111
+ ...rest
112
+ }: ToBeFixed) => ({
113
+ ...rest,
114
+ enabledCollections,
115
+ approvalFlow: approvalFlow.filter((_) => enabledCollections.includes(_)),
116
+ entryLabel: {
117
+ ...Object.keys(entryLabel).reduce(
118
+ (prev, curr) => ({
119
+ ...prev,
120
+ [curr]: enabledCollections.includes(curr)
121
+ ? entryLabel[curr]
122
+ : undefined,
123
+ }),
124
+ {}
125
+ ),
126
+ "*": entryLabel["*"],
127
+ },
128
+ reportReasons: configData?.reportReasons,
129
+ gql: gqlAuthEnabled ? { auth: true } : undefined,
130
+ });
131
+
132
+ if (isLoading || isError) {
133
+ return (
134
+ <LoadingIndicatorPage>
135
+ {getMessage("page.settings.loading")}
136
+ </LoadingIndicatorPage>
137
+ );
138
+ }
139
+
140
+ const regexUID = !isLoading
141
+ ? new RegExp(
142
+ parseRegExp(fetch.data.regex?.uid).value,
143
+ parseRegExp(fetch.data.regex?.uid).flags
144
+ )
145
+ : null;
146
+
147
+ const allRoles = allRolesData?.data || [];
148
+ const allCollections =
149
+ !isLoading &&
150
+ allCollectionsData.filter(
151
+ ({ uid }: ToBeFixed) =>
152
+ first(uid.split(regexUID).filter((s) => s && s.length > 0)) === "api"
153
+ );
154
+ const enabledCollections =
155
+ configData?.enabledCollections
156
+ ?.map((uid: ToBeFixed) =>
157
+ allCollections.find((_) => _.uid === uid) ? uid : undefined
158
+ )
159
+ .filter((_: ToBeFixed) => _) || [];
160
+ const entryLabel = configData?.entryLabel || {};
161
+ const approvalFlow = configData?.approvalFlow || [];
162
+ const badWords = isNil(configData?.badWords) ? true : configData?.badWords;
163
+ const isGQLPluginEnabled = configData?.isGQLPluginEnabled;
164
+ const gqlAuthEnabled = configData?.gql?.auth || undefined;
165
+ const moderatorRoles =
166
+ configData?.moderatorRoles?.filter((code: ToBeFixed) =>
167
+ allRoles.find((_: ToBeFixed) => _.code === code)
168
+ ) || [];
169
+
170
+ const changeApprovalFlowFor = (
171
+ uid: ToBeFixed,
172
+ current: ToBeFixed,
173
+ value: ToBeFixed
174
+ ) => {
175
+ const currentSet = new Set(current);
176
+ if (value) {
177
+ currentSet.add(uid);
178
+ } else {
179
+ currentSet.delete(uid);
180
+ }
181
+ return Array.from(currentSet);
182
+ };
183
+
184
+ const changeEntryLabelFor = (
185
+ uid: ToBeFixed,
186
+ current: ToBeFixed,
187
+ value: ToBeFixed
188
+ ) => ({
189
+ ...current,
190
+ [uid]: value && !isEmpty(value) ? [...value] : undefined,
191
+ });
192
+
193
+ const handleUpdateConfiguration = async (form: ToBeFixed) => {
194
+ if (canChange) {
195
+ lockApp();
196
+ const payload = preparePayload(form);
197
+ await submitMutation.mutateAsync(payload);
198
+ const enabledCollectionsChanged = !isEqual(
199
+ payload.enabledCollections,
200
+ configData?.enabledCollections
201
+ );
202
+ const gqlAuthChanged = !isEqual(payload.gql?.auth, configData?.gql?.auth);
203
+ if (enabledCollectionsChanged || gqlAuthChanged) {
204
+ setRestartRequired(true);
205
+ }
206
+ unlockApp();
207
+ }
208
+ };
209
+
210
+ const handleRestoreConfirmation = () => setRestoreConfigmationVisible(true);
211
+ const handleRestoreConfiguration = async () => {
212
+ if (canChange) {
213
+ lockApp();
214
+ await restoreMutation.mutateAsync();
215
+ unlockApp();
216
+ setRestartRequired(true);
217
+ setRestoreConfigmationVisible(false);
218
+ }
219
+ };
220
+ const handleRestoreCancel = () => setRestoreConfigmationVisible(false);
221
+
222
+ const handleRestart = async () => {
223
+ if (canChange) {
224
+ lockApp();
225
+ await restartMutation.mutateAsync();
226
+ setRestartRequired(false);
227
+ unlockApp();
228
+ }
229
+ };
230
+ const handleRestartDiscard = () => setRestartRequired(false);
231
+
232
+ const handleSetContentTypeExpanded = (key: ToBeFixed) =>
233
+ setContentTypeExpanded(key === contentTypeExpanded ? undefined : key);
234
+
235
+ const boxDefaultProps = {
236
+ background: "neutral0",
237
+ hasRadius: true,
238
+ shadow: "filterShadow",
239
+ padding: 6,
240
+ };
241
+
242
+ return (
243
+ <Main>
244
+ <Formik
245
+ initialValues={{
246
+ enabledCollections,
247
+ moderatorRoles,
248
+ badWords,
249
+ approvalFlow,
250
+ entryLabel,
251
+ gqlAuthEnabled,
252
+ }}
253
+ enableReinitialize={true}
254
+ onSubmit={handleUpdateConfiguration}
255
+ >
256
+ {({ handleSubmit, setFieldValue, values }: ToBeFixed) => (
257
+ <Form noValidate onSubmit={handleSubmit}>
258
+ <HeaderLayout
259
+ title={getMessage("page.settings.header.title")}
260
+ subtitle={getMessage("page.settings.header.description")}
261
+ primaryAction={
262
+ <CheckPermissions
263
+ permissions={pluginPermissions.settingsChange}
264
+ >
265
+ <Button
266
+ type="submit"
267
+ startIcon={<Check />}
268
+ disabled={restartRequired}
269
+ >
270
+ {getMessage("page.settings.actions.submit")}
271
+ </Button>
272
+ </CheckPermissions>
273
+ }
274
+ />
275
+ <ContentLayout>
276
+ <Stack size={4}>
277
+ {restartRequired && (
278
+ <RestartAlert
279
+ closeLabel={getMessage(
280
+ "page.settings.actions.restart.alert.cancel"
281
+ )}
282
+ title={getMessage(
283
+ "page.settings.actions.restart.alert.title"
284
+ )}
285
+ action={
286
+ <Box>
287
+ <Button onClick={handleRestart} startIcon={<Play />}>
288
+ {getMessage("page.settings.actions.restart")}
289
+ </Button>
290
+ </Box>
291
+ }
292
+ onClose={handleRestartDiscard}
293
+ >
294
+ {getMessage(
295
+ "page.settings.actions.restart.alert.description"
296
+ )}
297
+ </RestartAlert>
298
+ )}
299
+
300
+ <Box {...boxDefaultProps}>
301
+ <Stack size={4}>
302
+ <Typography variant="delta" as="h2">
303
+ {getMessage("page.settings.section.general")}
304
+ </Typography>
305
+ <Grid gap={4}>
306
+ <GridItem col={12}>
307
+ <Select
308
+ name="enabledCollections"
309
+ label={getMessage(
310
+ "page.settings.form.enabledCollections.label"
311
+ )}
312
+ placeholder={getMessage(
313
+ "page.settings.form.enabledCollections.placeholder"
314
+ )}
315
+ hint={getMessage(
316
+ "page.settings.form.enabledCollections.hint"
317
+ )}
318
+ onClear={() =>
319
+ setFieldValue("enabledCollections", [], false)
320
+ }
321
+ value={values.enabledCollections}
322
+ onChange={(value: ToBeFixed) =>
323
+ setFieldValue("enabledCollections", value, false)
324
+ }
325
+ disabled={restartRequired}
326
+ multi
327
+ withTags
328
+ >
329
+ {allCollections.map(
330
+ ({ uid, schema: { displayName } }: ToBeFixed) => (
331
+ <Option key={uid} value={uid}>
332
+ {displayName}
333
+ </Option>
334
+ )
335
+ )}
336
+ </Select>
337
+ </GridItem>
338
+ {!isEmpty(values.enabledCollections) && (
339
+ <GridItem col={12}>
340
+ <AccordionGroup
341
+ label={getMessage(
342
+ "page.settings.form.contentTypesSettings.label"
343
+ )}
344
+ labelAction={
345
+ <Tooltip
346
+ description={getMessage(
347
+ "page.settings.form.contentTypesSettings.tooltip"
348
+ )}
349
+ >
350
+ <Information aria-hidden={true} />
351
+ </Tooltip>
352
+ }
353
+ >
354
+ {orderBy(values.enabledCollections).map((uid) => {
355
+ const {
356
+ schema: { displayName, attributes = {} },
357
+ } = allCollections.find((_) => _.uid === uid);
358
+ const stringAttributes = Object.keys(
359
+ attributes
360
+ ).filter((_) => attributes[_].type === "string");
361
+ const key = `collectionSettings-${uid}`;
362
+ return (
363
+ <Accordion
364
+ expanded={contentTypeExpanded === key}
365
+ toggle={() =>
366
+ handleSetContentTypeExpanded(key)
367
+ }
368
+ key={key}
369
+ id={key}
370
+ size="S"
371
+ >
372
+ <AccordionToggle
373
+ title={displayName}
374
+ togglePosition="left"
375
+ />
376
+ <AccordionContent>
377
+ <Box padding={6}>
378
+ <Stack size={4}>
379
+ <FormSwitch
380
+ name={`collectionSettings-${uid}-approvalFlow`}
381
+ label={getMessage(
382
+ "page.settings.form.approvalFlow.label"
383
+ )}
384
+ hint={getMessage({
385
+ id: "page.settings.form.approvalFlow.hint",
386
+ props: { name: displayName },
387
+ })}
388
+ selected={values.approvalFlow.includes(
389
+ uid
390
+ )}
391
+ onChange={() =>
392
+ setFieldValue(
393
+ "approvalFlow",
394
+ changeApprovalFlowFor(
395
+ uid,
396
+ values.approvalFlow,
397
+ !values.approvalFlow.includes(
398
+ uid
399
+ )
400
+ ),
401
+ []
402
+ )
403
+ }
404
+ onLabel={getMessage(
405
+ "compontents.toogle.enabled"
406
+ )}
407
+ offLabel={getMessage(
408
+ "compontents.toogle.disabled"
409
+ )}
410
+ disabled={restartRequired}
411
+ visibleLabels
412
+ />
413
+ {!isEmpty(stringAttributes) && (
414
+ <Select
415
+ name={`collectionSettings-${uid}-entryLabel`}
416
+ label={getMessage(
417
+ "page.settings.form.entryLabel.label"
418
+ )}
419
+ placeholder={getMessage(
420
+ "page.settings.form.entryLabel.placeholder"
421
+ )}
422
+ hint={getMessage(
423
+ "page.settings.form.entryLabel.hint"
424
+ )}
425
+ onClear={() =>
426
+ setFieldValue(
427
+ "entryLabel",
428
+ changeEntryLabelFor(
429
+ uid,
430
+ values.entryLabel
431
+ )
432
+ )
433
+ }
434
+ value={values.entryLabel[uid] || []}
435
+ onChange={(value: ToBeFixed) =>
436
+ setFieldValue(
437
+ "entryLabel",
438
+ changeEntryLabelFor(
439
+ uid,
440
+ values.entryLabel,
441
+ value
442
+ )
443
+ )
444
+ }
445
+ multi
446
+ withTags
447
+ disabled={restartRequired}
448
+ >
449
+ {stringAttributes.map((key) => (
450
+ <Option
451
+ key={`collectionSettings-${uid}-entryLabel-${key}`}
452
+ value={key}
453
+ >
454
+ {capitalize(
455
+ key.split("_").join(" ")
456
+ )}
457
+ </Option>
458
+ ))}
459
+ </Select>
460
+ )}
461
+ </Stack>
462
+ </Box>
463
+ </AccordionContent>
464
+ </Accordion>
465
+ );
466
+ })}
467
+ </AccordionGroup>
468
+ </GridItem>
469
+ )}
470
+ </Grid>
471
+ </Stack>
472
+ </Box>
473
+
474
+ <Box {...boxDefaultProps}>
475
+ <Stack size={4}>
476
+ <Typography variant="delta" as="h2">
477
+ {getMessage("page.settings.section.additional")}
478
+ </Typography>
479
+ <Grid gap={4}>
480
+ <GridItem col={6} xs={12}>
481
+ <Select
482
+ name="moderatorRoles"
483
+ label={getMessage(
484
+ "page.settings.form.moderatorRoles.label"
485
+ )}
486
+ placeholder={getMessage(
487
+ "page.settings.form.moderatorRoles.placeholder"
488
+ )}
489
+ hint={getMessage(
490
+ "page.settings.form.moderatorRoles.hint"
491
+ )}
492
+ onClear={() =>
493
+ setFieldValue("moderatorRoles", [], false)
494
+ }
495
+ value={values.moderatorRoles}
496
+ onChange={(value: ToBeFixed) =>
497
+ setFieldValue("moderatorRoles", value, false)
498
+ }
499
+ disabled={restartRequired}
500
+ multi
501
+ withTags
502
+ >
503
+ {allRoles.map(({ code, name }: ToBeFixed) => (
504
+ <Option key={code} value={code}>
505
+ {name}
506
+ </Option>
507
+ ))}
508
+ </Select>
509
+ </GridItem>
510
+ <GridItem col={6} xs={12}>
511
+ <ToggleInput
512
+ name="badWords"
513
+ label={getMessage(
514
+ "page.settings.form.badWords.label"
515
+ )}
516
+ hint={getMessage("page.settings.form.badWords.hint")}
517
+ checked={values.badWords}
518
+ onChange={({ target: { checked } }: ToBeFixed) =>
519
+ setFieldValue("badWords", checked, false)
520
+ }
521
+ onLabel={getMessage("compontents.toogle.enabled")}
522
+ offLabel={getMessage("compontents.toogle.disabled")}
523
+ disabled={restartRequired}
524
+ />
525
+ </GridItem>
526
+ {isGQLPluginEnabled && (
527
+ <GridItem col={6} xs={12}>
528
+ <ToggleInput
529
+ name="badWords"
530
+ label={getMessage(
531
+ "page.settings.form.gqlAuth.label"
532
+ )}
533
+ hint={getMessage("page.settings.form.gqlAuth.hint")}
534
+ checked={values.gqlAuthEnabled}
535
+ onChange={({ target: { checked } }: ToBeFixed) =>
536
+ setFieldValue("gqlAuthEnabled", checked, false)
537
+ }
538
+ onLabel={getMessage("compontents.toogle.enabled")}
539
+ offLabel={getMessage("compontents.toogle.disabled")}
540
+ disabled={restartRequired}
541
+ />
542
+ </GridItem>
543
+ )}
544
+ </Grid>
545
+ </Stack>
546
+ </Box>
547
+
548
+ <CheckPermissions
549
+ permissions={pluginPermissions.settingsChange}
550
+ >
551
+ <Box {...boxDefaultProps}>
552
+ <Stack size={4}>
553
+ <Stack size={2}>
554
+ <Typography variant="delta" as="h2">
555
+ {getMessage("page.settings.section.restore")}
556
+ </Typography>
557
+ <Typography variant="pi" as="h4">
558
+ {getMessage("page.settings.section.restore.subtitle")}
559
+ </Typography>
560
+ </Stack>
561
+ <Grid gap={4}>
562
+ <GridItem col={6}>
563
+ <Button
564
+ variant="danger-light"
565
+ startIcon={<Refresh />}
566
+ onClick={handleRestoreConfirmation}
567
+ >
568
+ {getMessage("page.settings.actions.restore")}
569
+ </Button>
570
+
571
+ <ConfirmationDialog
572
+ isVisible={restoreConfigmationVisible}
573
+ isActionAsync={restoreMutation.isLoading}
574
+ header={getMessage(
575
+ "page.settings.actions.restore.confirmation.header"
576
+ )}
577
+ labelConfirm={getMessage(
578
+ "page.settings.actions.restore.confirmation.button.confirm"
579
+ )}
580
+ iconConfirm={<Refresh />}
581
+ onConfirm={handleRestoreConfiguration}
582
+ onCancel={handleRestoreCancel}
583
+ >
584
+ {getMessage(
585
+ "page.settings.actions.restore.confirmation.description"
586
+ )}
587
+ </ConfirmationDialog>
588
+ </GridItem>
589
+ </Grid>
590
+ </Stack>
591
+ </Box>
592
+ </CheckPermissions>
593
+ </Stack>
594
+ </ContentLayout>
595
+ </Form>
596
+ )}
597
+ </Formik>
598
+ </Main>
599
+ );
600
+ };
601
+
602
+ export default Settings;
@@ -1,4 +1,6 @@
1
- import { getApiURL, axiosInstance, handleAPIError } from '../../../utils';
1
+ // @ts-nocheck
2
+
3
+ import { getApiURL, axiosInstance, handleAPIError } from "../../../utils";
2
4
 
3
5
  // eslint-disable-next-line import/prefer-default-export
4
6
  export const fetchConfig = async (toggleNotification) => {
@@ -7,13 +9,20 @@ export const fetchConfig = async (toggleNotification) => {
7
9
 
8
10
  return data;
9
11
  } catch (err) {
10
- handleAPIError(err, toggleNotification, 'page.settings.notification.fetch.error');
12
+ handleAPIError(
13
+ err,
14
+ toggleNotification,
15
+ "page.settings.notification.fetch.error"
16
+ );
11
17
  }
12
18
  };
13
19
 
14
20
  export const updateConfig = async (body, toggleNotification) => {
15
21
  try {
16
- const { data } = await axiosInstance.put(getApiURL(`settings/config`), body);
22
+ const { data } = await axiosInstance.put(
23
+ getApiURL(`settings/config`),
24
+ body
25
+ );
17
26
 
18
27
  return data;
19
28
  } catch (err) {
@@ -33,7 +42,9 @@ export const restoreConfig = async (toggleNotification) => {
33
42
 
34
43
  export const fetchAllContentTypes = async (toggleNotification) => {
35
44
  try {
36
- const { data } = await axiosInstance.get(`/content-type-builder/content-types`);
45
+ const { data } = await axiosInstance.get(
46
+ `/content-type-builder/content-types`
47
+ );
37
48
  return data?.data;
38
49
  } catch (err) {
39
50
  handleAPIError(err, toggleNotification);
@@ -57,4 +68,4 @@ export const restartStrapi = async (toggleNotification) => {
57
68
  } catch (err) {
58
69
  handleAPIError(err, toggleNotification);
59
70
  }
60
- };
71
+ };