@strapi/admin 4.10.6 → 4.10.7
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/admin/src/hooks/index.js +1 -1
- package/admin/src/hooks/useAdminUsers/__mocks__/index.js +5 -0
- package/admin/src/hooks/useAdminUsers/index.js +1 -0
- package/admin/src/hooks/useAdminUsers/useAdminUsers.js +38 -0
- package/admin/src/hooks/useContentTypes/__mocks__/index.js +6 -0
- package/admin/src/hooks/useContentTypes/index.js +1 -0
- package/admin/src/hooks/useContentTypes/useContentTypes.js +45 -0
- package/admin/src/pages/HomePage/index.js +3 -2
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +12 -8
- package/admin/src/pages/SettingsPage/components/Tokens/TokenBox/index.js +28 -26
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +36 -26
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +1 -8
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +6 -7
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +54 -63
- package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +11 -9
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +2 -2
- package/admin/src/translations/ar.json +684 -1
- package/admin/src/translations/en.json +1 -0
- package/build/{1657.ca8562dd.chunk.js → 1657.3f2b2c11.chunk.js} +1 -9
- package/build/3081.7e9329cb.chunk.js +105 -0
- package/build/462.6f8cbd19.chunk.js +71 -0
- package/build/5542.64b623c9.chunk.js +63 -0
- package/build/5563.79950369.chunk.js +79 -0
- package/build/617.1591eeb0.chunk.js +155 -0
- package/build/6970.6a329e15.chunk.js +1 -0
- package/build/7259.5cc67413.chunk.js +1 -0
- package/build/9036.f7ce35cc.chunk.js +211 -0
- package/build/{Admin-authenticatedApp.0318dfb3.chunk.js → Admin-authenticatedApp.ad8a8a15.chunk.js} +1 -1
- package/build/{Admin_homePage.e15dcf28.chunk.js → Admin_homePage.94dc81b1.chunk.js} +16 -16
- package/build/Admin_marketplace.1b0c3d3b.chunk.js +55 -0
- package/build/Admin_pluginsPage.a28b96d5.chunk.js +6 -0
- package/build/{Admin_profilePage.1687246a.chunk.js → Admin_profilePage.a8fa3a56.chunk.js} +1 -1
- package/build/Admin_settingsPage.ee76d19e.chunk.js +79 -0
- package/build/admin-app.bd209f08.chunk.js +63 -0
- package/build/{admin-edit-roles-page.02c3b136.chunk.js → admin-edit-roles-page.0d12b741.chunk.js} +3 -3
- package/build/admin-edit-users.f9ce7844.chunk.js +10 -0
- package/build/admin-roles-list.af53b372.chunk.js +23 -0
- package/build/admin-users.0fc77b35.chunk.js +26 -0
- package/build/ar-json.f530bc3f.chunk.js +1 -0
- package/build/audit-logs-settings-page.dc07596e.chunk.js +121 -0
- package/build/{content-manager.cd71cb6e.chunk.js → content-manager.70548048.chunk.js} +1 -1
- package/build/content-type-builder-list-view.26aab6f3.chunk.js +215 -0
- package/build/email-settings-page.63f269ff.chunk.js +11 -0
- package/build/{en-json.d965e364.chunk.js → en-json.ba3290b8.chunk.js} +1 -1
- package/build/i18n-settings-page.f84c4782.chunk.js +114 -0
- package/build/index.html +1 -1
- package/build/main.4016f4ad.js +2630 -0
- package/build/review-workflows-settings.56cab253.chunk.js +61 -0
- package/build/{runtime~main.0201a49b.js → runtime~main.d7e177e4.js} +2 -2
- package/build/{sso-settings-page.c9d7c8df.chunk.js → sso-settings-page.265e3d72.chunk.js} +1 -1
- package/build/upload-settings.1d187578.chunk.js +14 -0
- package/build/upload.bc340679.chunk.js +26 -0
- package/build/users-advanced-settings-page.7b4bf63a.chunk.js +9 -0
- package/build/users-email-settings-page.035a026c.chunk.js +24 -0
- package/build/users-providers-settings-page.6873dce9.chunk.js +29 -0
- package/build/{webhook-edit-page.cb2cf1a5.chunk.js → webhook-edit-page.ddd5963d.chunk.js} +13 -13
- package/build/webhook-list-page.0861d3e9.chunk.js +63 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +1 -2
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +36 -28
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +32 -21
- package/ee/server/services/audit-logs.js +5 -1
- package/package.json +16 -17
- package/webpack.alias.js +0 -1
- package/admin/src/hooks/useModels/index.js +0 -58
- package/admin/src/hooks/useModels/reducer.js +0 -45
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +0 -20
- package/build/3081.c2cdfac8.chunk.js +0 -108
- package/build/3816.60f858cf.chunk.js +0 -211
- package/build/462.a073ff1f.chunk.js +0 -71
- package/build/5542.002522eb.chunk.js +0 -71
- package/build/5563.2c8334ef.chunk.js +0 -79
- package/build/617.87b2fe96.chunk.js +0 -155
- package/build/6970.36d3ffff.chunk.js +0 -1
- package/build/7259.116a9960.chunk.js +0 -1
- package/build/Admin_marketplace.f446ba2b.chunk.js +0 -55
- package/build/Admin_pluginsPage.7df6b5a9.chunk.js +0 -6
- package/build/Admin_settingsPage.f8c46a9a.chunk.js +0 -79
- package/build/admin-app.6d48536c.chunk.js +0 -63
- package/build/admin-edit-users.49363035.chunk.js +0 -10
- package/build/admin-roles-list.a323aa9f.chunk.js +0 -31
- package/build/admin-users.69f4900a.chunk.js +0 -34
- package/build/ar-json.39e54aba.chunk.js +0 -1
- package/build/audit-logs-settings-page.482909d7.chunk.js +0 -129
- package/build/content-type-builder-list-view.1e821eb9.chunk.js +0 -215
- package/build/email-settings-page.dba83275.chunk.js +0 -11
- package/build/i18n-settings-page.55628f74.chunk.js +0 -114
- package/build/main.adab8b96.js +0 -2630
- package/build/review-workflows-settings.26409ce4.chunk.js +0 -61
- package/build/upload-settings.63d99bf5.chunk.js +0 -14
- package/build/upload.c50d8c7a.chunk.js +0 -34
- package/build/users-advanced-settings-page.4f49ca57.chunk.js +0 -9
- package/build/users-email-settings-page.d2429d0a.chunk.js +0 -24
- package/build/users-providers-settings-page.50c5ba27.chunk.js +0 -29
- package/build/webhook-list-page.e2fca9f8.chunk.js +0 -71
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{55734:function(G,
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{55734:function(G,b,t){t.d(b,{Z:function(){return ge}});var e=t(32735),o=t(24989),A=t(27649),M=t(20108),p=t(53038),j=t(70166),me=t(60216),i=t.n(me),ne=t(2438),re=t(66456),Ee=t(29439),pe=t(82055),m=t(87933),S=t(41415),fe=t(17e3),k=t(72850),J=t(15335),D=t(5803),Y=t(10369),I=t(92802),$=t(67879),se=t(28847),O=t(49372),le=t(8471),ve=t(8284),Ce=t(82884),be=t(23940),Me=t.n(be);const W=({disabledEvents:n,name:r,events:s,inputValue:l,handleChange:c,handleChangeAll:f})=>{const d=s.filter(h=>!n.includes(h)),u=l.length===d.length,E=l.length>0,x=({target:{name:h}})=>{f({target:{name:h,value:!u}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(ve.X,{indeterminate:E&&!u,"aria-label":"Select all entries",name:r,onChange:x,value:u},Me()(r))),s.map(h=>e.createElement("td",{key:h},e.createElement(Ce.C,{disabled:n.includes(h),"aria-label":h,name:h,value:l.includes(h),onValueChange:v=>c({target:{name:h,value:v}})}))))};W.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},W.propTypes={disabledEvents:i().array,events:i().array,inputValue:i().array,handleChange:i().func,handleChangeAll:i().func,name:i().string.isRequired};var a=W;const y=n=>n.reduce((r,s)=>{const l=s.split(".")[0];return r[l]||(r[l]=[]),r[l].push(s),r},{}),U=le.ZP.table`
|
|
2
2
|
td {
|
|
3
3
|
height: ${52/16}rem;
|
|
4
4
|
width: 10%;
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
tbody tr td:first-child {
|
|
14
14
|
padding-left: ${({theme:n})=>n.spaces[7]};
|
|
15
15
|
}
|
|
16
|
-
`,Z={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},K=({isDraftAndPublish:n})=>{const r=n?Z.headers.draftAndPublish:Z.headers.default,s=n?Z.events.draftAndPublish:Z.events.default,{formatMessage:l}=(0,$.Z)(),{values:c,handleChange:f}=(0,I.u6)(),d="events",u=c.events,E=[],x=
|
|
16
|
+
`,Z={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},K=({isDraftAndPublish:n})=>{const r=n?Z.headers.draftAndPublish:Z.headers.default,s=n?Z.events.draftAndPublish:Z.events.default,{formatMessage:l}=(0,$.Z)(),{values:c,handleChange:f}=(0,I.u6)(),d="events",u=c.events,E=[],x=y(u),h=({target:{name:g,value:B}})=>{let R=new Set(u);B?R.add(g):R.delete(g),f({target:{name:d,value:Array.from(R)}})},v=({target:{name:g,value:B}})=>{let R=new Set(u);B?s[g].forEach(L=>{E.includes(L)||R.add(L)}):s[g].forEach(L=>R.delete(L)),f({target:{name:d,value:Array.from(R)}})};return e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(se.Q,null,l({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(U,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),r.map(g=>g==="app.utils.publish"||g==="app.utils.unpublish"?e.createElement("td",{key:g.id,title:l({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(O.Z,{variant:"sigma",textColor:"neutral600"},l(g))):e.createElement("td",{key:g.id},e.createElement(O.Z,{variant:"sigma",textColor:"neutral600"},l(g)))))),e.createElement("tbody",null,Object.keys(s).map(g=>e.createElement(a,{disabledEvents:E,key:g,name:g,events:s[g],inputValue:x[g],handleChange:h,handleChangeAll:v})))))};K.propTypes={isDraftAndPublish:i().bool.isRequired};var q=K,ye=t(19406),Pe=t(7563),xe=t(21428),ee=t(90333),ie=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const te=({name:n,onChange:r,value:s,...l})=>{const[c,f]=(0,e.useState)(s?[...ie,s]:ie),d=E=>{r({target:{name:n,value:E}})},u=E=>{f(x=>[...x,E]),r({target:{name:n,value:E}})};return e.createElement(xe.XU,{...l,onChange:d,onCreateOption:u,placeholder:"",value:s},c.map(E=>e.createElement(ee.O,{value:E,key:E},E)))};te.defaultProps={value:void 0},te.propTypes={name:i().string.isRequired,onChange:i().func.isRequired,value:i().string};var Ie=te,Oe=()=>{const{formatMessage:n}=(0,$.Z)(),{values:r,errors:s}=(0,I.u6)();return e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(se.Q,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(k.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(I.F2,{validateOnChange:!1,name:"headers",render:({push:l,remove:c})=>e.createElement(J.r,{gap:4},r.headers?.map((f,d)=>e.createElement(e.Fragment,{key:d},e.createElement(D.P,{col:6},e.createElement(I.gN,{as:Ie,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:s.headers?.[d]?.key&&n({id:s.headers[d]?.key,defaultMessage:s.headers[d]?.key})})),e.createElement(D.P,{col:6},e.createElement(m.k,{alignItems:"flex-end"},e.createElement(k.x,{style:{flex:1}},e.createElement(I.gN,{as:Y.o,"aria-label":`row ${d+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:s.headers?.[d]?.value&&n({id:s.headers[d]?.value,defaultMessage:s.headers[d]?.value})})),e.createElement(m.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:s.headers?.[d]?.value?0:5},e.createElement(o.fG,{onClick:()=>r.headers.length!==1&&c(d),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))),e.createElement(D.P,{col:12},e.createElement(Pe.A,{type:"button",onClick:()=>{l({key:"",value:""})},startIcon:e.createElement(ye.Z,null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},Re=t(27169),F=t(35331);const Q=le.ZP.svg(({theme:n,color:r})=>`
|
|
17
17
|
width: ${12/16}rem;
|
|
18
18
|
height: ${12/16}rem;
|
|
19
19
|
|
|
20
20
|
path {
|
|
21
21
|
fill: ${n.colors[r]};
|
|
22
22
|
}
|
|
23
|
-
`),ae=({isPending:n,statusCode:r})=>{const{formatMessage:s}=(0,$.Z)();return n?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:Re.Z}),e.createElement(O.Z,null,s({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):r>=200&&r<300?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:re.Z,color:"success700"}),e.createElement(O.Z,null,s({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):r>=300?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:F.Z,color:"danger700"}),e.createElement(O.Z,null,s({id:"Settings.error",defaultMessage:"error"})," ",r)):null};ae.propTypes={isPending:i().bool.isRequired,statusCode:i().number},ae.defaultProps={statusCode:void 0};const H=({statusCode:n,message:r})=>{const{formatMessage:s}=(0,$.Z)();return n>=200&&n<300?e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(O.Z,{textColor:"neutral600",ellipsis:!0},s({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(m.k,{maxWidth:(0,o.Q1)(250),justifyContent:"flex-end",title:r},e.createElement(O.Z,{ellipsis:!0,textColor:"neutral600"},r))):null};H.propTypes={statusCode:i().number,message:i().string},H.defaultProps={statusCode:void 0,message:void 0};const N=({onCancel:n})=>{const{formatMessage:r}=(0,$.Z)();return e.createElement(m.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(O.Z,{textColor:"neutral400"},r({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(Q,{as:F.Z,color:"neutral400"}))))};N.propTypes={onCancel:i().func.isRequired};const z=({isPending:n,onCancel:r,response:s})=>{const{statusCode:l,message:c}=s,{formatMessage:f}=(0,$.Z)();return e.createElement(j.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(J.r,{gap:4,style:{alignItems:"center"}},e.createElement(D.P,{col:3},e.createElement(O.Z,null,f({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(D.P,{col:3},e.createElement(ae,{isPending:n,statusCode:l})),e.createElement(D.P,{col:6},n?e.createElement(N,{onCancel:r}):e.createElement(H,{statusCode:l,message:c}))))};z.defaultProps={isPending:!1,onCancel(){},response:{}},z.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var Te=z,y=t(24346);const De=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,de=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ce=y.Ry().shape({name:y.Z_(o.I0.string).required(o.I0.required).matches(De,o.I0.regex),url:y.Z_(o.I0.string).required(o.I0.required).matches(de,o.I0.regex),headers:y.Vo(n=>{let r=y.IX();if(n.length===1){const{key:s,value:l}=n[0];if(!s&&!l)return r}return r.of(y.Ry().shape({key:y.Z_().required(o.I0.required),value:y.Z_().required(o.I0.required)}))}),events:y.IX()});const _=({handleSubmit:n,data:r,triggerWebhook:s,isCreating:l,isTriggering:c,triggerResponse:f,isDraftAndPublishEvents:d})=>{const{formatMessage:u}=(0,$.Z)(),[E,x]=(0,e.useState)(!1);return e.createElement(I.J9,{onSubmit:n,initialValues:{name:r?.name||"",url:r?.url||"",headers:Object.keys(r?.headers||[]).length?Object.entries(r.headers).map(([h,v])=>({key:h,value:v})):[{key:"",value:""}],events:r?.events||[]},validationSchema:ce,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:h,errors:v})=>e.createElement(o.l0,{noValidate:!0},e.createElement(pe.T,{primaryAction:e.createElement(m.k,{gap:2},e.createElement(S.z,{onClick:()=>{s(),x(!0)},variant:"tertiary",startIcon:e.createElement(ne.Z,null),disabled:l||c,size:"L"},u({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(S.z,{startIcon:e.createElement(re.Z,null),onClick:h,type:"submit",size:"L"},u({id:"global.save",defaultMessage:"Save"}))),title:l?u({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):r?.name,navigationAction:e.createElement(o.rU,{startIcon:e.createElement(Ee.Z,null),to:"/settings/webhooks"},u({id:"global.back",defaultMessage:"Back"}))}),e.createElement(fe.D,null,e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:4},E&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(Te,{isPending:c,response:f,onCancel:()=>x(!1)})),e.createElement(j.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(J.r,{gap:6},e.createElement(D.P,{col:6},e.createElement(I.gN,{as:Y.o,name:"name",error:v.name&&u({id:v.name}),label:u({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(D.P,{col:12},e.createElement(I.gN,{as:Y.o,name:"url",error:v.url&&u({id:v.url}),label:u({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(Oe,null),e.createElement(q,{isDraftAndPublish:d})))))))};_.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},_.defaultProps={data:void 0,triggerResponse:void 0};var Ae=_;const ue=n=>({...n,headers:X(n.headers)}),X=n=>n.reduce((r,s)=>{const{key:l,value:c}=s;return l!==""?{...r,[l]:c}:r},{});var he=ue,ge=()=>{const{params:{id:n}}=(0,p.$B)("/settings/webhooks/:id"),{replace:r}=(0,p.k6)(),{lockApp:s,unlockApp:l}=(0,o.o1)(),c=(0,o.lm)(),f=(0,M.useQueryClient)(),{isLoading:d,collectionTypes:u}=(0,k.bP)(),{put:E,get:x,post:h}=(0,o.kY)(),v=n==="create",{isLoading:g,data:B}=(0,M.useQuery)(["get-webhook",n],async()=>{try{const{data:{data:T}}=await x(`/admin/webhooks/${n}`);return T}catch{return c({type:"warning",message:{id:"notification.error"}}),null}},{enabled:!v}),{isLoading:R,data:L,isIdle:ke,mutate:je}=(0,M.useMutation)(()=>h(`/admin/webhooks/${n}/trigger`)),b=()=>je(null,{onError(){c({type:"warning",message:{id:"notification.error"}})}}),Se=(0,M.useMutation)(T=>h("/admin/webhooks",T)),Ze=(0,M.useMutation)(({id:T,body:V})=>E(`/admin/webhooks/${T}`,V)),Be=async T=>{v?(s(),Se.mutate(he(T),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),r(`/settings/webhooks/${V.data.id}`),l()},onError(V){c({type:"warning",message:{id:"notification.error"}}),console.log(V),l()}})):(s(),Ze.mutate({id:n,body:he(T)},{onSuccess(){f.invalidateQueries(["get-webhook",n]),c({type:"success",message:{id:"notification.form.success.fields"}}),l()},onError(V){c({type:"warning",message:{id:"notification.error"}}),console.log(V),l()}}))},We=e.useMemo(()=>u.some(T=>T.options.draftAndPublish===!0),[u]);return g||d?e.createElement(o.dO,null):e.createElement(A.o,null,e.createElement(o.SL,{name:"Webhooks"}),e.createElement(Ae,{handleSubmit:Be,data:B,triggerWebhook:b,isCreating:v,isTriggering:R,isTriggerIdle:ke,triggerResponse:L?.data.data,isDraftAndPublishEvents:We}))}},33238:function(G,C,t){t.r(C);var e=t(32735),o=t(24989),A=t(83983),M=t(55734);const p=()=>e.createElement(o.O4,{permissions:A.Z.settings.webhooks.create},e.createElement(M.Z,null));C.default=p},59021:function(G,C,t){t.r(C);var e=t(32735),o=t(24989),A=t(83983),M=t(55734);const p=()=>e.createElement(o.O4,{permissions:A.Z.settings.webhooks.update},e.createElement(M.Z,null));C.default=p},21428:function(G,C,t){t.d(C,{Wx:function(){return Me},XU:function(){return $},hQ:function(){return I}});var e=t(74512),o=t(32735),A=t(35331),M=t(16899),p=t(42345),k=t(8471),me=t(14268),i=t(95976),ne=t(74971),re=t(36971),Ee=t(30350),pe=t(23866),m=t(72850),S=t(49372),fe=t(87107),j=t(87933),J=t(28847),D=t(67014),Y=t(47851);const I=({children:a,clearLabel:P="clear",creatable:U=!1,createMessage:Z=X=>`Create "${X}"`,defaultFilterValue:K,defaultTextValue:q,defaultOpen:Pe=!1,open:ye,onOpenChange:xe,disabled:ee=!1,error:oe,filterValue:ie,hasMoreItems:te=!1,hint:Ie,id:$e,label:Oe,labelAction:Re,loading:F=!1,loadingMessage:Q="Loading content...",noOptionsMessage:ae=()=>"No results found",onChange:H,onClear:N,onCreateOption:z,onFilterValueChange:Te,onInputChange:y,onTextValueChange:De,onLoadMore:de,placeholder:Le="Select or enter a value",required:ce=!1,startIcon:_,textValue:Ae,value:ue})=>{const[X,he]=(0,i.T)({prop:ye,defaultProp:Pe,onChange:xe}),[w,ge]=(0,i.T)({prop:Ae,defaultProp:q,onChange:De}),[n,r]=(0,i.T)({prop:ie,defaultProp:K,onChange:Te}),s=o.useRef(null),l=o.useRef(null),c=o.useRef(null),f=(0,ne.M)($e),d=b=>{N&&!ee&&(ge(""),r(""),N(b),l.current.focus())},u=b=>{he(b)},E=b=>{ge(b)},x=b=>{r(b)},h=b=>{y&&y(b)},v=b=>{H&&H(b)},g=(0,ne.M)(),B=`intersection-${(0,me.B)(g)}`,R=b=>{de&&te&&!F&&de(b)},L=()=>{z&&w&&z(w)};(0,re.s)(s,R,{selectorToWatch:`#${B}`,skipWhen:!X});const ke=`${f}-hint`,je=`${f}-error`;return(0,e.jsx)(fe.g,{hint:Ie,error:oe,id:f,required:ce,children:(0,e.jsxs)(j.k,{direction:"column",alignItems:"stretch",gap:1,children:[(0,e.jsx)(J.Q,{action:Re,children:Oe}),(0,e.jsxs)(p.hQ.Root,{autocomplete:U?"list":"both",open:X,onOpenChange:u,onTextValueChange:E,textValue:w,allowCustomValue:!0,disabled:ee,required:ce,value:ue===null?void 0:ue,onValueChange:v,filterValue:n,onFilterValueChange:x,children:[(0,e.jsxs)(O,{$hasError:!!oe,children:[(0,e.jsxs)(j.k,{flex:"1",as:"span",gap:3,children:[_?(0,e.jsx)(m.x,{as:"span","aria-hidden":!0,children:_}):null,(0,e.jsx)(le,{placeholder:Le,id:f,"aria-invalid":!!oe,"aria-labelledby":`${ke} ${je}`,onChange:h,ref:l})]}),(0,e.jsxs)(j.k,{as:"span",gap:3,children:[w&&N?(0,e.jsx)(se,{as:"button",hasRadius:!0,background:"transparent",type:"button",onClick:d,"aria-disabled":ee,"aria-label":P,title:P,ref:c,children:(0,e.jsx)(A.Z,{})}):null,(0,e.jsx)(ve,{children:(0,e.jsx)(M.Z,{})})]})]}),(0,e.jsx)(p.hQ.Portal,{children:(0,e.jsx)(be,{sideOffset:4,children:(0,e.jsxs)(Ce,{ref:s,children:[a,U?(0,e.jsx)(p.hQ.CreateItem,{onPointerUp:L,onClick:L,asChild:!0,children:(0,e.jsx)(W,{children:(0,e.jsx)(S.Z,{children:Z(w??"")})})}):null,!U&&!F?(0,e.jsx)(p.hQ.NoValueFound,{asChild:!0,children:(0,e.jsx)(W,{$hasHover:!1,children:(0,e.jsx)(S.Z,{children:ae(w??"")})})}):null,F?(0,e.jsx)(j.k,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2,children:(0,e.jsx)(pe.a,{small:!0,children:Q})}):null,(0,e.jsx)(m.x,{id:B,width:"100%",height:"1px"})]})})})]}),(0,e.jsx)(D.J,{}),(0,e.jsx)(Y.c,{})]})})},$=a=>(0,e.jsx)(I,{...a,creatable:!0}),se=(0,k.ZP)(m.x)`
|
|
23
|
+
`),ae=({isPending:n,statusCode:r})=>{const{formatMessage:s}=(0,$.Z)();return n?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:Re.Z}),e.createElement(O.Z,null,s({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):r>=200&&r<300?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:re.Z,color:"success700"}),e.createElement(O.Z,null,s({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):r>=300?e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(Q,{as:F.Z,color:"danger700"}),e.createElement(O.Z,null,s({id:"Settings.error",defaultMessage:"error"})," ",r)):null};ae.propTypes={isPending:i().bool.isRequired,statusCode:i().number},ae.defaultProps={statusCode:void 0};const H=({statusCode:n,message:r})=>{const{formatMessage:s}=(0,$.Z)();return n>=200&&n<300?e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(O.Z,{textColor:"neutral600",ellipsis:!0},s({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(m.k,{maxWidth:(0,o.Q1)(250),justifyContent:"flex-end",title:r},e.createElement(O.Z,{ellipsis:!0,textColor:"neutral600"},r))):null};H.propTypes={statusCode:i().number,message:i().string},H.defaultProps={statusCode:void 0,message:void 0};const N=({onCancel:n})=>{const{formatMessage:r}=(0,$.Z)();return e.createElement(m.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(m.k,{gap:2,alignItems:"center"},e.createElement(O.Z,{textColor:"neutral400"},r({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(Q,{as:F.Z,color:"neutral400"}))))};N.propTypes={onCancel:i().func.isRequired};const z=({isPending:n,onCancel:r,response:s})=>{const{statusCode:l,message:c}=s,{formatMessage:f}=(0,$.Z)();return e.createElement(k.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(J.r,{gap:4,style:{alignItems:"center"}},e.createElement(D.P,{col:3},e.createElement(O.Z,null,f({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(D.P,{col:3},e.createElement(ae,{isPending:n,statusCode:l})),e.createElement(D.P,{col:6},n?e.createElement(N,{onCancel:r}):e.createElement(H,{statusCode:l,message:c}))))};z.defaultProps={isPending:!1,onCancel(){},response:{}},z.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var Te=z,P=t(24346);const De=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,de=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ce=P.Ry().shape({name:P.Z_(o.I0.string).required(o.I0.required).matches(De,o.I0.regex),url:P.Z_(o.I0.string).required(o.I0.required).matches(de,o.I0.regex),headers:P.Vo(n=>{let r=P.IX();if(n.length===1){const{key:s,value:l}=n[0];if(!s&&!l)return r}return r.of(P.Ry().shape({key:P.Z_().required(o.I0.required),value:P.Z_().required(o.I0.required)}))}),events:P.IX()});const _=({handleSubmit:n,data:r,triggerWebhook:s,isCreating:l,isTriggering:c,triggerResponse:f,isDraftAndPublishEvents:d})=>{const{formatMessage:u}=(0,$.Z)(),[E,x]=(0,e.useState)(!1);return e.createElement(I.J9,{onSubmit:n,initialValues:{name:r?.name||"",url:r?.url||"",headers:Object.keys(r?.headers||[]).length?Object.entries(r.headers).map(([h,v])=>({key:h,value:v})):[{key:"",value:""}],events:r?.events||[]},validationSchema:ce,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:h,errors:v})=>e.createElement(o.l0,{noValidate:!0},e.createElement(pe.T,{primaryAction:e.createElement(m.k,{gap:2},e.createElement(S.z,{onClick:()=>{s(),x(!0)},variant:"tertiary",startIcon:e.createElement(ne.Z,null),disabled:l||c,size:"L"},u({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(S.z,{startIcon:e.createElement(re.Z,null),onClick:h,type:"submit",size:"L"},u({id:"global.save",defaultMessage:"Save"}))),title:l?u({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):r?.name,navigationAction:e.createElement(o.rU,{startIcon:e.createElement(Ee.Z,null),to:"/settings/webhooks"},u({id:"global.back",defaultMessage:"Back"}))}),e.createElement(fe.D,null,e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:4},E&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(Te,{isPending:c,response:f,onCancel:()=>x(!1)})),e.createElement(k.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(J.r,{gap:6},e.createElement(D.P,{col:6},e.createElement(I.gN,{as:Y.o,name:"name",error:v.name&&u({id:v.name}),label:u({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(D.P,{col:12},e.createElement(I.gN,{as:Y.o,name:"url",error:v.url&&u({id:v.url}),label:u({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(Oe,null),e.createElement(q,{isDraftAndPublish:d})))))))};_.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},_.defaultProps={data:void 0,triggerResponse:void 0};var Ae=_;const ue=n=>({...n,headers:X(n.headers)}),X=n=>n.reduce((r,s)=>{const{key:l,value:c}=s;return l!==""?{...r,[l]:c}:r},{});var he=ue,ge=()=>{const{params:{id:n}}=(0,p.$B)("/settings/webhooks/:id"),{replace:r}=(0,p.k6)(),{lockApp:s,unlockApp:l}=(0,o.o1)(),c=(0,o.lm)(),f=(0,M.useQueryClient)(),{isLoading:d,collectionTypes:u}=(0,j.G)(),{put:E,get:x,post:h}=(0,o.kY)(),v=n==="create",{isLoading:g,data:B}=(0,M.useQuery)(["get-webhook",n],async()=>{try{const{data:{data:T}}=await x(`/admin/webhooks/${n}`);return T}catch{return c({type:"warning",message:{id:"notification.error"}}),null}},{enabled:!v}),{isLoading:R,data:L,isIdle:je,mutate:ke}=(0,M.useMutation)(()=>h(`/admin/webhooks/${n}/trigger`)),C=()=>ke(null,{onError(){c({type:"warning",message:{id:"notification.error"}})}}),Se=(0,M.useMutation)(T=>h("/admin/webhooks",T)),Ze=(0,M.useMutation)(({id:T,body:V})=>E(`/admin/webhooks/${T}`,V)),Be=async T=>{v?(s(),Se.mutate(he(T),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),r(`/settings/webhooks/${V.data.id}`),l()},onError(V){c({type:"warning",message:{id:"notification.error"}}),console.log(V),l()}})):(s(),Ze.mutate({id:n,body:he(T)},{onSuccess(){f.invalidateQueries(["get-webhook",n]),c({type:"success",message:{id:"notification.form.success.fields"}}),l()},onError(V){c({type:"warning",message:{id:"notification.error"}}),console.log(V),l()}}))},We=e.useMemo(()=>u.some(T=>T.options.draftAndPublish===!0),[u]);return g||d?e.createElement(o.dO,null):e.createElement(A.o,null,e.createElement(o.SL,{name:"Webhooks"}),e.createElement(Ae,{handleSubmit:Be,data:B,triggerWebhook:C,isCreating:v,isTriggering:R,isTriggerIdle:je,triggerResponse:L?.data.data,isDraftAndPublishEvents:We}))}},33238:function(G,b,t){t.r(b);var e=t(32735),o=t(24989),A=t(83983),M=t(55734);const p=()=>e.createElement(o.O4,{permissions:A.Z.settings.webhooks.create},e.createElement(M.Z,null));b.default=p},59021:function(G,b,t){t.r(b);var e=t(32735),o=t(24989),A=t(83983),M=t(55734);const p=()=>e.createElement(o.O4,{permissions:A.Z.settings.webhooks.update},e.createElement(M.Z,null));b.default=p},21428:function(G,b,t){t.d(b,{Wx:function(){return Me},XU:function(){return $},hQ:function(){return I}});var e=t(74512),o=t(32735),A=t(35331),M=t(16899),p=t(42345),j=t(8471),me=t(14268),i=t(95976),ne=t(74971),re=t(36971),Ee=t(30350),pe=t(23866),m=t(72850),S=t(49372),fe=t(87107),k=t(87933),J=t(28847),D=t(67014),Y=t(47851);const I=({children:a,clearLabel:y="clear",creatable:U=!1,createMessage:Z=X=>`Create "${X}"`,defaultFilterValue:K,defaultTextValue:q,defaultOpen:ye=!1,open:Pe,onOpenChange:xe,disabled:ee=!1,error:oe,filterValue:ie,hasMoreItems:te=!1,hint:Ie,id:$e,label:Oe,labelAction:Re,loading:F=!1,loadingMessage:Q="Loading content...",noOptionsMessage:ae=()=>"No results found",onChange:H,onClear:N,onCreateOption:z,onFilterValueChange:Te,onInputChange:P,onTextValueChange:De,onLoadMore:de,placeholder:Le="Select or enter a value",required:ce=!1,startIcon:_,textValue:Ae,value:ue})=>{const[X,he]=(0,i.T)({prop:Pe,defaultProp:ye,onChange:xe}),[w,ge]=(0,i.T)({prop:Ae,defaultProp:q,onChange:De}),[n,r]=(0,i.T)({prop:ie,defaultProp:K,onChange:Te}),s=o.useRef(null),l=o.useRef(null),c=o.useRef(null),f=(0,ne.M)($e),d=C=>{N&&!ee&&(ge(""),r(""),N(C),l.current.focus())},u=C=>{he(C)},E=C=>{ge(C)},x=C=>{r(C)},h=C=>{P&&P(C)},v=C=>{H&&H(C)},g=(0,ne.M)(),B=`intersection-${(0,me.B)(g)}`,R=C=>{de&&te&&!F&&de(C)},L=()=>{z&&w&&z(w)};(0,re.s)(s,R,{selectorToWatch:`#${B}`,skipWhen:!X});const je=`${f}-hint`,ke=`${f}-error`;return(0,e.jsx)(fe.g,{hint:Ie,error:oe,id:f,required:ce,children:(0,e.jsxs)(k.k,{direction:"column",alignItems:"stretch",gap:1,children:[(0,e.jsx)(J.Q,{action:Re,children:Oe}),(0,e.jsxs)(p.hQ.Root,{autocomplete:U?"list":"both",open:X,onOpenChange:u,onTextValueChange:E,textValue:w,allowCustomValue:!0,disabled:ee,required:ce,value:ue===null?void 0:ue,onValueChange:v,filterValue:n,onFilterValueChange:x,children:[(0,e.jsxs)(O,{$hasError:!!oe,children:[(0,e.jsxs)(k.k,{flex:"1",as:"span",gap:3,children:[_?(0,e.jsx)(m.x,{as:"span","aria-hidden":!0,children:_}):null,(0,e.jsx)(le,{placeholder:Le,id:f,"aria-invalid":!!oe,"aria-labelledby":`${je} ${ke}`,onChange:h,ref:l})]}),(0,e.jsxs)(k.k,{as:"span",gap:3,children:[w&&N?(0,e.jsx)(se,{as:"button",hasRadius:!0,background:"transparent",type:"button",onClick:d,"aria-disabled":ee,"aria-label":y,title:y,ref:c,children:(0,e.jsx)(A.Z,{})}):null,(0,e.jsx)(ve,{children:(0,e.jsx)(M.Z,{})})]})]}),(0,e.jsx)(p.hQ.Portal,{children:(0,e.jsx)(Ce,{sideOffset:4,children:(0,e.jsxs)(be,{ref:s,children:[a,U?(0,e.jsx)(p.hQ.CreateItem,{onPointerUp:L,onClick:L,asChild:!0,children:(0,e.jsx)(W,{children:(0,e.jsx)(S.Z,{children:Z(w??"")})})}):null,!U&&!F?(0,e.jsx)(p.hQ.NoValueFound,{asChild:!0,children:(0,e.jsx)(W,{$hasHover:!1,children:(0,e.jsx)(S.Z,{children:ae(w??"")})})}):null,F?(0,e.jsx)(k.k,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2,children:(0,e.jsx)(pe.a,{small:!0,children:Q})}):null,(0,e.jsx)(m.x,{id:B,width:"100%",height:"1px"})]})})})]}),(0,e.jsx)(D.J,{}),(0,e.jsx)(Y.c,{})]})})},$=a=>(0,e.jsx)(I,{...a,creatable:!0}),se=(0,j.ZP)(m.x)`
|
|
24
24
|
border: none;
|
|
25
25
|
|
|
26
26
|
svg {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
svg path {
|
|
32
32
|
fill: ${({theme:a})=>a.colors.neutral600};
|
|
33
33
|
}
|
|
34
|
-
`,O=(0,
|
|
34
|
+
`,O=(0,j.ZP)(p.hQ.Trigger)`
|
|
35
35
|
position: relative;
|
|
36
|
-
border: 1px solid ${({theme:a,$hasError:
|
|
36
|
+
border: 1px solid ${({theme:a,$hasError:y})=>y?a.colors.danger600:a.colors.neutral200};
|
|
37
37
|
padding-right: ${({theme:a})=>a.spaces[3]};
|
|
38
38
|
padding-left: ${({theme:a})=>a.spaces[3]};
|
|
39
39
|
border-radius: ${({theme:a})=>a.borderRadius};
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
outline: none;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
${({theme:a,$hasError:
|
|
59
|
-
`,le=(0,
|
|
58
|
+
${({theme:a,$hasError:y})=>(0,Ee.k3)()({theme:a,hasError:y})};
|
|
59
|
+
`,le=(0,j.ZP)(p.hQ.TextInput)`
|
|
60
60
|
width: 100%;
|
|
61
61
|
font-size: ${14/16}rem;
|
|
62
62
|
color: ${({theme:a})=>a.colors.neutral800};
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
&[aria-disabled='true'] {
|
|
72
72
|
cursor: inherit;
|
|
73
73
|
}
|
|
74
|
-
`,ve=(0,
|
|
74
|
+
`,ve=(0,j.ZP)(p.hQ.Icon)`
|
|
75
75
|
& > svg {
|
|
76
76
|
width: ${6/16}rem;
|
|
77
77
|
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
&[aria-disabled='true'] {
|
|
84
84
|
cursor: inherit;
|
|
85
85
|
}
|
|
86
|
-
`,
|
|
86
|
+
`,Ce=(0,j.ZP)(p.hQ.Content)`
|
|
87
87
|
background: ${({theme:a})=>a.colors.neutral0};
|
|
88
88
|
box-shadow: ${({theme:a})=>a.shadows.filterShadow};
|
|
89
89
|
border: 1px solid ${({theme:a})=>a.colors.neutral150};
|
|
@@ -92,9 +92,9 @@
|
|
|
92
92
|
/* This is from the design-system figma file. */
|
|
93
93
|
max-height: 15rem;
|
|
94
94
|
z-index: ${({theme:a})=>a.zIndices[1]};
|
|
95
|
-
`,
|
|
95
|
+
`,be=(0,j.ZP)(p.hQ.Viewport)`
|
|
96
96
|
padding: ${({theme:a})=>a.spaces[1]};
|
|
97
|
-
`,Me=o.forwardRef(({children:a,value:
|
|
97
|
+
`,Me=o.forwardRef(({children:a,value:y,disabled:U,textValue:Z,...K},q)=>(0,e.jsx)(p.hQ.ComboboxItem,{asChild:!0,value:y,disabled:U,textValue:Z,children:(0,e.jsx)(W,{ref:q,...K,children:(0,e.jsx)(p.hQ.ItemText,{asChild:!0,children:(0,e.jsx)(S.Z,{children:a})})})})),W=j.ZP.div`
|
|
98
98
|
width: 100%;
|
|
99
99
|
border: none;
|
|
100
100
|
text-align: left;
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
&:hover,
|
|
117
117
|
&[data-highlighted] {
|
|
118
118
|
outline: none;
|
|
119
|
-
background-color: ${({theme:a,$hasHover:
|
|
119
|
+
background-color: ${({theme:a,$hasHover:y=!0})=>y?a.colors.primary100:a.colors.neutral0};
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
&[data-highlighted] {
|
|
@@ -125,4 +125,4 @@
|
|
|
125
125
|
font-weight: bold;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
`},90333:function(G,
|
|
128
|
+
`},90333:function(G,b,t){t.d(b,{O:function(){return o}});var e=t(21428);const o=e.Wx},29439:function(G,b,t){t.d(b,{Z:function(){return A}});var e=t(74512);const o=M=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...M,children:(0,e.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),A=o}}]);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{32393:function(R,E,t){t.r(E),t.d(E,{default:function(){return ce}});var e=t(32735),s=t(24989),c=t(83983),h=t(53038),f=t(67879),p=t(20108),T=t(94638),D=t(96709),S=t(27649),i=t(82055),P=t(99223),m=t(49372),I=t(41415),q=t(17e3),U=t(72850),_=t(56755),ee=t(73269),te=t(33827),K=t(94547),r=t(19786),V=t(82884),ne=t(3685),ae=t(35658),k=t(87933),b=t(74512),F=t(8471);const j=F.ZP.div`
|
|
2
|
+
background: ${({theme:o})=>o.colors.danger500};
|
|
3
|
+
border: none;
|
|
4
|
+
border-radius: 16px;
|
|
5
|
+
position: relative;
|
|
6
|
+
height: ${24/16}rem;
|
|
7
|
+
width: ${40/16}rem;
|
|
8
|
+
|
|
9
|
+
& span {
|
|
10
|
+
font-size: ${({visibleLabels:o})=>o?"1rem":0};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&:before {
|
|
14
|
+
content: '';
|
|
15
|
+
background: ${({theme:o})=>o.colors.neutral0};
|
|
16
|
+
width: 1rem;
|
|
17
|
+
height: 1rem;
|
|
18
|
+
border-radius: 50%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
transition: all 0.5s;
|
|
21
|
+
left: ${({theme:o})=>o.spaces[1]};
|
|
22
|
+
top: ${({theme:o})=>o.spaces[1]};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media (prefers-reduced-motion: reduce) {
|
|
26
|
+
&:before {
|
|
27
|
+
transition: none;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`,se=F.ZP.button`
|
|
31
|
+
background: transparent;
|
|
32
|
+
padding: 0;
|
|
33
|
+
border: none;
|
|
34
|
+
|
|
35
|
+
&[aria-checked='true'] ${j} {
|
|
36
|
+
background: ${({theme:o})=>o.colors.success500};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[aria-checked='true'] ${j}:before {
|
|
40
|
+
transform: translateX(1rem);
|
|
41
|
+
}
|
|
42
|
+
`,oe=e.forwardRef(({label:o,onChange:u,onLabel:v="On",offLabel:d="Off",selected:a,visibleLabels:g=!1,...x},$)=>(0,b.jsx)(se,{ref:$,role:"switch","aria-checked":a,"aria-label":o,onClick:u,visibleLabels:g,type:"button",...x,children:(0,b.jsxs)(k.k,{children:[(0,b.jsxs)(j,{children:[(0,b.jsx)("span",{children:v}),(0,b.jsx)("span",{children:d})]}),g&&(0,b.jsx)(U.x,{as:"span","aria-hidden":!0,paddingLeft:2,color:a?"success600":"danger600",children:a?v:d})]})}));var z=t(50563),le=t(9695),w=t(19406),H=t(4038),re=t(68625),ie=t(54725),de=()=>{const[o,u]=(0,e.useState)(!1),[v,d]=(0,e.useState)([]),{formatMessage:a}=(0,f.Z)(),{formatAPIError:g}=(0,s.So)(),x=(0,s.lm)();(0,s.go)();const{push:$}=(0,h.k6)(),{pathname:N}=(0,h.TH)(),{isLoading:me,allowedActions:{canCreate:O,canUpdate:Q,canDelete:Y}}=(0,s.ss)(c.Z.settings.webhooks),{get:he,post:ue,put:ge}=(0,s.kY)(),{notifyStatus:G}=(0,T.G)(),Ee="webhooks",{isLoading:fe,data:M,error:Z,refetch:X}=(0,p.useQuery)(Ee,async()=>{const{data:{data:n}}=await he("/admin/webhooks");return n});(0,e.useEffect)(()=>{if(Z){x({type:"warning",message:g(Z)});return}M&&G(a({id:"Settings.webhooks.list.loading.success",defaultMessage:"Webhooks have been loaded"}))},[M,Z,x,a,G,g]);const J=(0,p.useMutation)(async()=>{await ue("/admin/webhooks/batch-delete",{ids:v})},{onError(n){x({type:"warning",message:g(n)}),u(!1)},onSuccess(){d([]),u(!1),X()}}),be=(0,p.useMutation)(async({isEnabled:n,id:l})=>{const{id:L,...W}=M.find(Ce=>Ce.id===l)??{},pe={...W,isEnabled:n};await ge(`/admin/webhooks/${l}`,pe)},{onError(n){x({type:"warning",message:g(n)})},onSuccess(){X()}}),ve=()=>J.mutate(),xe=n=>d(n?M.map(l=>l.id):[]),Me=(n,l)=>d(n?L=>[...L,l]:L=>L.filter(W=>W!==l)),A=n=>$(`${N}/${n}`),B=me||fe,y=M?.length??0,C=v.length;return e.createElement(D.A,null,e.createElement(s.SL,{name:"Webhooks"}),e.createElement(S.o,{"aria-busy":B},e.createElement(i.T,{title:a({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:a({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:O&&!B&&e.createElement(s.Qj,{startIcon:e.createElement(w.Z,null),variant:"default",to:`${N}/create`,size:"S"},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),C>0&&Y&&e.createElement(P.Z,{startActions:e.createElement(e.Fragment,null,e.createElement(m.Z,{variant:"epsilon",textColor:"neutral600"},a({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected"},{webhooksToDeleteLength:C})),e.createElement(I.z,{onClick:()=>u(!0),startIcon:e.createElement(H.Z,null),size:"L",variant:"danger-light"},a({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(q.D,null,B?e.createElement(U.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.dO,null)):y>0?e.createElement(_.i,{colCount:5,rowCount:y+1,footer:e.createElement(ee.c,{onClick:()=>O?A("create"):{},icon:e.createElement(w.Z,null)},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(te.h,null,e.createElement(K.Tr,null,e.createElement(r.Th,null,e.createElement(V.C,{"aria-label":a({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:C>0&&C<y,value:C===y,onValueChange:xe})),e.createElement(r.Th,{width:"20%"},e.createElement(m.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.name",defaultMessage:"Name"}))),e.createElement(r.Th,{width:"60%"},e.createElement(m.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(r.Th,{width:"20%"},e.createElement(m.Z,{variant:"sigma",textColor:"neutral600"},a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(r.Th,null,e.createElement(ne.T,null,a({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(ae.p,null,M.map(n=>e.createElement(K.Tr,{key:n.id,...(0,s.X7)({fn:()=>A(n.id),condition:Q})},e.createElement(r.Td,{...s.UW},e.createElement(V.C,{"aria-label":`${a({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:v?.includes(n.id),onValueChange:l=>Me(l,n.id),name:"select"})),e.createElement(r.Td,null,e.createElement(m.Z,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(r.Td,null,e.createElement(m.Z,{textColor:"neutral800"},n.url)),e.createElement(r.Td,null,e.createElement(k.k,null,e.createElement(oe,{onLabel:a({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:a({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${a({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:l=>{l.stopPropagation(),be.mutate({isEnabled:!n.isEnabled,id:n.id})},visibleLabels:!0}))),e.createElement(r.Td,null,e.createElement(k.k,{gap:1},Q&&e.createElement(z.h,{label:a({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(re.Z,null),noBorder:!0}),Y&&e.createElement(z.h,{onClick:l=>{l.stopPropagation(),d([n.id]),u(!0)},label:a({id:"Settings.webhooks.events.delete",defaultMessage:"Delete webhook"}),icon:e.createElement(H.Z,null),noBorder:!0}))))))):e.createElement(le.x,{icon:e.createElement(ie.Z,{width:"160px"}),content:a({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(I.z,{variant:"secondary",startIcon:e.createElement(w.Z,null),onClick:()=>O?A("create"):{}},a({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}))),e.createElement(s.QH,{isOpen:o,onToggleDialog:()=>u(n=>!n),onConfirm:ve,isConfirmButtonLoading:J.isLoading}))},ce=()=>e.createElement(s.O4,{permissions:c.Z.settings.webhooks.main},e.createElement(de,null))},99223:function(R,E,t){t.d(E,{Z:function(){return c}});var e=t(74512),s=t(87933);const c=({startActions:h,endActions:f})=>!h&&!f?null:(0,e.jsxs)(s.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(s.k,{gap:2,wrap:"wrap",children:h}),(0,e.jsx)(s.k,{gap:2,shrink:0,wrap:"wrap",children:f})]})},73269:function(R,E,t){t.d(E,{c:function(){return S}});var e=t(74512),s=t(8471),c=t(72850),h=t(9026),f=t(87933),p=t(49372);const T=(0,s.ZP)(c.x)`
|
|
43
|
+
height: ${24/16}rem;
|
|
44
|
+
width: ${24/16}rem;
|
|
45
|
+
border-radius: 50%;
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
|
|
50
|
+
svg {
|
|
51
|
+
height: ${10/16}rem;
|
|
52
|
+
width: ${10/16}rem;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
svg path {
|
|
56
|
+
fill: ${({theme:i})=>i.colors.primary600};
|
|
57
|
+
}
|
|
58
|
+
`,D=(0,s.ZP)(c.x)`
|
|
59
|
+
border-radius: 0 0 ${({theme:i})=>i.borderRadius} ${({theme:i})=>i.borderRadius};
|
|
60
|
+
display: block;
|
|
61
|
+
width: 100%;
|
|
62
|
+
border: none;
|
|
63
|
+
`,S=({children:i,icon:P,...m})=>(0,e.jsxs)("div",{children:[(0,e.jsx)(h.i,{}),(0,e.jsx)(D,{as:"button",background:"primary100",padding:5,...m,children:(0,e.jsxs)(f.k,{children:[(0,e.jsx)(T,{"aria-hidden":!0,background:"primary200",children:P}),(0,e.jsx)(c.x,{paddingLeft:3,children:(0,e.jsx)(p.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:i})})]})})]})}}]);
|
|
@@ -38,8 +38,7 @@ export function InformationBoxEE() {
|
|
|
38
38
|
const { formatAPIError } = useAPIErrorHandler();
|
|
39
39
|
const toggleNotification = useNotification();
|
|
40
40
|
|
|
41
|
-
const { workflows
|
|
42
|
-
useReviewWorkflows();
|
|
41
|
+
const { workflows, isLoading: workflowIsLoading } = useReviewWorkflows();
|
|
43
42
|
// TODO: this works only as long as we support one workflow
|
|
44
43
|
const workflow = workflows?.[0] ?? null;
|
|
45
44
|
|
|
@@ -2,24 +2,13 @@ import { useQuery } from 'react-query';
|
|
|
2
2
|
import { useNotification, useFetchClient } from '@strapi/helper-plugin';
|
|
3
3
|
import { useLocation } from 'react-router-dom';
|
|
4
4
|
|
|
5
|
+
import { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';
|
|
6
|
+
|
|
5
7
|
const useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {
|
|
6
8
|
const { get } = useFetchClient();
|
|
7
9
|
const { search } = useLocation();
|
|
8
10
|
const toggleNotification = useNotification();
|
|
9
11
|
|
|
10
|
-
const fetchAuditLogsPage = async ({ queryKey }) => {
|
|
11
|
-
const search = queryKey[1];
|
|
12
|
-
const { data } = await get(`/admin/audit-logs${search}`);
|
|
13
|
-
|
|
14
|
-
return data;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const fetchAllUsers = async () => {
|
|
18
|
-
const { data } = await get(`/admin/users`);
|
|
19
|
-
|
|
20
|
-
return data;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
12
|
const queryOptions = {
|
|
24
13
|
keepPreviousData: true,
|
|
25
14
|
retry: false,
|
|
@@ -27,24 +16,43 @@ const useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {
|
|
|
27
16
|
onError: (error) => toggleNotification({ type: 'warning', message: error.message }),
|
|
28
17
|
};
|
|
29
18
|
|
|
19
|
+
const {
|
|
20
|
+
users,
|
|
21
|
+
isError: isUsersError,
|
|
22
|
+
isLoading: isLoadingUsers,
|
|
23
|
+
} = useAdminUsers(
|
|
24
|
+
{},
|
|
25
|
+
{
|
|
26
|
+
...queryOptions,
|
|
27
|
+
enabled: canReadUsers,
|
|
28
|
+
staleTime: 2 * (1000 * 60), // 2 minutes
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
|
|
30
32
|
const {
|
|
31
33
|
data: auditLogs,
|
|
32
|
-
isLoading,
|
|
34
|
+
isLoading: isLoadingAuditLogs,
|
|
33
35
|
isError: isAuditLogsError,
|
|
34
|
-
} = useQuery(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
} = useQuery(
|
|
37
|
+
['auditLogs', search],
|
|
38
|
+
async ({ queryKey }) => {
|
|
39
|
+
const search = queryKey[1];
|
|
40
|
+
const { data } = await get(`/admin/audit-logs${search}`);
|
|
41
|
+
|
|
42
|
+
return data;
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
...queryOptions,
|
|
46
|
+
enabled: canReadAuditLogs,
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
auditLogs,
|
|
52
|
+
users,
|
|
53
|
+
isLoading: isLoadingUsers || isLoadingAuditLogs,
|
|
54
|
+
hasError: isAuditLogsError || isUsersError,
|
|
55
|
+
};
|
|
48
56
|
};
|
|
49
57
|
|
|
50
58
|
export default useAuditLogsData;
|
|
@@ -74,7 +74,7 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
|
|
|
74
74
|
return user.email;
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
const userOptions = users.
|
|
77
|
+
const userOptions = users.map((user) => {
|
|
78
78
|
return {
|
|
79
79
|
label: getDisplayNameFromUser(user),
|
|
80
80
|
// Combobox expects a string value
|
|
@@ -44,7 +44,7 @@ export function ReviewWorkflowsPage() {
|
|
|
44
44
|
const { put } = useFetchClient();
|
|
45
45
|
const { formatAPIError } = useAPIErrorHandler();
|
|
46
46
|
const toggleNotification = useNotification();
|
|
47
|
-
const { workflows:
|
|
47
|
+
const { workflows, status: workflowStatus, refetch: refetchWorkflow } = useReviewWorkflows();
|
|
48
48
|
const {
|
|
49
49
|
status,
|
|
50
50
|
clientState: {
|
|
@@ -124,8 +124,8 @@ export function ReviewWorkflowsPage() {
|
|
|
124
124
|
useInjectReducer(REDUX_NAMESPACE, reducer);
|
|
125
125
|
|
|
126
126
|
useEffect(() => {
|
|
127
|
-
dispatch(setWorkflows({ status:
|
|
128
|
-
}, [
|
|
127
|
+
dispatch(setWorkflows({ status: workflowStatus, data: workflows }));
|
|
128
|
+
}, [workflowStatus, workflows, dispatch]);
|
|
129
129
|
|
|
130
130
|
useEffect(() => {
|
|
131
131
|
trackUsage('didViewWorkflow');
|
|
@@ -1,35 +1,46 @@
|
|
|
1
|
-
import { useQuery
|
|
1
|
+
import { useQuery } from 'react-query';
|
|
2
2
|
import { useFetchClient } from '@strapi/helper-plugin';
|
|
3
|
+
import { stringify } from 'qs';
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
const
|
|
5
|
+
export function useReviewWorkflows(params = {}) {
|
|
6
|
+
const { id = '', ...queryParams } = params;
|
|
7
|
+
const defaultQueryParams = {
|
|
8
|
+
populate: 'stages',
|
|
9
|
+
};
|
|
6
10
|
|
|
7
|
-
export function useReviewWorkflows(workflowId) {
|
|
8
11
|
const { get } = useFetchClient();
|
|
9
|
-
const
|
|
10
|
-
const workflowQueryKey = [QUERY_BASE_KEY, workflowId ?? 'default'];
|
|
12
|
+
const queryString = stringify({ ...defaultQueryParams, ...queryParams }, { encode: false });
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const { data, isLoading, status, refetch } = useQuery(
|
|
15
|
+
['review-workflows', 'workflows', id],
|
|
16
|
+
async () => {
|
|
17
|
+
try {
|
|
18
|
+
const {
|
|
19
|
+
data: { data },
|
|
20
|
+
} = await get(
|
|
21
|
+
`/admin/review-workflows/workflows/${id}${queryString ? `?${queryString}` : ''}`
|
|
22
|
+
);
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
return data;
|
|
25
|
+
} catch (err) {
|
|
26
|
+
// silence
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
22
29
|
}
|
|
23
|
-
|
|
30
|
+
);
|
|
24
31
|
|
|
25
|
-
|
|
26
|
-
await client.refetchQueries(workflowQueryKey);
|
|
27
|
-
}
|
|
32
|
+
let workflows = [];
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
if (id && data) {
|
|
35
|
+
workflows = [data];
|
|
36
|
+
} else if (Array.isArray(data)) {
|
|
37
|
+
workflows = data;
|
|
38
|
+
}
|
|
30
39
|
|
|
31
40
|
return {
|
|
32
41
|
workflows,
|
|
33
|
-
|
|
42
|
+
isLoading,
|
|
43
|
+
status,
|
|
44
|
+
refetch,
|
|
34
45
|
};
|
|
35
46
|
}
|
|
@@ -124,7 +124,11 @@ const createAuditLogsService = (strapi) => {
|
|
|
124
124
|
const processedEvent = processEvent(name, ...args);
|
|
125
125
|
|
|
126
126
|
if (processedEvent) {
|
|
127
|
-
|
|
127
|
+
// This stores the event when after the transaction is committed,
|
|
128
|
+
// so it's not stored if the transaction is rolled back
|
|
129
|
+
await strapi.db.transaction(({ onCommit }) => {
|
|
130
|
+
onCommit(() => state.provider.saveEvent(processedEvent));
|
|
131
|
+
});
|
|
128
132
|
}
|
|
129
133
|
}
|
|
130
134
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.7",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,16 +48,16 @@
|
|
|
48
48
|
"@casl/ability": "^5.4.3",
|
|
49
49
|
"@fingerprintjs/fingerprintjs": "3.4.1",
|
|
50
50
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
|
|
51
|
-
"@strapi/babel-plugin-switch-ee-ce": "4.10.
|
|
52
|
-
"@strapi/data-transfer": "4.10.
|
|
53
|
-
"@strapi/design-system": "1.7.
|
|
54
|
-
"@strapi/helper-plugin": "4.10.
|
|
55
|
-
"@strapi/icons": "1.7.
|
|
56
|
-
"@strapi/permissions": "4.10.
|
|
57
|
-
"@strapi/provider-audit-logs-local": "4.10.
|
|
58
|
-
"@strapi/typescript-utils": "4.10.
|
|
59
|
-
"@strapi/utils": "4.10.
|
|
60
|
-
"axios": "1.
|
|
51
|
+
"@strapi/babel-plugin-switch-ee-ce": "4.10.7",
|
|
52
|
+
"@strapi/data-transfer": "4.10.7",
|
|
53
|
+
"@strapi/design-system": "1.7.9",
|
|
54
|
+
"@strapi/helper-plugin": "4.10.7",
|
|
55
|
+
"@strapi/icons": "1.7.9",
|
|
56
|
+
"@strapi/permissions": "4.10.7",
|
|
57
|
+
"@strapi/provider-audit-logs-local": "4.10.7",
|
|
58
|
+
"@strapi/typescript-utils": "4.10.7",
|
|
59
|
+
"@strapi/utils": "4.10.7",
|
|
60
|
+
"axios": "1.4.0",
|
|
61
61
|
"babel-loader": "^9.1.2",
|
|
62
62
|
"babel-plugin-styled-components": "2.1.1",
|
|
63
63
|
"bcryptjs": "2.4.3",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"execa": "^1.0.0",
|
|
75
75
|
"fast-deep-equal": "3.1.3",
|
|
76
76
|
"find-root": "1.1.0",
|
|
77
|
-
"fork-ts-checker-webpack-plugin": "7.
|
|
78
|
-
"formik": "^2.
|
|
77
|
+
"fork-ts-checker-webpack-plugin": "7.3.0",
|
|
78
|
+
"formik": "^2.4.0",
|
|
79
79
|
"fractional-indexing": "3.2.0",
|
|
80
80
|
"fs-extra": "10.0.0",
|
|
81
81
|
"highlight.js": "^10.4.1",
|
|
@@ -110,7 +110,6 @@
|
|
|
110
110
|
"prop-types": "^15.7.2",
|
|
111
111
|
"qs": "6.11.1",
|
|
112
112
|
"react": "^17.0.2",
|
|
113
|
-
"react-copy-to-clipboard": "^5.1.0",
|
|
114
113
|
"react-dnd": "15.1.2",
|
|
115
114
|
"react-dnd-html5-backend": "15.1.3",
|
|
116
115
|
"react-dom": "^17.0.2",
|
|
@@ -118,7 +117,7 @@
|
|
|
118
117
|
"react-helmet": "^6.1.0",
|
|
119
118
|
"react-intl": "6.4.1",
|
|
120
119
|
"react-is": "^17.0.2",
|
|
121
|
-
"react-query": "3.
|
|
120
|
+
"react-query": "3.39.3",
|
|
122
121
|
"react-redux": "8.0.5",
|
|
123
122
|
"react-refresh": "0.14.0",
|
|
124
123
|
"react-router-dom": "5.3.4",
|
|
@@ -140,7 +139,7 @@
|
|
|
140
139
|
"yup": "^0.32.9"
|
|
141
140
|
},
|
|
142
141
|
"devDependencies": {
|
|
143
|
-
"@testing-library/dom": "8.
|
|
142
|
+
"@testing-library/dom": "8.20.0",
|
|
144
143
|
"@testing-library/react": "12.1.4",
|
|
145
144
|
"@testing-library/react-hooks": "8.0.1",
|
|
146
145
|
"@testing-library/user-event": "14.4.3",
|
|
@@ -166,5 +165,5 @@
|
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
},
|
|
169
|
-
"gitHead": "
|
|
168
|
+
"gitHead": "da080df32b85cdd59d46bdda5c984a346cad0860"
|
|
170
169
|
}
|
package/webpack.alias.js
CHANGED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useReducer, useEffect, useCallback } from 'react';
|
|
2
|
-
import { useFetchClient, useNotification } from '@strapi/helper-plugin';
|
|
3
|
-
import reducer, { initialState } from './reducer';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* TODO: refactor this to not use the `useReducer` hook,
|
|
7
|
-
* it's not really necessary. Also use `useQuery`?
|
|
8
|
-
*/
|
|
9
|
-
const useModels = () => {
|
|
10
|
-
const toggleNotification = useNotification();
|
|
11
|
-
const [state, dispatch] = useReducer(reducer, initialState);
|
|
12
|
-
|
|
13
|
-
const { get } = useFetchClient();
|
|
14
|
-
|
|
15
|
-
const fetchModels = useCallback(async () => {
|
|
16
|
-
dispatch({
|
|
17
|
-
type: 'GET_MODELS',
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
try {
|
|
21
|
-
const [
|
|
22
|
-
{
|
|
23
|
-
data: { data: components },
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
data: { data: contentTypes },
|
|
27
|
-
},
|
|
28
|
-
] = await Promise.all(
|
|
29
|
-
['components', 'content-types'].map((endPoint) => get(`/content-manager/${endPoint}`))
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
dispatch({
|
|
33
|
-
type: 'GET_MODELS_SUCCEDED',
|
|
34
|
-
contentTypes,
|
|
35
|
-
components,
|
|
36
|
-
});
|
|
37
|
-
} catch (err) {
|
|
38
|
-
dispatch({
|
|
39
|
-
type: 'GET_MODELS_ERROR',
|
|
40
|
-
});
|
|
41
|
-
toggleNotification({
|
|
42
|
-
type: 'warning',
|
|
43
|
-
message: { id: 'notification.error' },
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}, [toggleNotification, get]);
|
|
47
|
-
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
fetchModels();
|
|
50
|
-
}, [fetchModels]);
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
...state,
|
|
54
|
-
getData: fetchModels,
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default useModels;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
collectionTypes: [],
|
|
6
|
-
components: [],
|
|
7
|
-
isLoading: true,
|
|
8
|
-
singleTypes: [],
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const reducer = (state, action) =>
|
|
12
|
-
produce(state, (draftState) => {
|
|
13
|
-
switch (action.type) {
|
|
14
|
-
case 'GET_MODELS': {
|
|
15
|
-
draftState.collectionTypes = initialState.collectionTypes;
|
|
16
|
-
draftState.singleTypes = initialState.singleTypes;
|
|
17
|
-
draftState.components = initialState.components;
|
|
18
|
-
draftState.isLoading = true;
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
|
-
case 'GET_MODELS_ERROR': {
|
|
22
|
-
draftState.collectionTypes = initialState.collectionTypes;
|
|
23
|
-
draftState.singleTypes = initialState.singleTypes;
|
|
24
|
-
draftState.components = initialState.components;
|
|
25
|
-
draftState.isLoading = false;
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
case 'GET_MODELS_SUCCEDED': {
|
|
29
|
-
const getContentTypeByKind = (kind) =>
|
|
30
|
-
action.contentTypes.filter(
|
|
31
|
-
(contentType) => contentType.isDisplayed && contentType.kind === kind
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
draftState.isLoading = false;
|
|
35
|
-
draftState.collectionTypes = getContentTypeByKind('collectionType');
|
|
36
|
-
draftState.singleTypes = getContentTypeByKind('singleType');
|
|
37
|
-
draftState.components = action.components;
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
default:
|
|
41
|
-
return draftState;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
export default reducer;
|