strapi-plugin-comments 3.0.10 → 3.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/_chunks/{index-DG6A3YTl.mjs → index-AFEDE3U9.mjs} +2 -2
- package/dist/_chunks/{index-C1iG6Vvf.js → index-BJ-cmAR2.js} +1 -1
- package/dist/_chunks/{index-CzOGwAt4.mjs → index-BpOlLizi.mjs} +471 -461
- package/dist/_chunks/{index-BkeaCrYD.js → index-C4akpgH_.js} +1 -1
- package/dist/_chunks/{index-B3sOw8of.mjs → index-CpBNh6Rx.mjs} +8220 -8062
- package/dist/_chunks/{index-BmZpl8oj.mjs → index-DImm7PZM.mjs} +2 -2
- package/dist/_chunks/index-DYUGPksR.js +2228 -0
- package/dist/_chunks/index-hoQGufqY.js +18 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +28 -28
- package/dist/server/index.mjs +1655 -1647
- package/dist/server/src/controllers/index.d.ts +111 -1
- package/dist/server/src/index.d.ts +444 -1
- package/dist/server/src/services/admin/admin.service.d.ts +111 -0
- package/dist/server/src/services/client.service.d.ts +111 -0
- package/dist/server/src/services/index.d.ts +333 -0
- package/dist/server/src/validators/api/controllers/client.controller.validator.d.ts +111 -0
- package/package.json +16 -9
- package/dist/_chunks/index-3aTvO9o4.js +0 -2221
- package/dist/_chunks/index-CdurBq-v.js +0 -18
package/README.md
CHANGED
|
@@ -247,6 +247,8 @@ Feature / Capability focused permissions:
|
|
|
247
247
|
}
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
+
> _**Note:** If you want to use `plguin::user-permissions.user` as a comment's author with an avatar, you need to add an `avatar` field to its model. This field have to be of type `Media`._
|
|
251
|
+
|
|
250
252
|
## 🕸️ Public REST API specification
|
|
251
253
|
|
|
252
254
|
**Strapi Users vs. Generic authors**
|
|
@@ -419,6 +421,23 @@ _Strapi user_
|
|
|
419
421
|
}
|
|
420
422
|
```
|
|
421
423
|
|
|
424
|
+
_Multi-language entities_
|
|
425
|
+
|
|
426
|
+
> When posting comments to entities with multiple locales, you must provide the `locale` field in the payload to match the entity's locale:
|
|
427
|
+
|
|
428
|
+
```json
|
|
429
|
+
{
|
|
430
|
+
"author": {
|
|
431
|
+
"id": 518,
|
|
432
|
+
"name": "Author",
|
|
433
|
+
"email": "author@example.com",
|
|
434
|
+
"avatar": "<Link to avatar file>"
|
|
435
|
+
},
|
|
436
|
+
"content": "Test",
|
|
437
|
+
"locale": "fr" // Locale must be the same as the provided entity
|
|
438
|
+
}
|
|
439
|
+
```
|
|
440
|
+
|
|
422
441
|
**Example response body**
|
|
423
442
|
|
|
424
443
|
```json
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as e, Fragment as O, jsxs as i } from "react/jsx-runtime";
|
|
2
|
-
import { l as j, e as L, f as ae, B as p, a3 as re, F as q, T as m, $ as r, o as n, a4 as T, a5 as x, a6 as f, a7 as se, a8 as N, a9 as Q, aa as le } from "./index-
|
|
2
|
+
import { l as j, e as L, f as ae, B as p, a3 as re, F as q, T as m, $ as r, o as n, a4 as T, a5 as x, a6 as f, a7 as se, a8 as N, a9 as Q, aa as le } from "./index-CpBNh6Rx.mjs";
|
|
3
3
|
import { useTracking as ce, useNotification as de, Page as W, Layouts as D, Form as ge } from "@strapi/strapi/admin";
|
|
4
4
|
import { useMutation as A, useQuery as M, useQueryClient as he, QueryClient as pe } from "@tanstack/react-query";
|
|
5
5
|
import { useMemo as me, useRef as ue, useState as be, useCallback as $ } from "react";
|
|
6
6
|
import fe from "styled-components";
|
|
7
|
-
import { u as U, e as ye, a as Se, g as t, d as we } from "./index-
|
|
7
|
+
import { u as U, e as ye, a as Se, g as t, d as we } from "./index-BpOlLizi.mjs";
|
|
8
8
|
const P = ({
|
|
9
9
|
children: d,
|
|
10
10
|
condition: l
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),W=require("@strapi/strapi/admin"),he=require("react-router-dom"),g=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),W=require("@strapi/strapi/admin"),he=require("react-router-dom"),g=require("./index-DYUGPksR.js"),K=require("@tanstack/react-query"),O=require("./index-hoQGufqY.js"),X_=require("zustand/react"),ee=require("react"),me=require("styled-components"),Z_=require("codemirror5"),J_=require("sanitize-html"),ed=require("punycode");require("codemirror5/addon/display/placeholder");const lt=t=>t&&t.__esModule?t:{default:t};function td(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const se=td(ee),Ue=lt(me),mo=lt(Z_),Bo=lt(J_),nd=lt(ed),rd=()=>d.jsxs(g.SubNav,{ariaLabel:"Comments sub nav",children:[d.jsx(g.SubNavHeader,{label:"Comments"}),d.jsx(g.SubNavSections,{children:d.jsxs(g.SubNavSection,{label:"Moderation",children:[d.jsx(g.SubNavLink,{href:"/admin/plugins/comments/discover",children:"Discover"}),d.jsx(g.SubNavLink,{href:"/admin/plugins/comments/reports",withBullet:!1,children:"Reports"})]})})]}),ad=t=>{const e=O.useAPI();return K.useQuery({queryKey:e.config.getKey(),queryFn:()=>e.config.query().then(n=>(t(n),n))})},od=X_.create(t=>({settings:{entryLabel:{},approvalFlow:[],blockedAuthorProps:[],reportReasons:{BAD_LANGUAGE:"BAD_LANGUAGE",DISCRIMINATION:"DISCRIMINATION",OTHER:"OTHER"},regex:{uid:"",relatedUid:"",email:"",sorting:""},enabledCollections:[],moderatorRoles:[],isGQLPluginEnabled:!1,client:{url:"",contactEmail:""}},setSettings:e=>t({settings:e})})),id=(t="")=>`/plugins/${g.pluginId}/${t}`,sd=(t=null,e=null,n="app.components.notification.error")=>{throw e({type:"warning",message:`${g.pluginId}.${n}`}),t||new Error("error")},Go=(t="")=>g.lodashExports.isString(t)?t.split(" ").map(e=>g.lodashExports.first(e)).join("").toUpperCase():"",cd=({removed:t,blocked:e,blockedThread:n,approvalStatus:r,reviewFlowEnabled:a})=>{const i=!g.lodashExports.isNil(r);if(t)return O.COMMENT_STATUS.REMOVED;if(e||n)return O.COMMENT_STATUS.BLOCKED;if(a)return O.COMMENT_STATUS.TO_REVIEW;if(i){const o=r.toUpperCase();return Object.keys(O.COMMENT_STATUS).includes(o)?o:O.COMMENT_STATUS.UNKNOWN}return O.COMMENT_STATUS.OPEN},ld=t=>{if(Object.values(O.COMMENT_STATUS).includes(t))switch(t){case O.COMMENT_STATUS.REMOVED:return"secondary";case O.COMMENT_STATUS.TO_REVIEW:case O.COMMENT_STATUS.REJECTED:return"warning";case O.COMMENT_STATUS.BLOCKED:return"danger";case O.COMMENT_STATUS.OPEN:case O.COMMENT_STATUS.APPROVED:return"success"}return"secondary"},_d=({resolved:t,related:{blocked:e,blockedThread:n},approvalStatus:r})=>{const a=!g.lodashExports.isNil(r);if(e||n)return O.REPORT_STATUS.BLOCKED;if(t)return O.REPORT_STATUS.RESOLVED;if(a){const i=r.toUpperCase();return Object.keys(O.REPORT_STATUS).includes(i)?i:O.REPORT_STATUS.PENDING}return O.REPORT_STATUS.PENDING},dd=t=>{switch(t){case O.REPORT_STATUS.PENDING:return"primary";case O.REPORT_STATUS.RESOLVED:return"success";case O.REPORT_STATUS.BLOCKED:return"danger";default:return"primary"}},qo=t=>{const[e,n]=t.split("/").filter(r=>r.length>0);return{value:e,flags:n}},ud=({config:t,entity:e,filters:n,onChangeFilters:r,schema:a})=>{const{entryLabel:i={}}=t,{attributes:o={}}=a,{removed:c=!1}=n;K.useQueryClient();const s=Object.keys(o),l=g.lodashExports.first(i[e?.uid]),m=g.lodashExports.take(s.filter(f=>o[f].type==="string"&&!g.lodashExports.isNil(e[f])&&f!==l),5),u=(f="")=>f.split("_").map(E=>g.lodashExports.capitalize(E)).join(" "),p=e&&!g.lodashExports.isEmpty(e)&&(!g.lodashExports.isEmpty(m)||e[l]),S=ee.useCallback(f=>{r({...n,removed:f||void 0})},[r,n]);return d.jsxs(g.Box,{padding:4,background:"neutral0",width:"100%",children:[p&&d.jsxs(g.Box,{marginBottom:4,children:[d.jsx(g.Typography,{variant:"sigma",textColor:"neutral600",id:"entity-details",children:O.getMessage("page.details.panel.entity","Details")}),d.jsx(g.Box,{paddingTop:2,paddingBottom:4,children:d.jsx(g.Divider,{})}),d.jsxs(g.Flex,{children:[d.jsxs(g.Flex,{direction:"column",alignItems:"flex-start",children:[d.jsx(g.Typography,{fontWeight:"bold",children:u(l)}),d.jsx(g.Typography,{children:e[l]})]}),d.jsx(g.Flex,{space:4,children:m.map(f=>d.jsxs(g.Flex,{direction:"column",alignItems:"flex-start",children:[d.jsx(g.Typography,{fontWeight:"bold",children:u(f)}),d.jsx(g.Typography,{children:e[f]})]},`prop_${f}`))})]})]}),d.jsxs(g.Box,{children:[d.jsx(g.Typography,{variant:"sigma",textColor:"neutral600",id:"view-filters",children:O.getMessage("page.details.filters.label","View")}),d.jsx(g.Box,{paddingTop:2,paddingBottom:4,children:d.jsx(g.Divider,{})}),d.jsx(g.Flex,{children:d.jsx(g.CheckboxImpl,{checked:c,onCheckedChange:S,children:O.getMessage("page.details.filters.removed.label","Show removed comments")})})]})]})},Fe=(t={comment:{},report:{}})=>{const e=O.useAPI(),{canModerate:n}=O.usePermissions(),r=f=>n?f:void 0,a=K.useMutation({mutationFn:r(e.comments.block),onSuccess:t.comment?.blockSuccess,onError:t.comment?.blockError}),i=K.useMutation({mutationFn:r(e.comments.unblock),onSuccess:t.comment?.unBlockSuccess,onError:t.comment?.unBlockError}),o=K.useMutation({mutationFn:r(e.comments.blockThread),onSuccess:t.comment?.blockThreadSuccess,onError:t.comment?.blockThreadError}),c=K.useMutation({mutationFn:r(e.comments.unBlockThread),onSuccess:t.comment?.unBlockThreadSuccess,onError:t.comment?.unBlockThreadError}),s=K.useMutation({mutationFn:r(e.comments.delete),onSuccess:t.comment?.deleteSuccess,onError:t.comment?.deleteError}),l=K.useMutation({mutationFn:r(e.comments.postComment),onSuccess:t.comment?.postCommentSuccess,onError:t.comment?.postCommentError}),_=K.useMutation({mutationFn:r(e.reports.resolveMultipleReports),onSuccess:t.report?.resolveMultipleSuccess,onError:t.report?.resolveMultipleError}),m=K.useMutation({mutationFn:r(e.reports.resolveCommentMultipleReports),onSuccess:t.report?.resolveCommentMultipleReportsSuccess,onError:t.report?.resolveCommentMultipleReportsError}),u=K.useMutation({mutationFn:r(e.reports.resolve),onSuccess:t.report?.resolveSuccess,onError:t.report?.resolveError}),p=K.useMutation({mutationFn:r(e.reports.resolveAllAbuseReportsForComment),onSuccess:t.report?.resolveAllAbuseSuccess,onError:t.report?.resolveAllAbuseError}),S=K.useMutation({mutationFn:r(e.reports.resolveAllAbuseReportsForThread),onSuccess:t.report?.resolveAllAbuseThreadSuccess,onError:t.report?.resolveAllAbuseThreadError});return ee.useMemo(()=>({commentMutation:{block:a,unBlock:i,blockThread:o,unBlockThread:c,delete:s,postComment:l},reportMutation:{resolve:u,resolveMultiple:_,resolveAllAbuse:p,resolveAllAbuseThread:S,resolveCommentMultipleReports:m}}),[a,i,o,c,_,p,S,s,u])},To=()=>{const t=ee.useContext(O.UserContext);if(!t)throw new Error("UserContext is not provided");return t},go=Ue.default(g.Button)(({isSingle:t})=>({padding:"7px 16px",marginLeft:t?"0":".5rem",whiteSpace:"nowrap"})),m_=({id:t,canModerate:e,queryKey:n})=>{const{toggleNotification:r}=W.useNotification(),a=K.useQueryClient(),i=O.useAPI(),o=u=>async()=>{await a.invalidateQueries({exact:!1,queryKey:n}),r({type:"success",message:`${g.pluginId}.${u}`})},c=u=>{sd(u,r)},s=K.useMutation({mutationKey:["approveItem",t],mutationFn:i.comments.approve,onSuccess:o("success.approveItem"),onError:c}),l=()=>{s.mutate(t)},_=K.useMutation({mutationKey:["rejectItem",t],mutationFn:i.comments.reject,onSuccess:o("success.rejectItem"),onError:c}),m=()=>{_.mutate(t)};return e?d.jsxs(d.Fragment,{children:[d.jsx(g.IconButton,{onClick:l,label:"Approve",children:d.jsx(g.ForwardRef$4F,{})}),d.jsx(g.IconButton,{label:"Reject",onClick:m,children:d.jsx(g.ForwardRef$45,{})})]}):null},pd=Ue.default(g.Badge)`
|
|
2
2
|
padding: 5px 8px;
|
|
3
3
|
border: 1px ${({theme:t,color:e})=>t.colors[`${e}200`]} solid;
|
|
4
4
|
|