strapi-plugin-comments 2.1.0 → 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 (400) hide show
  1. package/.husky/pre-commit +4 -0
  2. package/LICENSE.md +7 -0
  3. package/admin/src/components/ActionButton/styles.ts +11 -0
  4. package/admin/src/components/Avatar/index.tsx +31 -0
  5. package/admin/src/components/ConfirmationDialog/index.tsx +88 -0
  6. package/admin/src/components/DiscussionStatus/index.tsx +36 -0
  7. package/admin/src/components/DiscussionThread/index.tsx +97 -0
  8. package/admin/src/components/DiscussionThreadItem/index.tsx +71 -0
  9. package/admin/src/components/DiscussionThreadItem/styles.ts +15 -0
  10. package/admin/src/components/DiscussionThreadItemActions/index.tsx +365 -0
  11. package/admin/src/components/DiscussionThreadItemActions/styles.ts +9 -0
  12. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/index.tsx +99 -0
  13. package/admin/src/components/DiscussionThreadItemApprovalFlowActions/styles.ts +8 -0
  14. package/admin/src/components/DiscussionThreadItemFooter/index.tsx +62 -0
  15. package/admin/src/components/DiscussionThreadItemFooter/styles.ts +15 -0
  16. package/admin/src/components/DiscussionThreadItemReviewAction/index.tsx +180 -0
  17. package/admin/src/components/FormSwitch/index.tsx +35 -0
  18. package/admin/src/components/FormSwitch/styles.ts +10 -0
  19. package/admin/src/components/IconButton/styles.ts +19 -0
  20. package/admin/src/components/Initializer/index.tsx +28 -0
  21. package/admin/src/components/LoadingIndicatorOverlay/index.tsx +19 -0
  22. package/admin/src/components/LoadingIndicatorOverlay/styles.ts +21 -0
  23. package/admin/src/components/Nav/index.tsx +61 -0
  24. package/admin/src/components/PluginIcon/index.tsx +14 -0
  25. package/admin/src/components/ReportsReviewModal/index.tsx +71 -0
  26. package/admin/src/components/ReportsReviewTable/index.tsx +233 -0
  27. package/admin/src/components/StatusBadge/index.tsx +21 -0
  28. package/admin/src/components/StatusBadge/styles.ts +19 -0
  29. package/admin/src/components/TableFilters/index.tsx +58 -0
  30. package/admin/src/components/TablePagination/index.tsx +37 -0
  31. package/admin/src/components/icons/comments.tsx +15 -0
  32. package/admin/src/components/icons/index.ts +6 -0
  33. package/admin/src/components/icons/lock.tsx +27 -0
  34. package/admin/src/components/icons/review.tsx +25 -0
  35. package/admin/src/components/icons/unlock.tsx +25 -0
  36. package/admin/src/hooks/useConfig.ts +58 -0
  37. package/admin/src/index.ts +98 -0
  38. package/admin/src/pages/App/index.tsx +67 -0
  39. package/admin/src/pages/App/reducer/actions.ts +10 -0
  40. package/admin/src/pages/App/reducer/constants.ts +4 -0
  41. package/admin/src/pages/App/reducer/index.ts +28 -0
  42. package/admin/src/pages/App/reducer/init.ts +9 -0
  43. package/admin/src/pages/App/reducer/selectors.ts +32 -0
  44. package/admin/src/pages/App/utils/api.ts +14 -0
  45. package/admin/src/pages/ComingSoonPage/index.tsx +31 -0
  46. package/admin/src/pages/Details/components/DetailsEntity/index.tsx +106 -0
  47. package/admin/src/pages/Details/components/DetailsFilters/index.tsx +43 -0
  48. package/admin/src/pages/Details/components/DetailsFilters/styles.ts +9 -0
  49. package/admin/src/pages/Details/index.tsx +169 -0
  50. package/admin/src/pages/Discover/components/DiscoverTableRow/index.tsx +252 -0
  51. package/admin/src/pages/Discover/components/DiscoverTableRow/styles.ts +9 -0
  52. package/admin/src/pages/Discover/index.tsx +230 -0
  53. package/admin/src/pages/Discover/utils/api.ts +22 -0
  54. package/admin/src/pages/Discover/utils/filtersSchema.ts +9 -0
  55. package/admin/src/pages/Settings/components/RestartAlert/styles.ts +10 -0
  56. package/admin/src/pages/Settings/index.tsx +602 -0
  57. package/admin/src/pages/Settings/utils/api.ts +71 -0
  58. package/admin/src/pages/utils/api.ts +70 -0
  59. package/admin/src/permissions.ts +30 -0
  60. package/admin/src/pluginId.ts +3 -0
  61. package/admin/src/reducers.ts +8 -0
  62. package/admin/src/utils/axiosInstance.ts +38 -0
  63. package/admin/src/utils/constants.ts +25 -0
  64. package/admin/src/utils/getApiUrl.ts +5 -0
  65. package/admin/src/utils/getMessage.ts +29 -0
  66. package/admin/src/utils/getRelatedGroups.ts +6 -0
  67. package/admin/src/utils/getUrl.ts +5 -0
  68. package/admin/src/utils/handleAPIError.ts +21 -0
  69. package/admin/src/utils/index.ts +11 -0
  70. package/admin/src/utils/parseRegExp.ts +9 -0
  71. package/admin/src/utils/renderEntryTitle.ts +16 -0
  72. package/admin/src/utils/renderInitials.ts +10 -0
  73. package/admin/src/utils/resolveCommentStatus.ts +37 -0
  74. package/admin/src/utils/resolveCommentStatusColor.ts +22 -0
  75. package/build/README.md +854 -0
  76. package/{admin → build/admin}/src/components/ActionButton/styles.d.ts +0 -0
  77. package/{admin → build/admin}/src/components/ActionButton/styles.js +0 -0
  78. package/{admin → build/admin}/src/components/Avatar/index.d.ts +0 -0
  79. package/{admin → build/admin}/src/components/Avatar/index.js +0 -0
  80. package/{admin → build/admin}/src/components/ConfirmationDialog/index.d.ts +0 -0
  81. package/{admin → build/admin}/src/components/ConfirmationDialog/index.js +0 -0
  82. package/{admin → build/admin}/src/components/DiscussionStatus/index.d.ts +0 -0
  83. package/{admin → build/admin}/src/components/DiscussionStatus/index.js +0 -0
  84. package/{admin → build/admin}/src/components/DiscussionThread/index.d.ts +0 -0
  85. package/{admin → build/admin}/src/components/DiscussionThread/index.js +0 -0
  86. package/{admin → build/admin}/src/components/DiscussionThreadItem/index.d.ts +0 -0
  87. package/{admin → build/admin}/src/components/DiscussionThreadItem/index.js +0 -0
  88. package/{admin → build/admin}/src/components/DiscussionThreadItem/styles.d.ts +0 -0
  89. package/{admin → build/admin}/src/components/DiscussionThreadItem/styles.js +0 -0
  90. package/{admin → build/admin}/src/components/DiscussionThreadItemActions/index.d.ts +0 -0
  91. package/{admin → build/admin}/src/components/DiscussionThreadItemActions/index.js +0 -0
  92. package/{admin → build/admin}/src/components/DiscussionThreadItemActions/styles.d.ts +0 -0
  93. package/{admin → build/admin}/src/components/DiscussionThreadItemActions/styles.js +0 -0
  94. package/{admin → build/admin}/src/components/DiscussionThreadItemApprovalFlowActions/index.d.ts +0 -0
  95. package/{admin → build/admin}/src/components/DiscussionThreadItemApprovalFlowActions/index.js +0 -0
  96. package/{admin → build/admin}/src/components/DiscussionThreadItemApprovalFlowActions/styles.d.ts +0 -0
  97. package/{admin → build/admin}/src/components/DiscussionThreadItemApprovalFlowActions/styles.js +0 -0
  98. package/{admin → build/admin}/src/components/DiscussionThreadItemFooter/index.d.ts +0 -0
  99. package/{admin → build/admin}/src/components/DiscussionThreadItemFooter/index.js +0 -0
  100. package/{admin → build/admin}/src/components/DiscussionThreadItemFooter/styles.d.ts +0 -0
  101. package/{admin → build/admin}/src/components/DiscussionThreadItemFooter/styles.js +0 -0
  102. package/{admin → build/admin}/src/components/DiscussionThreadItemReviewAction/index.d.ts +0 -0
  103. package/{admin → build/admin}/src/components/DiscussionThreadItemReviewAction/index.js +0 -0
  104. package/{admin → build/admin}/src/components/FormSwitch/index.d.ts +0 -0
  105. package/{admin → build/admin}/src/components/FormSwitch/index.js +0 -0
  106. package/{admin → build/admin}/src/components/FormSwitch/styles.d.ts +0 -0
  107. package/{admin → build/admin}/src/components/FormSwitch/styles.js +0 -0
  108. package/{admin → build/admin}/src/components/IconButton/styles.d.ts +0 -0
  109. package/{admin → build/admin}/src/components/IconButton/styles.js +0 -0
  110. package/{admin → build/admin}/src/components/Initializer/index.d.ts +0 -0
  111. package/{admin → build/admin}/src/components/Initializer/index.js +0 -0
  112. package/{admin → build/admin}/src/components/LoadingIndicatorOverlay/index.d.ts +0 -0
  113. package/{admin → build/admin}/src/components/LoadingIndicatorOverlay/index.js +0 -0
  114. package/{admin → build/admin}/src/components/LoadingIndicatorOverlay/styles.d.ts +0 -0
  115. package/{admin → build/admin}/src/components/LoadingIndicatorOverlay/styles.js +0 -0
  116. package/{admin → build/admin}/src/components/Nav/index.d.ts +0 -0
  117. package/{admin → build/admin}/src/components/Nav/index.js +0 -0
  118. package/{admin → build/admin}/src/components/PluginIcon/index.d.ts +0 -0
  119. package/{admin → build/admin}/src/components/PluginIcon/index.js +0 -0
  120. package/{admin → build/admin}/src/components/ReportsReviewModal/index.d.ts +0 -0
  121. package/{admin → build/admin}/src/components/ReportsReviewModal/index.js +0 -0
  122. package/{admin → build/admin}/src/components/ReportsReviewTable/index.d.ts +0 -0
  123. package/{admin → build/admin}/src/components/ReportsReviewTable/index.js +0 -0
  124. package/{admin → build/admin}/src/components/StatusBadge/index.d.ts +0 -0
  125. package/{admin → build/admin}/src/components/StatusBadge/index.js +0 -0
  126. package/{admin → build/admin}/src/components/StatusBadge/styles.d.ts +0 -0
  127. package/{admin → build/admin}/src/components/StatusBadge/styles.js +0 -0
  128. package/{admin → build/admin}/src/components/TableFilters/index.d.ts +0 -0
  129. package/{admin → build/admin}/src/components/TableFilters/index.js +0 -0
  130. package/{admin → build/admin}/src/components/TablePagination/index.d.ts +0 -0
  131. package/{admin → build/admin}/src/components/TablePagination/index.js +0 -0
  132. package/{admin → build/admin}/src/components/icons/comments.d.ts +0 -0
  133. package/{admin → build/admin}/src/components/icons/comments.js +0 -0
  134. package/{admin → build/admin}/src/components/icons/index.d.ts +0 -0
  135. package/{admin → build/admin}/src/components/icons/index.js +0 -0
  136. package/{admin → build/admin}/src/components/icons/lock.d.ts +0 -0
  137. package/{admin → build/admin}/src/components/icons/lock.js +0 -0
  138. package/{admin → build/admin}/src/components/icons/review.d.ts +0 -0
  139. package/{admin → build/admin}/src/components/icons/review.js +0 -0
  140. package/{admin → build/admin}/src/components/icons/unlock.d.ts +0 -0
  141. package/{admin → build/admin}/src/components/icons/unlock.js +0 -0
  142. package/{admin → build/admin}/src/hooks/useConfig.d.ts +0 -0
  143. package/{admin → build/admin}/src/hooks/useConfig.js +0 -0
  144. package/{admin → build/admin}/src/index.d.ts +0 -0
  145. package/{admin → build/admin}/src/index.js +0 -0
  146. package/{admin → build/admin}/src/pages/App/index.d.ts +0 -0
  147. package/{admin → build/admin}/src/pages/App/index.js +0 -0
  148. package/{admin → build/admin}/src/pages/App/reducer/actions.d.ts +0 -0
  149. package/{admin → build/admin}/src/pages/App/reducer/actions.js +0 -0
  150. package/{admin → build/admin}/src/pages/App/reducer/constants.d.ts +0 -0
  151. package/{admin → build/admin}/src/pages/App/reducer/constants.js +0 -0
  152. package/{admin → build/admin}/src/pages/App/reducer/index.d.ts +0 -0
  153. package/{admin → build/admin}/src/pages/App/reducer/index.js +0 -0
  154. package/{admin → build/admin}/src/pages/App/reducer/init.d.ts +0 -0
  155. package/{admin → build/admin}/src/pages/App/reducer/init.js +0 -0
  156. package/{admin → build/admin}/src/pages/App/reducer/selectors.d.ts +0 -0
  157. package/{admin → build/admin}/src/pages/App/reducer/selectors.js +0 -0
  158. package/{admin → build/admin}/src/pages/App/utils/api.d.ts +0 -0
  159. package/{admin → build/admin}/src/pages/App/utils/api.js +0 -0
  160. package/{admin → build/admin}/src/pages/ComingSoonPage/index.d.ts +0 -0
  161. package/{admin → build/admin}/src/pages/ComingSoonPage/index.js +0 -0
  162. package/{admin → build/admin}/src/pages/Details/components/DetailsEntity/index.d.ts +0 -0
  163. package/{admin → build/admin}/src/pages/Details/components/DetailsEntity/index.js +0 -0
  164. package/{admin → build/admin}/src/pages/Details/components/DetailsFilters/index.d.ts +0 -0
  165. package/{admin → build/admin}/src/pages/Details/components/DetailsFilters/index.js +0 -0
  166. package/{admin → build/admin}/src/pages/Details/components/DetailsFilters/styles.d.ts +0 -0
  167. package/{admin → build/admin}/src/pages/Details/components/DetailsFilters/styles.js +0 -0
  168. package/{admin → build/admin}/src/pages/Details/index.d.ts +0 -0
  169. package/{admin → build/admin}/src/pages/Details/index.js +0 -0
  170. package/{admin → build/admin}/src/pages/Discover/components/DiscoverTableRow/index.d.ts +0 -0
  171. package/{admin → build/admin}/src/pages/Discover/components/DiscoverTableRow/index.js +0 -0
  172. package/{admin → build/admin}/src/pages/Discover/components/DiscoverTableRow/styles.d.ts +0 -0
  173. package/{admin → build/admin}/src/pages/Discover/components/DiscoverTableRow/styles.js +0 -0
  174. package/{admin → build/admin}/src/pages/Discover/index.d.ts +0 -0
  175. package/{admin → build/admin}/src/pages/Discover/index.js +0 -0
  176. package/{admin → build/admin}/src/pages/Discover/utils/api.d.ts +0 -0
  177. package/{admin → build/admin}/src/pages/Discover/utils/api.js +0 -0
  178. package/{admin → build/admin}/src/pages/Discover/utils/filtersSchema.d.ts +0 -0
  179. package/{admin → build/admin}/src/pages/Discover/utils/filtersSchema.js +0 -0
  180. package/{admin → build/admin}/src/pages/Settings/components/RestartAlert/styles.d.ts +0 -0
  181. package/{admin → build/admin}/src/pages/Settings/components/RestartAlert/styles.js +0 -0
  182. package/{admin → build/admin}/src/pages/Settings/index.d.ts +0 -0
  183. package/{admin → build/admin}/src/pages/Settings/index.js +0 -0
  184. package/{admin → build/admin}/src/pages/Settings/utils/api.d.ts +0 -0
  185. package/{admin → build/admin}/src/pages/Settings/utils/api.js +0 -0
  186. package/{admin → build/admin}/src/pages/utils/api.d.ts +0 -0
  187. package/{admin → build/admin}/src/pages/utils/api.js +0 -0
  188. package/{admin → build/admin}/src/permissions.d.ts +0 -0
  189. package/{admin → build/admin}/src/permissions.js +0 -0
  190. package/{admin → build/admin}/src/pluginId.d.ts +0 -0
  191. package/{admin → build/admin}/src/pluginId.js +0 -0
  192. package/{admin → build/admin}/src/reducers.d.ts +0 -0
  193. package/{admin → build/admin}/src/reducers.js +0 -0
  194. package/build/admin/src/translations/en.json +132 -0
  195. package/build/admin/src/translations/fr.json +132 -0
  196. package/build/admin/src/translations/pt-BR.json +132 -0
  197. package/{admin → build/admin}/src/utils/axiosInstance.d.ts +0 -0
  198. package/{admin → build/admin}/src/utils/axiosInstance.js +0 -0
  199. package/{admin → build/admin}/src/utils/constants.d.ts +0 -0
  200. package/{admin → build/admin}/src/utils/constants.js +0 -0
  201. package/{admin → build/admin}/src/utils/getApiUrl.d.ts +0 -0
  202. package/{admin → build/admin}/src/utils/getApiUrl.js +0 -0
  203. package/{admin → build/admin}/src/utils/getMessage.d.ts +0 -0
  204. package/{admin → build/admin}/src/utils/getMessage.js +0 -0
  205. package/{admin → build/admin}/src/utils/getRelatedGroups.d.ts +0 -0
  206. package/{admin → build/admin}/src/utils/getRelatedGroups.js +0 -0
  207. package/{admin → build/admin}/src/utils/getUrl.d.ts +0 -0
  208. package/{admin → build/admin}/src/utils/getUrl.js +0 -0
  209. package/{admin → build/admin}/src/utils/handleAPIError.d.ts +0 -0
  210. package/{admin → build/admin}/src/utils/handleAPIError.js +0 -0
  211. package/{admin → build/admin}/src/utils/index.d.ts +0 -0
  212. package/{admin → build/admin}/src/utils/index.js +0 -0
  213. package/{admin → build/admin}/src/utils/parseRegExp.d.ts +0 -0
  214. package/{admin → build/admin}/src/utils/parseRegExp.js +0 -0
  215. package/{admin → build/admin}/src/utils/renderEntryTitle.d.ts +0 -0
  216. package/{admin → build/admin}/src/utils/renderEntryTitle.js +0 -0
  217. package/{admin → build/admin}/src/utils/renderInitials.d.ts +0 -0
  218. package/{admin → build/admin}/src/utils/renderInitials.js +0 -0
  219. package/{admin → build/admin}/src/utils/resolveCommentStatus.d.ts +0 -0
  220. package/{admin → build/admin}/src/utils/resolveCommentStatus.js +0 -0
  221. package/{admin → build/admin}/src/utils/resolveCommentStatusColor.d.ts +0 -0
  222. package/{admin → build/admin}/src/utils/resolveCommentStatusColor.js +0 -0
  223. package/{content-types → build/content-types}/comment.d.ts +0 -0
  224. package/{content-types → build/content-types}/comment.js +0 -0
  225. package/{content-types → build/content-types}/index.d.ts +0 -0
  226. package/{content-types → build/content-types}/index.js +0 -0
  227. package/{content-types → build/content-types}/report.d.ts +0 -0
  228. package/{content-types → build/content-types}/report.js +0 -0
  229. package/build/package.json +94 -0
  230. package/{permissions.d.ts → build/permissions.d.ts} +0 -0
  231. package/{permissions.js → build/permissions.js} +0 -0
  232. package/{server → build/server}/bootstrap.d.ts +0 -0
  233. package/{server → build/server}/bootstrap.js +0 -0
  234. package/{server → build/server}/config/index.d.ts +0 -0
  235. package/{server → build/server}/config/index.js +0 -0
  236. package/{server → build/server}/controllers/admin.d.ts +0 -0
  237. package/{server → build/server}/controllers/admin.js +0 -0
  238. package/{server → build/server}/controllers/client.d.ts +0 -0
  239. package/{server → build/server}/controllers/client.js +0 -0
  240. package/{server → build/server}/controllers/index.d.ts +0 -0
  241. package/{server → build/server}/controllers/index.js +0 -0
  242. package/{server → build/server}/controllers/utils/functions.d.ts +0 -0
  243. package/{server → build/server}/controllers/utils/functions.js +0 -0
  244. package/{server → build/server}/controllers/utils/parsers.d.ts +0 -0
  245. package/{server → build/server}/controllers/utils/parsers.js +0 -0
  246. package/{server → build/server}/destroy.d.ts +0 -0
  247. package/{server → build/server}/destroy.js +0 -0
  248. package/{server → build/server}/graphql/index.d.ts +0 -0
  249. package/{server → build/server}/graphql/index.js +0 -0
  250. package/{server → build/server}/graphql/mutations/createAbuseReport.d.ts +0 -0
  251. package/{server → build/server}/graphql/mutations/createAbuseReport.js +0 -0
  252. package/{server → build/server}/graphql/mutations/createComment.d.ts +0 -0
  253. package/{server → build/server}/graphql/mutations/createComment.js +0 -0
  254. package/{server → build/server}/graphql/mutations/index.d.ts +0 -0
  255. package/{server → build/server}/graphql/mutations/index.js +0 -0
  256. package/{server → build/server}/graphql/mutations/removeComment.d.ts +0 -0
  257. package/{server → build/server}/graphql/mutations/removeComment.js +0 -0
  258. package/{server → build/server}/graphql/mutations/updateComment.d.ts +0 -0
  259. package/{server → build/server}/graphql/mutations/updateComment.js +0 -0
  260. package/{server → build/server}/graphql/queries/findAllFlat.d.ts +0 -0
  261. package/{server → build/server}/graphql/queries/findAllFlat.js +0 -0
  262. package/{server → build/server}/graphql/queries/findAllInHierarchy.d.ts +0 -0
  263. package/{server → build/server}/graphql/queries/findAllInHierarchy.js +0 -0
  264. package/{server → build/server}/graphql/queries/index.d.ts +0 -0
  265. package/{server → build/server}/graphql/queries/index.js +0 -0
  266. package/{server → build/server}/graphql/resolvers-config.d.ts +0 -0
  267. package/{server → build/server}/graphql/resolvers-config.js +0 -0
  268. package/{server → build/server}/graphql/types/comment-author.d.ts +0 -0
  269. package/{server → build/server}/graphql/types/comment-author.js +0 -0
  270. package/{server → build/server}/graphql/types/comment-nested.d.ts +0 -0
  271. package/{server → build/server}/graphql/types/comment-nested.js +0 -0
  272. package/{server → build/server}/graphql/types/comment.d.ts +0 -0
  273. package/{server → build/server}/graphql/types/comment.js +0 -0
  274. package/{server → build/server}/graphql/types/create-comment-author.d.ts +0 -0
  275. package/{server → build/server}/graphql/types/create-comment-author.js +0 -0
  276. package/{server → build/server}/graphql/types/create-comment.d.ts +0 -0
  277. package/{server → build/server}/graphql/types/create-comment.js +0 -0
  278. package/{server → build/server}/graphql/types/create-report.d.ts +0 -0
  279. package/{server → build/server}/graphql/types/create-report.js +0 -0
  280. package/{server → build/server}/graphql/types/id.d.ts +0 -0
  281. package/{server → build/server}/graphql/types/id.js +0 -0
  282. package/{server → build/server}/graphql/types/identify-comment-author.d.ts +0 -0
  283. package/{server → build/server}/graphql/types/identify-comment-author.js +0 -0
  284. package/{server → build/server}/graphql/types/index.d.ts +0 -0
  285. package/{server → build/server}/graphql/types/index.js +0 -0
  286. package/{server → build/server}/graphql/types/remove-comment.d.ts +0 -0
  287. package/{server → build/server}/graphql/types/remove-comment.js +0 -0
  288. package/{server → build/server}/graphql/types/report-reason.d.ts +0 -0
  289. package/{server → build/server}/graphql/types/report-reason.js +0 -0
  290. package/{server → build/server}/graphql/types/report.d.ts +0 -0
  291. package/{server → build/server}/graphql/types/report.js +0 -0
  292. package/{server → build/server}/graphql/types/response-find-all.d.ts +0 -0
  293. package/{server → build/server}/graphql/types/response-find-all.js +0 -0
  294. package/{server → build/server}/graphql/types/response-meta.d.ts +0 -0
  295. package/{server → build/server}/graphql/types/response-meta.js +0 -0
  296. package/{server → build/server}/graphql/types/response-pagination.d.ts +0 -0
  297. package/{server → build/server}/graphql/types/response-pagination.js +0 -0
  298. package/{server → build/server}/graphql/types/update-comment.d.ts +0 -0
  299. package/{server → build/server}/graphql/types/update-comment.js +0 -0
  300. package/{server → build/server}/index.d.ts +0 -0
  301. package/{server → build/server}/index.js +0 -0
  302. package/{server → build/server}/register.d.ts +0 -0
  303. package/{server → build/server}/register.js +0 -0
  304. package/{server → build/server}/routes/admin.d.ts +0 -0
  305. package/{server → build/server}/routes/admin.js +0 -0
  306. package/{server → build/server}/routes/client.d.ts +0 -0
  307. package/{server → build/server}/routes/client.js +0 -0
  308. package/{server → build/server}/routes/index.d.ts +0 -0
  309. package/{server → build/server}/routes/index.js +0 -0
  310. package/{server → build/server}/services/admin.d.ts +0 -0
  311. package/{server → build/server}/services/admin.js +0 -0
  312. package/{server → build/server}/services/client.d.ts +0 -0
  313. package/{server → build/server}/services/client.js +0 -0
  314. package/{server → build/server}/services/common.d.ts +0 -0
  315. package/{server → build/server}/services/common.js +4 -1
  316. package/{server → build/server}/services/graphql.d.ts +0 -0
  317. package/{server → build/server}/services/graphql.js +0 -0
  318. package/{server → build/server}/services/index.d.ts +0 -0
  319. package/{server → build/server}/services/index.js +0 -0
  320. package/{server → build/server}/services/utils/functions.d.ts +0 -0
  321. package/{server → build/server}/services/utils/functions.js +0 -0
  322. package/{server → build/server}/utils/constants.d.ts +0 -0
  323. package/{server → build/server}/utils/constants.js +0 -0
  324. package/{server → build/server}/utils/error.d.ts +0 -0
  325. package/{server → build/server}/utils/error.js +0 -0
  326. package/{server → build/server}/utils/functions.d.ts +0 -0
  327. package/{server → build/server}/utils/functions.js +0 -0
  328. package/{strapi-admin.d.ts → build/strapi-admin.d.ts} +0 -0
  329. package/{strapi-admin.js → build/strapi-admin.js} +0 -0
  330. package/{strapi-server.d.ts → build/strapi-server.d.ts} +0 -0
  331. package/{strapi-server.js → build/strapi-server.js} +0 -0
  332. package/build/tsconfig.tsbuildinfo +1 -0
  333. package/{types → build/types}/contentTypes.d.ts +0 -0
  334. package/{types → build/types}/contentTypes.js +0 -0
  335. package/content-types/comment.ts +93 -0
  336. package/content-types/index.ts +11 -0
  337. package/content-types/report.ts +50 -0
  338. package/jest.config.ts +22 -0
  339. package/package.json +33 -4
  340. package/permissions.ts +17 -0
  341. package/server/bootstrap.ts +66 -0
  342. package/server/config/index.ts +19 -0
  343. package/server/controllers/admin.ts +194 -0
  344. package/server/controllers/client.ts +220 -0
  345. package/server/controllers/index.ts +13 -0
  346. package/server/controllers/utils/functions.ts +27 -0
  347. package/server/controllers/utils/parsers.ts +59 -0
  348. package/server/destroy.ts +3 -0
  349. package/server/graphql/index.ts +27 -0
  350. package/server/graphql/mutations/createAbuseReport.ts +38 -0
  351. package/server/graphql/mutations/createComment.ts +41 -0
  352. package/server/graphql/mutations/index.ts +26 -0
  353. package/server/graphql/mutations/removeComment.ts +41 -0
  354. package/server/graphql/mutations/updateComment.ts +40 -0
  355. package/server/graphql/queries/findAllFlat.ts +58 -0
  356. package/server/graphql/queries/findAllInHierarchy.ts +47 -0
  357. package/server/graphql/queries/index.ts +22 -0
  358. package/server/graphql/resolvers-config.ts +13 -0
  359. package/server/graphql/types/comment-author.ts +12 -0
  360. package/server/graphql/types/comment-nested.ts +19 -0
  361. package/server/graphql/types/comment.ts +18 -0
  362. package/server/graphql/types/create-comment-author.ts +12 -0
  363. package/server/graphql/types/create-comment.ts +12 -0
  364. package/server/graphql/types/create-report.ts +12 -0
  365. package/server/graphql/types/id.ts +28 -0
  366. package/server/graphql/types/identify-comment-author.ts +9 -0
  367. package/server/graphql/types/index.ts +38 -0
  368. package/server/graphql/types/remove-comment.ts +11 -0
  369. package/server/graphql/types/report-reason.ts +12 -0
  370. package/server/graphql/types/report.ts +14 -0
  371. package/server/graphql/types/response-find-all.ts +10 -0
  372. package/server/graphql/types/response-meta.ts +9 -0
  373. package/server/graphql/types/response-pagination.ts +14 -0
  374. package/server/graphql/types/update-comment.ts +12 -0
  375. package/server/index.ts +20 -0
  376. package/server/register.ts +3 -0
  377. package/server/routes/admin.ts +118 -0
  378. package/server/routes/client.ts +95 -0
  379. package/server/routes/index.ts +25 -0
  380. package/server/services/admin.ts +406 -0
  381. package/server/services/client.ts +394 -0
  382. package/server/services/common.ts +503 -0
  383. package/server/services/graphql.ts +219 -0
  384. package/server/services/index.ts +13 -0
  385. package/server/services/utils/functions.ts +150 -0
  386. package/server/utils/constants.ts +23 -0
  387. package/server/utils/error.ts +44 -0
  388. package/server/utils/functions.ts +55 -0
  389. package/strapi-admin.ts +5 -0
  390. package/strapi-server.ts +77 -0
  391. package/tsconfig.json +38 -0
  392. package/types/common.d.ts +1 -0
  393. package/types/config.d.ts +35 -0
  394. package/types/constants.d.ts +3 -0
  395. package/types/contentTypes.ts +56 -0
  396. package/types/controllers.d.ts +125 -0
  397. package/types/graphql.d.ts +24 -0
  398. package/types/index.d.ts +7 -0
  399. package/types/services.d.ts +166 -0
  400. package/tsconfig.tsbuildinfo +0 -1
@@ -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;
@@ -0,0 +1,71 @@
1
+ // @ts-nocheck
2
+
3
+ import { getApiURL, axiosInstance, handleAPIError } from "../../../utils";
4
+
5
+ // eslint-disable-next-line import/prefer-default-export
6
+ export const fetchConfig = async (toggleNotification) => {
7
+ try {
8
+ const { data } = await axiosInstance.get(getApiURL(`settings/config`));
9
+
10
+ return data;
11
+ } catch (err) {
12
+ handleAPIError(
13
+ err,
14
+ toggleNotification,
15
+ "page.settings.notification.fetch.error"
16
+ );
17
+ }
18
+ };
19
+
20
+ export const updateConfig = async (body, toggleNotification) => {
21
+ try {
22
+ const { data } = await axiosInstance.put(
23
+ getApiURL(`settings/config`),
24
+ body
25
+ );
26
+
27
+ return data;
28
+ } catch (err) {
29
+ handleAPIError(err, toggleNotification);
30
+ }
31
+ };
32
+
33
+ export const restoreConfig = async (toggleNotification) => {
34
+ try {
35
+ const { data } = await axiosInstance.delete(getApiURL(`settings/config`));
36
+
37
+ return data;
38
+ } catch (err) {
39
+ handleAPIError(err, toggleNotification);
40
+ }
41
+ };
42
+
43
+ export const fetchAllContentTypes = async (toggleNotification) => {
44
+ try {
45
+ const { data } = await axiosInstance.get(
46
+ `/content-type-builder/content-types`
47
+ );
48
+ return data?.data;
49
+ } catch (err) {
50
+ handleAPIError(err, toggleNotification);
51
+ }
52
+ };
53
+
54
+ export const fetchRoles = async (toggleNotification) => {
55
+ try {
56
+ const { data } = await axiosInstance.get(`/admin/roles`);
57
+ return data;
58
+ } catch (err) {
59
+ handleAPIError(err, toggleNotification);
60
+ }
61
+ };
62
+
63
+ export const restartStrapi = async (toggleNotification) => {
64
+ try {
65
+ const { data } = await axiosInstance.get(getApiURL(`settings/restart`));
66
+
67
+ return data;
68
+ } catch (err) {
69
+ handleAPIError(err, toggleNotification);
70
+ }
71
+ };