@strapi/admin 5.0.0-alpha.0 → 5.0.0-alpha.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.
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs → AdminSeatInfo-20pkL95U.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs.map → AdminSeatInfo-20pkL95U.mjs.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js → AdminSeatInfo-TjK5LW2b.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js.map → AdminSeatInfo-TjK5LW2b.js.map} +1 -1
- package/dist/_chunks/{ApplicationInfoPage-PHLA1Ysy.js → ApplicationInfoPage-1OdKMDYH.js} +11 -12
- package/dist/_chunks/ApplicationInfoPage-1OdKMDYH.js.map +1 -0
- package/dist/_chunks/{ApplicationInfoPage-Zn5JU2zd.mjs → ApplicationInfoPage-ed6y9Q-B.mjs} +12 -13
- package/dist/_chunks/ApplicationInfoPage-ed6y9Q-B.mjs.map +1 -0
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs → AuthResponse-Hxop00n-.mjs} +2 -2
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs.map → AuthResponse-Hxop00n-.mjs.map} +1 -1
- package/dist/_chunks/{AuthResponse-7NG3smr6.js → AuthResponse-sca_wjIN.js} +2 -2
- package/dist/_chunks/{AuthResponse-7NG3smr6.js.map → AuthResponse-sca_wjIN.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js → AuthenticatedLayout-PPlOm7kb.js} +14 -11
- package/dist/_chunks/AuthenticatedLayout-PPlOm7kb.js.map +1 -0
- package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs → AuthenticatedLayout-knXNB2i2.mjs} +11 -9
- package/dist/_chunks/AuthenticatedLayout-knXNB2i2.mjs.map +1 -0
- package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs → ComponentConfigurationPage-okd3XovW.mjs} +11 -12
- package/dist/_chunks/ComponentConfigurationPage-okd3XovW.mjs.map +1 -0
- package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js → ComponentConfigurationPage-xZMDjeVf.js} +11 -12
- package/dist/_chunks/ComponentConfigurationPage-xZMDjeVf.js.map +1 -0
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js → CreateActionEE-E6YNdAVx.js} +2 -2
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js.map → CreateActionEE-E6YNdAVx.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs → CreateActionEE-PaZYJ410.mjs} +2 -2
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs.map → CreateActionEE-PaZYJ410.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-nl6zKkKT.js → CreatePage-1Oi4-aR6.js} +17 -16
- package/dist/_chunks/CreatePage-1Oi4-aR6.js.map +1 -0
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs → CreatePage-6458K0l9.mjs} +3 -3
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs.map → CreatePage-6458K0l9.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-NSKUL8l4.js → CreatePage-DmNFNVN9.js} +10 -9
- package/dist/_chunks/CreatePage-DmNFNVN9.js.map +1 -0
- package/dist/_chunks/{CreatePage-Bil0egZ1.mjs → CreatePage-P1F3dkB3.mjs} +17 -16
- package/dist/_chunks/CreatePage-P1F3dkB3.mjs.map +1 -0
- package/dist/_chunks/{CreatePage-h5L6QP47.mjs → CreatePage-PM_r99U5.mjs} +10 -9
- package/dist/_chunks/CreatePage-PM_r99U5.mjs.map +1 -0
- package/dist/_chunks/{CreatePage-MAI6XyNg.js → CreatePage-hlkPO2Cv.js} +3 -3
- package/dist/_chunks/{CreatePage-MAI6XyNg.js.map → CreatePage-hlkPO2Cv.js.map} +1 -1
- package/dist/_chunks/{CreateView-kc0iM0LS.js → CreateView-AWmN1xWJ.js} +3 -3
- package/dist/_chunks/{CreateView-kc0iM0LS.js.map → CreateView-AWmN1xWJ.js.map} +1 -1
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs → CreateView-cTvLLIgu.mjs} +3 -3
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs.map → CreateView-cTvLLIgu.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-3DMhoCPN.js → CreateView-hUH4bf5k.js} +3 -3
- package/dist/_chunks/{CreateView-3DMhoCPN.js.map → CreateView-hUH4bf5k.js.map} +1 -1
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs → CreateView-pBI75ZwZ.mjs} +3 -3
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs.map → CreateView-pBI75ZwZ.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs → EditConfigurationPage-LItt0mJo.mjs} +10 -11
- package/dist/_chunks/EditConfigurationPage-LItt0mJo.mjs.map +1 -0
- package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js → EditConfigurationPage-PZ4yq1bM.js} +10 -11
- package/dist/_chunks/EditConfigurationPage-PZ4yq1bM.js.map +1 -0
- package/dist/_chunks/{EditPage-_swY0Hy-.mjs → EditPage--EPGgPNr.mjs} +11 -10
- package/dist/_chunks/EditPage--EPGgPNr.mjs.map +1 -0
- package/dist/_chunks/{EditPage-fDVAYmuS.mjs → EditPage-30rqjB1d.mjs} +16 -16
- package/dist/_chunks/EditPage-30rqjB1d.mjs.map +1 -0
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs → EditPage-GRIZWtGz.mjs} +19 -18
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs.map → EditPage-GRIZWtGz.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-VoRR5DCQ.mjs → EditPage-MPNLCYgQ.mjs} +14 -14
- package/dist/_chunks/EditPage-MPNLCYgQ.mjs.map +1 -0
- package/dist/_chunks/{EditPage-QoDSqYYq.js → EditPage-RpzlPkkU.js} +19 -18
- package/dist/_chunks/{EditPage-QoDSqYYq.js.map → EditPage-RpzlPkkU.js.map} +1 -1
- package/dist/_chunks/{EditPage-9aK8IFXY.js → EditPage-W6hncyNY.js} +15 -15
- package/dist/_chunks/EditPage-W6hncyNY.js.map +1 -0
- package/dist/_chunks/{EditPage-A6olBfVm.js → EditPage-_N_lm93z.js} +13 -13
- package/dist/_chunks/EditPage-_N_lm93z.js.map +1 -0
- package/dist/_chunks/{EditPage-PpBP7TBo.js → EditPage-mU2WAH0F.js} +11 -10
- package/dist/_chunks/EditPage-mU2WAH0F.js.map +1 -0
- package/dist/_chunks/{EditView-EuUw_2zc.mjs → EditView-0lXpbgG0.mjs} +12 -12
- package/dist/_chunks/EditView-0lXpbgG0.mjs.map +1 -0
- package/dist/_chunks/{EditView-C_ynfmtW.js → EditView-wDP9PNQY.js} +11 -11
- package/dist/_chunks/EditView-wDP9PNQY.js.map +1 -0
- package/dist/_chunks/{EditViewPage-Z_e1dpbU.js → EditViewPage-0Pd8zBi7.js} +16 -15
- package/dist/_chunks/EditViewPage-0Pd8zBi7.js.map +1 -0
- package/dist/_chunks/{EditViewPage-xYzUSAwS.mjs → EditViewPage-R6diW-gL.mjs} +7 -7
- package/dist/_chunks/EditViewPage-R6diW-gL.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-XtJmgPi5.js → EditViewPage-ed0-10GO.js} +6 -6
- package/dist/_chunks/EditViewPage-ed0-10GO.js.map +1 -0
- package/dist/_chunks/{EditViewPage-8uPO5GWR.mjs → EditViewPage-uWYR_o8w.mjs} +15 -15
- package/dist/_chunks/EditViewPage-uWYR_o8w.mjs.map +1 -0
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs → EventsTable-CqN6AzV9.mjs} +2 -2
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs.map → EventsTable-CqN6AzV9.mjs.map} +1 -1
- package/dist/_chunks/{EventsTable-hI0aV29K.js → EventsTable-R_AHW6Z4.js} +2 -2
- package/dist/_chunks/{EventsTable-hI0aV29K.js.map → EventsTable-R_AHW6Z4.js.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js → FieldTypeIcon-1WDWx0cR.js} +2 -2
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js.map → FieldTypeIcon-1WDWx0cR.js.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs → FieldTypeIcon-rAK1gg9p.mjs} +2 -2
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs.map → FieldTypeIcon-rAK1gg9p.mjs.map} +1 -1
- package/dist/_chunks/{Filters-xVuf1kg6.js → Filters-f6ghLf0Z.js} +2 -2
- package/dist/_chunks/{Filters-xVuf1kg6.js.map → Filters-f6ghLf0Z.js.map} +1 -1
- package/dist/_chunks/{Filters-tMd2Q5jg.mjs → Filters-rPaxqj4F.mjs} +2 -2
- package/dist/_chunks/{Filters-tMd2Q5jg.mjs.map → Filters-rPaxqj4F.mjs.map} +1 -1
- package/dist/_chunks/{Form-sZKjSFQC.mjs → Form-QOZA9Aq6.mjs} +6 -5
- package/dist/_chunks/Form-QOZA9Aq6.mjs.map +1 -0
- package/dist/_chunks/{Form-EiK_H9BI.js → Form-eqzCPjSo.js} +6 -5
- package/dist/_chunks/Form-eqzCPjSo.js.map +1 -0
- package/dist/_chunks/{History-1AF4LH3c.mjs → History-Eq4_WQPf.mjs} +4 -4
- package/dist/_chunks/{History-1AF4LH3c.mjs.map → History-Eq4_WQPf.mjs.map} +1 -1
- package/dist/_chunks/{History-V_ik1IL0.js → History-j00hpmXV.js} +4 -4
- package/dist/_chunks/{History-V_ik1IL0.js.map → History-j00hpmXV.js.map} +1 -1
- package/dist/_chunks/{HomePage-yrIp1-eG.js → HomePage-3IVOMrYf.js} +6 -5
- package/dist/_chunks/HomePage-3IVOMrYf.js.map +1 -0
- package/dist/_chunks/{HomePage-zL7HPV7A.js → HomePage-79fqDlve.js} +3 -3
- package/dist/_chunks/{HomePage-zL7HPV7A.js.map → HomePage-79fqDlve.js.map} +1 -1
- package/dist/_chunks/{HomePage-C6Ivli1q.mjs → HomePage-O-TRGX5T.mjs} +6 -5
- package/dist/_chunks/HomePage-O-TRGX5T.mjs.map +1 -0
- package/dist/_chunks/{HomePage-7Xva17wM.mjs → HomePage-gTElgmEK.mjs} +3 -3
- package/dist/_chunks/{HomePage-7Xva17wM.mjs.map → HomePage-gTElgmEK.mjs.map} +1 -1
- package/dist/_chunks/{InputRenderer-RMnWnPI4.js → InputRenderer-AVDw8MeU.js} +12 -19
- package/dist/_chunks/InputRenderer-AVDw8MeU.js.map +1 -0
- package/dist/_chunks/{InputRenderer-iP1kRki4.mjs → InputRenderer-bJwYq9ga.mjs} +13 -20
- package/dist/_chunks/InputRenderer-bJwYq9ga.mjs.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-PrMyistN.js → InstalledPluginsPage-FkR2xkQz.js} +5 -5
- package/dist/_chunks/InstalledPluginsPage-FkR2xkQz.js.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-7m_FfOGl.mjs → InstalledPluginsPage-R2hVFPZl.mjs} +6 -6
- package/dist/_chunks/InstalledPluginsPage-R2hVFPZl.mjs.map +1 -0
- package/dist/_chunks/{Layout-9Li8e-qi.js → Layout-G49-Vc5u.js} +5 -5
- package/dist/_chunks/Layout-G49-Vc5u.js.map +1 -0
- package/dist/_chunks/{Layout-EDS3Yv8X.mjs → Layout-cV6Se3U9.mjs} +6 -6
- package/dist/_chunks/Layout-cV6Se3U9.mjs.map +1 -0
- package/dist/_chunks/{Layout-DC68R0Fa.js → Layout-jweb3cF3.js} +2 -2
- package/dist/_chunks/{Layout-DC68R0Fa.js.map → Layout-jweb3cF3.js.map} +1 -1
- package/dist/_chunks/{Layout-tDfvrUZo.mjs → Layout-omCNy92r.mjs} +2 -2
- package/dist/_chunks/{Layout-tDfvrUZo.mjs.map → Layout-omCNy92r.mjs.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js → ListConfigurationPage-70qtv4Ci.js} +11 -10
- package/dist/_chunks/ListConfigurationPage-70qtv4Ci.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs → ListConfigurationPage-PrJNO_6y.mjs} +11 -10
- package/dist/_chunks/ListConfigurationPage-PrJNO_6y.mjs.map +1 -0
- package/dist/_chunks/{ListPage-em8KMoKx.js → ListPage-2lswUYQN.js} +14 -14
- package/dist/_chunks/ListPage-2lswUYQN.js.map +1 -0
- package/dist/_chunks/{ListPage-_i7RNkUF.js → ListPage-78Cv8Vfq.js} +8 -8
- package/dist/_chunks/ListPage-78Cv8Vfq.js.map +1 -0
- package/dist/_chunks/{ListPage-skKuhRrN.js → ListPage-7dZ3nYvc.js} +12 -11
- package/dist/_chunks/ListPage-7dZ3nYvc.js.map +1 -0
- package/dist/_chunks/{ListPage-DZBRIMkE.mjs → ListPage-Cvn3WbMH.mjs} +14 -14
- package/dist/_chunks/ListPage-Cvn3WbMH.mjs.map +1 -0
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js → ListPage-Ms6egnF5.js} +3 -3
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js.map → ListPage-Ms6egnF5.js.map} +1 -1
- package/dist/_chunks/{ListPage-Ky2tG2bd.mjs → ListPage-NmUS_cOz.mjs} +9 -9
- package/dist/_chunks/ListPage-NmUS_cOz.mjs.map +1 -0
- package/dist/_chunks/{ListPage-NdzVJ_Ed.js → ListPage-Pf5LxUYn.js} +11 -9
- package/dist/_chunks/ListPage-Pf5LxUYn.js.map +1 -0
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs → ListPage-Q81SX0vA.mjs} +3 -3
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs.map → ListPage-Q81SX0vA.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-RlY1nro4.mjs → ListPage-edro79m2.mjs} +9 -9
- package/dist/_chunks/ListPage-edro79m2.mjs.map +1 -0
- package/dist/_chunks/{ListPage-1q5Fi4W9.mjs → ListPage-mAUCZIg8.mjs} +14 -13
- package/dist/_chunks/ListPage-mAUCZIg8.mjs.map +1 -0
- package/dist/_chunks/{ListPage-God7L19W.mjs → ListPage-xFkcmM1b.mjs} +15 -15
- package/dist/_chunks/ListPage-xFkcmM1b.mjs.map +1 -0
- package/dist/_chunks/{ListPage-aElBcYPH.js → ListPage-yymh17qi.js} +13 -13
- package/dist/_chunks/ListPage-yymh17qi.js.map +1 -0
- package/dist/_chunks/{ListView-hm-mjZ8N.mjs → ListView--43zLiHW.mjs} +11 -11
- package/dist/_chunks/ListView--43zLiHW.mjs.map +1 -0
- package/dist/_chunks/{ListView--mxDKrnG.js → ListView-YtMAQnXL.js} +10 -10
- package/dist/_chunks/ListView-YtMAQnXL.js.map +1 -0
- package/dist/_chunks/{ListView-vP-PjR4p.js → ListView-nfA6o3qO.js} +9 -9
- package/dist/_chunks/ListView-nfA6o3qO.js.map +1 -0
- package/dist/_chunks/{ListView-QEgFV6dm.mjs → ListView-qPiKeCxj.mjs} +10 -10
- package/dist/_chunks/ListView-qPiKeCxj.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-NiwpwxBR.js → ListViewPage-Ys7-G2XX.js} +9 -9
- package/dist/_chunks/ListViewPage-Ys7-G2XX.js.map +1 -0
- package/dist/_chunks/{ListViewPage-xOVa04T_.mjs → ListViewPage-fPFonK_X.mjs} +10 -10
- package/dist/_chunks/ListViewPage-fPFonK_X.mjs.map +1 -0
- package/dist/_chunks/{Login-IFCsIrab.mjs → Login-6kXI90Vy.mjs} +2 -2
- package/dist/_chunks/{Login-IFCsIrab.mjs.map → Login-6kXI90Vy.mjs.map} +1 -1
- package/dist/_chunks/{Login-0FtP5Ck_.js → Login-Ge3DZEpr.js} +2 -2
- package/dist/_chunks/{Login-0FtP5Ck_.js.map → Login-Ge3DZEpr.js.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs → MagicLinkEE-HXWaLr0K.mjs} +3 -3
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs.map → MagicLinkEE-HXWaLr0K.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js → MagicLinkEE-sXtA2gUK.js} +3 -3
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js.map → MagicLinkEE-sXtA2gUK.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-f0ZrC_p8.mjs → MarketplacePage-hVOJ9_0k.mjs} +15 -20
- package/dist/_chunks/MarketplacePage-hVOJ9_0k.mjs.map +1 -0
- package/dist/_chunks/{MarketplacePage-zSQ_GRnZ.js → MarketplacePage-s8KDwNwK.js} +14 -19
- package/dist/_chunks/MarketplacePage-s8KDwNwK.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js → NoContentTypePage-7YEcgsE3.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js.map → NoContentTypePage-7YEcgsE3.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs → NoContentTypePage-szvJnQKF.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs.map → NoContentTypePage-szvJnQKF.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js → NoPermissionsPage-UX-5msLb.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js.map → NoPermissionsPage-UX-5msLb.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs → NoPermissionsPage-pqQFFlXa.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs.map → NoPermissionsPage-pqQFFlXa.mjs.map} +1 -1
- package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs → Permissions-NUaDxULo.mjs} +3 -3
- package/dist/_chunks/Permissions-NUaDxULo.mjs.map +1 -0
- package/dist/_chunks/{Permissions--rdF1ZKQ.js → Permissions-a0IZJ8dM.js} +6 -5
- package/dist/_chunks/Permissions-a0IZJ8dM.js.map +1 -0
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js → PrivateRoute-KGxyTa5b.js} +2 -2
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js.map → PrivateRoute-KGxyTa5b.js.map} +1 -1
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs → PrivateRoute-eP4-pBby.mjs} +2 -2
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs.map → PrivateRoute-eP4-pBby.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-bE7txhNu.mjs → ProfilePage-LXB-_EZ8.mjs} +14 -14
- package/dist/_chunks/ProfilePage-LXB-_EZ8.mjs.map +1 -0
- package/dist/_chunks/{ProfilePage-EEcNKnGH.js → ProfilePage-MBCGqbc_.js} +13 -13
- package/dist/_chunks/ProfilePage-MBCGqbc_.js.map +1 -0
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js → ReviewWorkflowsColumn-Ancp7-x3.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js.map → ReviewWorkflowsColumn-Ancp7-x3.js.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs → ReviewWorkflowsColumn-WzYpj2O3.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs.map → ReviewWorkflowsColumn-WzYpj2O3.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-Iih1yeTu.mjs → SelectRoles-Dxz_rAaT.mjs} +6 -9
- package/dist/_chunks/SelectRoles-Dxz_rAaT.mjs.map +1 -0
- package/dist/_chunks/{SelectRoles-XK5HcBdP.js → SelectRoles-Pr2wqehq.js} +5 -8
- package/dist/_chunks/SelectRoles-Pr2wqehq.js.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-uURRsIxP.js → SingleSignOnPage-4dK4id8H.js} +9 -9
- package/dist/_chunks/SingleSignOnPage-4dK4id8H.js.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-vOeDxBfa.mjs → SingleSignOnPage-gxgIeURz.mjs} +10 -10
- package/dist/_chunks/SingleSignOnPage-gxgIeURz.mjs.map +1 -0
- package/dist/_chunks/{Table-k6gVR2KH.mjs → Table-NiTkS4IC.mjs} +2 -2
- package/dist/_chunks/{Table-k6gVR2KH.mjs.map → Table-NiTkS4IC.mjs.map} +1 -1
- package/dist/_chunks/{Table-VsNr4Mha.js → Table-_9gVkGGi.js} +2 -2
- package/dist/_chunks/{Table-VsNr4Mha.js.map → Table-_9gVkGGi.js.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect-QN_bDdss.js → TokenTypeSelect-3aWUm1cW.js} +10 -10
- package/dist/_chunks/TokenTypeSelect-3aWUm1cW.js.map +1 -0
- package/dist/_chunks/{TokenTypeSelect-Z9iyoteG.mjs → TokenTypeSelect-jtfCyMMZ.mjs} +10 -10
- package/dist/_chunks/TokenTypeSelect-jtfCyMMZ.mjs.map +1 -0
- package/dist/_chunks/{UseCasePage-qJwKBweD.mjs → UseCasePage-0qXYZ8kt.mjs} +7 -6
- package/dist/_chunks/UseCasePage-0qXYZ8kt.mjs.map +1 -0
- package/dist/_chunks/{UseCasePage-xAlTWOcX.js → UseCasePage-QK-B8FfM.js} +7 -6
- package/dist/_chunks/UseCasePage-QK-B8FfM.js.map +1 -0
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs → apiTokens-DO6vkoyd.mjs} +2 -2
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs.map → apiTokens-DO6vkoyd.mjs.map} +1 -1
- package/dist/_chunks/{apiTokens-b3w4qO8B.js → apiTokens-TayNdk_V.js} +2 -2
- package/dist/_chunks/{apiTokens-b3w4qO8B.js.map → apiTokens-TayNdk_V.js.map} +1 -1
- package/dist/_chunks/{constants-ruIkLWCb.mjs → constants-FEW7x2Od.mjs} +2 -2
- package/dist/_chunks/{constants-ruIkLWCb.mjs.map → constants-FEW7x2Od.mjs.map} +1 -1
- package/dist/_chunks/{constants-PHXhIuUs.js → constants-RZp8o_c4.js} +2 -2
- package/dist/_chunks/{constants-PHXhIuUs.js.map → constants-RZp8o_c4.js.map} +1 -1
- package/dist/_chunks/{constants-IZEgEoW9.js → constants-Xd-X3SCR.js} +3 -3
- package/dist/_chunks/{constants-IZEgEoW9.js.map → constants-Xd-X3SCR.js.map} +1 -1
- package/dist/_chunks/{constants-WjN6I3sL.mjs → constants-_T5uxsuv.mjs} +3 -3
- package/dist/_chunks/{constants-WjN6I3sL.mjs.map → constants-_T5uxsuv.mjs.map} +1 -1
- package/dist/_chunks/{index-ibtz273H.js → index-ejSDPT-T.js} +151 -326
- package/dist/_chunks/index-ejSDPT-T.js.map +1 -0
- package/dist/_chunks/{index-5ZvCaCyY.mjs → index-hjUhNUvw.mjs} +279 -455
- package/dist/_chunks/index-hjUhNUvw.mjs.map +1 -0
- package/dist/_chunks/{selectors-TFKI8arF.js → selectors-T2YIN4Fb.js} +2 -2
- package/dist/_chunks/{selectors-TFKI8arF.js.map → selectors-T2YIN4Fb.js.map} +1 -1
- package/dist/_chunks/{selectors-JBxTdRJK.mjs → selectors-uLWxH-jN.mjs} +2 -2
- package/dist/_chunks/{selectors-JBxTdRJK.mjs.map → selectors-uLWxH-jN.mjs.map} +1 -1
- package/dist/_chunks/{transferTokens-G-suI4pp.js → transferTokens-T-kGMb3U.js} +2 -2
- package/dist/_chunks/{transferTokens-G-suI4pp.js.map → transferTokens-T-kGMb3U.js.map} +1 -1
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs → transferTokens-jdkk-sPx.mjs} +2 -2
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs.map → transferTokens-jdkk-sPx.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs → useAdminRoles-QJQS1BCd.mjs} +2 -2
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs.map → useAdminRoles-QJQS1BCd.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js → useAdminRoles-SnzC_mvy.js} +2 -2
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js.map → useAdminRoles-SnzC_mvy.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-dRoMxL8c.js → useContentTypes-Lpg-eJmK.js} +5 -4
- package/dist/_chunks/useContentTypes-Lpg-eJmK.js.map +1 -0
- package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs → useContentTypes-U-n1-lz0.mjs} +5 -4
- package/dist/_chunks/useContentTypes-U-n1-lz0.mjs.map +1 -0
- package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js → useLicenseLimitNotification-Hjv_LKmp.js} +6 -5
- package/dist/_chunks/useLicenseLimitNotification-Hjv_LKmp.js.map +1 -0
- package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs → useLicenseLimitNotification-yJHxF4YO.mjs} +6 -5
- package/dist/_chunks/useLicenseLimitNotification-yJHxF4YO.mjs.map +1 -0
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs → useReviewWorkflows-0rQx2KxS.mjs} +2 -2
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs.map → useReviewWorkflows-0rQx2KxS.mjs.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js → useReviewWorkflows-QoSEilRp.js} +2 -2
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js.map → useReviewWorkflows-QoSEilRp.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js → useSyncRbac-hZJWbmmY.js} +2 -2
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js.map → useSyncRbac-hZJWbmmY.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs → useSyncRbac-wVgN6XIc.mjs} +2 -2
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs.map → useSyncRbac-wVgN6XIc.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js → useWebhooks-1ZG0V0Mc.js} +2 -2
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js.map → useWebhooks-1ZG0V0Mc.js.map} +1 -1
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs → useWebhooks-WBwti5Jl.mjs} +2 -2
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs.map → useWebhooks-WBwti5Jl.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs → validateWorkflow-23kb45Oa.mjs} +6 -5
- package/dist/_chunks/validateWorkflow-23kb45Oa.mjs.map +1 -0
- package/dist/_chunks/{validateWorkflow-1g4fl4e7.js → validateWorkflow-MaEpFiHz.js} +9 -8
- package/dist/_chunks/validateWorkflow-MaEpFiHz.js.map +1 -0
- package/dist/_chunks/{validation-NckIpCgz.js → validation-7cD0kJHF.js} +2 -2
- package/dist/_chunks/{validation-NckIpCgz.js.map → validation-7cD0kJHF.js.map} +1 -1
- package/dist/_chunks/{validation-aaWzg0nE.mjs → validation-rilbXPnt.mjs} +2 -2
- package/dist/_chunks/{validation-aaWzg0nE.mjs.map → validation-rilbXPnt.mjs.map} +1 -1
- package/dist/admin/index.js +1 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +22 -25
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +1 -2
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -2
- package/dist/admin/src/index.d.ts +0 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/utils/users.d.ts +1 -1
- package/dist/server/src/validation/api-tokens.d.ts +27 -4
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +8 -2
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +53 -4
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
- package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts +23 -6
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +23 -4
- package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
- package/dist/server/src/validation/user.d.ts +56 -8
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/package.json +19 -12
- package/dist/_chunks/ApplicationInfoPage-PHLA1Ysy.js.map +0 -1
- package/dist/_chunks/ApplicationInfoPage-Zn5JU2zd.mjs.map +0 -1
- package/dist/_chunks/AuthenticatedLayout-5r4rzKeb.js.map +0 -1
- package/dist/_chunks/AuthenticatedLayout-a7KNOdln.mjs.map +0 -1
- package/dist/_chunks/ComponentConfigurationPage-R3qV_iCR.js.map +0 -1
- package/dist/_chunks/ComponentConfigurationPage-pb8HhFAg.mjs.map +0 -1
- package/dist/_chunks/CreatePage-Bil0egZ1.mjs.map +0 -1
- package/dist/_chunks/CreatePage-NSKUL8l4.js.map +0 -1
- package/dist/_chunks/CreatePage-h5L6QP47.mjs.map +0 -1
- package/dist/_chunks/CreatePage-nl6zKkKT.js.map +0 -1
- package/dist/_chunks/EditConfigurationPage-OpEZOvAG.js.map +0 -1
- package/dist/_chunks/EditConfigurationPage-y_TvxjZM.mjs.map +0 -1
- package/dist/_chunks/EditPage-9aK8IFXY.js.map +0 -1
- package/dist/_chunks/EditPage-A6olBfVm.js.map +0 -1
- package/dist/_chunks/EditPage-PpBP7TBo.js.map +0 -1
- package/dist/_chunks/EditPage-VoRR5DCQ.mjs.map +0 -1
- package/dist/_chunks/EditPage-_swY0Hy-.mjs.map +0 -1
- package/dist/_chunks/EditPage-fDVAYmuS.mjs.map +0 -1
- package/dist/_chunks/EditView-C_ynfmtW.js.map +0 -1
- package/dist/_chunks/EditView-EuUw_2zc.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-8uPO5GWR.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-XtJmgPi5.js.map +0 -1
- package/dist/_chunks/EditViewPage-Z_e1dpbU.js.map +0 -1
- package/dist/_chunks/EditViewPage-xYzUSAwS.mjs.map +0 -1
- package/dist/_chunks/Form-EiK_H9BI.js.map +0 -1
- package/dist/_chunks/Form-sZKjSFQC.mjs.map +0 -1
- package/dist/_chunks/HomePage-C6Ivli1q.mjs.map +0 -1
- package/dist/_chunks/HomePage-yrIp1-eG.js.map +0 -1
- package/dist/_chunks/InputRenderer-RMnWnPI4.js.map +0 -1
- package/dist/_chunks/InputRenderer-iP1kRki4.mjs.map +0 -1
- package/dist/_chunks/InstalledPluginsPage-7m_FfOGl.mjs.map +0 -1
- package/dist/_chunks/InstalledPluginsPage-PrMyistN.js.map +0 -1
- package/dist/_chunks/Layout-9Li8e-qi.js.map +0 -1
- package/dist/_chunks/Layout-EDS3Yv8X.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-7O7HiJjG.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-Gl8AA-2t.js.map +0 -1
- package/dist/_chunks/ListPage-1q5Fi4W9.mjs.map +0 -1
- package/dist/_chunks/ListPage-DZBRIMkE.mjs.map +0 -1
- package/dist/_chunks/ListPage-God7L19W.mjs.map +0 -1
- package/dist/_chunks/ListPage-Ky2tG2bd.mjs.map +0 -1
- package/dist/_chunks/ListPage-NdzVJ_Ed.js.map +0 -1
- package/dist/_chunks/ListPage-RlY1nro4.mjs.map +0 -1
- package/dist/_chunks/ListPage-_i7RNkUF.js.map +0 -1
- package/dist/_chunks/ListPage-aElBcYPH.js.map +0 -1
- package/dist/_chunks/ListPage-em8KMoKx.js.map +0 -1
- package/dist/_chunks/ListPage-skKuhRrN.js.map +0 -1
- package/dist/_chunks/ListView--mxDKrnG.js.map +0 -1
- package/dist/_chunks/ListView-QEgFV6dm.mjs.map +0 -1
- package/dist/_chunks/ListView-hm-mjZ8N.mjs.map +0 -1
- package/dist/_chunks/ListView-vP-PjR4p.js.map +0 -1
- package/dist/_chunks/ListViewPage-NiwpwxBR.js.map +0 -1
- package/dist/_chunks/ListViewPage-xOVa04T_.mjs.map +0 -1
- package/dist/_chunks/MarketplacePage-f0ZrC_p8.mjs.map +0 -1
- package/dist/_chunks/MarketplacePage-zSQ_GRnZ.js.map +0 -1
- package/dist/_chunks/Permissions--rdF1ZKQ.js.map +0 -1
- package/dist/_chunks/Permissions-Ke5fqSQ2.mjs.map +0 -1
- package/dist/_chunks/ProfilePage-EEcNKnGH.js.map +0 -1
- package/dist/_chunks/ProfilePage-bE7txhNu.mjs.map +0 -1
- package/dist/_chunks/SelectRoles-Iih1yeTu.mjs.map +0 -1
- package/dist/_chunks/SelectRoles-XK5HcBdP.js.map +0 -1
- package/dist/_chunks/SingleSignOnPage-uURRsIxP.js.map +0 -1
- package/dist/_chunks/SingleSignOnPage-vOeDxBfa.mjs.map +0 -1
- package/dist/_chunks/TokenTypeSelect-QN_bDdss.js.map +0 -1
- package/dist/_chunks/TokenTypeSelect-Z9iyoteG.mjs.map +0 -1
- package/dist/_chunks/UseCasePage-qJwKBweD.mjs.map +0 -1
- package/dist/_chunks/UseCasePage-xAlTWOcX.js.map +0 -1
- package/dist/_chunks/index-5ZvCaCyY.mjs.map +0 -1
- package/dist/_chunks/index-ibtz273H.js.map +0 -1
- package/dist/_chunks/useContentTypes-dRoMxL8c.js.map +0 -1
- package/dist/_chunks/useContentTypes-x6OLbsWe.mjs.map +0 -1
- package/dist/_chunks/useLicenseLimitNotification-BaSsY40x.js.map +0 -1
- package/dist/_chunks/useLicenseLimitNotification-wzvrsJoL.mjs.map +0 -1
- package/dist/_chunks/validateWorkflow-1g4fl4e7.js.map +0 -1
- package/dist/_chunks/validateWorkflow-DlwU9a4N.mjs.map +0 -1
- package/dist/admin/src/features/AppInfo.d.ts +0 -22
- package/dist/admin/src/features/Notifications.d.ts +0 -47
- package/dist/admin/src/utils/getYupInnerErrors.d.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditPage-_N_lm93z.js","sources":["../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const toggleNotification = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n useFocusWhenNavigate();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the use to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: {\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n },\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: formatAPIError(error) },\n });\n }\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n />\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n name: getDisplayName(initialData, formatMessage),\n }\n )}\n navigationAction={<BackButton />}\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </GridItem>\n );\n })\n )}\n </Grid>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles disabled={!canUpdate} />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </>\n );\n }}\n </Form>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["yup","COMMON_USER_SCHEMA","translatedErrors","useIntl","useMatch","useNavigate","useNotification","useEnterprise","MagicLinkCE","useAPIErrorHandler","useTypedSelector","selectAdminPermissions","useRBAC","useUpdateUserMutation","useFocusWhenNavigate","useAdminUsers","React","jsx","Page","pick","id","isBaseQueryError","Main","Helmet","Form","jsxs","Fragment","HeaderLayout","Button","Check","getDisplayName","BackButton","ContentLayout","Box","Flex","Typography","Grid","GridItem","InputRenderer","SelectRoles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,yBAAyBA,eAAI,OAAO,EAAE,MAAM;AAAA,EAChD,GAAGC,WAAA;AAAA,EACH,UAAUD,eAAI,KAAK;AAAA,EACnB,OAAOA,eACJ,QACA,IAAI,GAAG;AAAA,IACN,IAAIE,MAAAA,YAAiB,SAAS;AAAA,IAC9B,gBAAgB;AAAA,EACjB,CAAA,EACA,SAAS;AAAA,IACR,IAAIA,MAAAA,YAAiB,SAAS;AAAA,IAC9B,gBAAgB;AAAA,EAAA,CACjB;AACL,CAAC;AAED,MAAM,eAAe,CAAC,SAAS,aAAa,YAAY,YAAY,YAAY,OAAO;AAMvF,MAAM,WAAW,MAAM;AACf,QAAA,EAAE,kBAAkBC,UAAAA;AACpB,QAAA,QAAQC,wBAAS,qBAAqB;AACtC,QAAA,KAAK,OAAO,QAAQ,MAAM;AAChC,QAAM,WAAWC,eAAAA;AACjB,QAAM,qBAAqBC,aAAAA;AAC3B,QAAM,YAAYC,MAAA;AAAA,IAChBC,YAAA;AAAA,IACA,aAEI,MAAM,qCACJ,2BACF,CAAA,GACA;AAAA,EAAA;AAEA,QAAA;AAAA,IACJ,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,MAC/BC,MAAmB,mBAAA;AAEjB,QAAA,cAAcC,uBAAiBC,UAAAA,sBAAsB;AAErD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,UAAU;AAAA,MAC1BC,qBAAQ;AAAA,IACV,MAAM,YAAY,UAAU,MAAM,QAAQ,CAAC;AAAA,IAC3C,QAAQ,YAAY,UAAU,MAAM,UAAU,CAAC;AAAA,EAAA,CAChD;AAEK,QAAA,CAAC,UAAU,IAAIC,MAAAA;AAEAC,eAAAA;AAEf,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EAAA,IACTC,MAAA;AAAA,IACF,EAAE,GAAG;AAAA,IACL;AAAA,MACE,2BAA2B;AAAA,IAC7B;AAAA,EAAA;AAGF,QAAM,CAAC,IAAI,IAAI,MAAM,SAAS,CAAA;AAE9BC,mBAAM,UAAU,MAAM;AACpB,QAAI,OAAO;AAEL,UAAA,MAAM,SAAS,qBAAqB;AACnB,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS;AAAA,YACP,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAClB;AAAA,QAAA,CACD;AAED,iBAAS,GAAG;AAAA,MAAA,OACP;AACc,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,EAAE,IAAI,sBAAsB,gBAAgB,eAAe,KAAK,EAAE;AAAA,QAAA,CAC5E;AAAA,MACH;AAAA,IACF;AAAA,KACC,CAAC,OAAO,gBAAgB,UAAU,kBAAkB,CAAC;AAElD,QAAA,YAAY,uBAAuB,CAAC,aAAa;AAEvD,MAAI,WAAW;AACN,WAAAC,+BAACC,MAAAA,KAAK,SAAL,CAAa,CAAA;AAAA,EACvB;AAOA,QAAM,cAAc;AAAA,IAClB,GAAGC,cAAK,QAAA,MAAM,YAAY;AAAA,IAC1B,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,IAAAC,IAAG,MAAMA,GAAE;AAAA,IACpC,UAAU;AAAA,IACV,iBAAiB;AAAA,EAAA;AAGb,QAAA,eAAe,OAAO,MAAmB,YAAsC;AACnF,UAAM,EAAE,iBAAiB,kBAAkB,GAAG,aAAa;AAErD,UAAA,MAAM,MAAM,WAAW;AAAA,MAC3B;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AAED,QAAI,WAAW,OAAOC,MAAiB,iBAAA,IAAI,KAAK,GAAG;AAC7C,UAAA,IAAI,MAAM,SAAS,mBAAmB;AACxC,gBAAQ,UAAU,uBAAuB,IAAI,KAAK,CAAC;AAAA,MACrD;AAEmB,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,IAAI,KAAK;AAAA,MAAA,CAClC;AAAA,IAAA,OACI;AACc,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,cAAc,EAAE,IAAI,8BAA8B,gBAAgB,SAAS;AAAA,MAAA,CACrF;AAED,cAAQ,UAAU;AAAA,QAChB,GAAGF,cAAK,QAAA,MAAM,YAAY;AAAA,QAC1B,UAAU;AAAA,QACV,iBAAiB;AAAA,MAAA,CAClB;AAAA,IACH;AAAA,EAAA;AAGF,yCACGG,mBACC,EAAA,UAAA;AAAA,IAAAL,2BAAA;AAAA,MAACM,YAAA;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,EAAE,IAAI,sBAAsB,gBAAgB,oBAAoB;AAAA,UAChE;AAAA,YACE,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,IACAN,2BAAA;AAAA,MAACO,MAAA;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,UAAU;AAAA,QACV,eAAe;AAAA,QACf,kBAAkB;AAAA,QAEjB,UAAC,CAAA,EAAE,cAAc,eAAe;AAC/B,iBAEIC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,YAAAT,2BAAA;AAAA,cAACU,aAAA;AAAA,cAAA;AAAA,gBACC,eACEV,2BAAA;AAAA,kBAACW,aAAA;AAAA,kBAAA;AAAA,oBACC,UAAU,gBAAgB,CAAC,aAAa,CAAC;AAAA,oBACzC,0CAAYC,MAAM,OAAA,EAAA;AAAA,oBAClB,SAAS;AAAA,oBACT,MAAK;AAAA,oBACL,MAAK;AAAA,oBAEJ,wBAAc,EAAE,IAAI,eAAe,gBAAgB,QAAQ;AAAA,kBAAA;AAAA,gBAC9D;AAAA,gBAEF,OAAO;AAAA,kBACL;AAAA,oBACE,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAClB;AAAA,kBACA;AAAA,oBACE,MAAMC,MAAAA,eAAe,aAAa,aAAa;AAAA,kBACjD;AAAA,gBACF;AAAA,gBACA,iDAAmBC,MAAW,YAAA,EAAA;AAAA,cAAA;AAAA,YAChC;AAAA,4CACCC,aAAAA,eACE,EAAA,UAAA;AAAA,cAAM,MAAA,qBACJf,2BAAA,IAAAgB,aAAA,KAAA,EAAI,eAAe,GAClB,yCAAC,WAAU,EAAA,mBAAmB,KAAK,kBAAA,CAAmB,EACxD,CAAA;AAAA,8CAEDC,aAAAA,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,gBAAAjB,2BAAA;AAAA,kBAACgB,aAAA;AAAA,kBAAA;AAAA,oBACC,YAAW;AAAA,oBACX,WAAS;AAAA,oBACT,QAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,eAAe;AAAA,oBACf,aAAa;AAAA,oBACb,cAAc;AAAA,oBAEd,0CAACC,mBAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,sBAAAjB,+BAACkB,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,wBACb,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,GACH;AAAA,sBACClB,2BAAA,IAAAmB,aAAA,MAAA,EAAK,KAAK,GACR,UAAO,OAAA;AAAA,wBAAI,CAAC,QACX,IAAI,IAAI,CAAC,EAAE,MAAM,OAAO,GAAG,YAAY;AAEnC,iCAAAnB,2BAAAA,IAACoB,aAAAA,UAA0B,EAAA,KAAK,MAC9B,UAAApB,2BAAA;AAAA,4BAACqB,MAAA;AAAA,4BAAA;AAAA,8BACE,GAAG;AAAA,8BACJ,UAAU,CAAC;AAAA,8BACX,OAAO,cAAc,KAAK;AAAA,8BAC1B,aACE,iBAAiB,QACb,cAAc,MAAM,WAAW,IAC/B;AAAA,4BAAA;AAAA,0BAAA,KARK,MAAM,IAWrB;AAAA,wBAAA,CAEH;AAAA,sBAAA,GAEL;AAAA,oBAAA,GACF;AAAA,kBAAA;AAAA,gBACF;AAAA,gBACArB,2BAAA;AAAA,kBAACgB,aAAA;AAAA,kBAAA;AAAA,oBACC,YAAW;AAAA,oBACX,WAAS;AAAA,oBACT,QAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,eAAe;AAAA,oBACf,aAAa;AAAA,oBACb,cAAc;AAAA,oBAEd,0CAACC,mBAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,sBAAAjB,+BAACkB,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UAAc,cAAA;AAAA,wBACb,IAAI;AAAA,wBACJ,gBAAgB;AAAA,sBACjB,CAAA,GACH;AAAA,qDACCC,aAAAA,MAAK,EAAA,KAAK,GACT,UAAAnB,+BAACoB,aAAAA,YAAS,KAAK,GAAG,IAAI,IACpB,yCAACE,yBAAY,EAAA,UAAU,CAAC,UAAA,CAAW,EACrC,CAAA,GACF;AAAA,oBAAA,GACF;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA,GACF;AAAA,YAAA,GACF;AAAA,UACF,EAAA,CAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAMA,MAAM,SAAS;AAAA,EACb;AAAA,IACE;AAAA,MACE,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,QACX,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,cAAc;AAAA,MACd,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,cAAc;AAAA,MACd,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc7B,MAAAA,iBAAiB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,MAAM,IAAI;AAEhG,wCACGQ,MAAAA,KAAK,SAAL,EAAa,aACZ,UAAAD,2BAAAA,IAAC,YAAS,EACZ,CAAA;AAEJ;;;"}
|
|
@@ -3,14 +3,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
5
|
const designSystem = require("@strapi/design-system");
|
|
6
|
+
const helperPlugin = require("@strapi/helper-plugin");
|
|
6
7
|
const formik = require("formik");
|
|
7
8
|
const reactHelmet = require("react-helmet");
|
|
8
9
|
const reactIntl = require("react-intl");
|
|
9
10
|
const reactRouterDom = require("react-router-dom");
|
|
10
11
|
const yup = require("yup");
|
|
11
|
-
const index = require("./index-
|
|
12
|
-
const useAdminRoles = require("./useAdminRoles-
|
|
13
|
-
const Permissions = require("./Permissions
|
|
12
|
+
const index = require("./index-ejSDPT-T.js");
|
|
13
|
+
const useAdminRoles = require("./useAdminRoles-SnzC_mvy.js");
|
|
14
|
+
const Permissions = require("./Permissions-a0IZJ8dM.js");
|
|
14
15
|
function _interopNamespace(e) {
|
|
15
16
|
if (e && e.__esModule)
|
|
16
17
|
return e;
|
|
@@ -93,7 +94,7 @@ const EDIT_ROLE_SCHEMA = yup__namespace.object().shape({
|
|
|
93
94
|
description: yup__namespace.string().optional()
|
|
94
95
|
});
|
|
95
96
|
const EditPage = () => {
|
|
96
|
-
const
|
|
97
|
+
const toggleNotification = helperPlugin.useNotification();
|
|
97
98
|
const { formatMessage } = reactIntl.useIntl();
|
|
98
99
|
const match = reactRouterDom.useMatch("/settings/roles/:id");
|
|
99
100
|
const id = match?.params.id;
|
|
@@ -147,7 +148,7 @@ const EditPage = () => {
|
|
|
147
148
|
formik2.setErrors(formatValidationErrors(res.error));
|
|
148
149
|
} else {
|
|
149
150
|
toggleNotification({
|
|
150
|
-
type: "
|
|
151
|
+
type: "warning",
|
|
151
152
|
message: formatAPIError(res.error)
|
|
152
153
|
});
|
|
153
154
|
}
|
|
@@ -163,7 +164,7 @@ const EditPage = () => {
|
|
|
163
164
|
formik2.setErrors(formatValidationErrors(updateRes.error));
|
|
164
165
|
} else {
|
|
165
166
|
toggleNotification({
|
|
166
|
-
type: "
|
|
167
|
+
type: "warning",
|
|
167
168
|
message: formatAPIError(updateRes.error)
|
|
168
169
|
});
|
|
169
170
|
}
|
|
@@ -177,12 +178,12 @@ const EditPage = () => {
|
|
|
177
178
|
await refetchRole();
|
|
178
179
|
toggleNotification({
|
|
179
180
|
type: "success",
|
|
180
|
-
message:
|
|
181
|
+
message: { id: "notification.success.saved" }
|
|
181
182
|
});
|
|
182
183
|
} catch (error) {
|
|
183
184
|
toggleNotification({
|
|
184
|
-
type: "
|
|
185
|
-
message:
|
|
185
|
+
type: "warning",
|
|
186
|
+
message: { id: "notification.error" }
|
|
186
187
|
});
|
|
187
188
|
}
|
|
188
189
|
};
|
|
@@ -276,4 +277,4 @@ const ProtectedEditPage = () => {
|
|
|
276
277
|
};
|
|
277
278
|
exports.EditPage = EditPage;
|
|
278
279
|
exports.ProtectedEditPage = ProtectedEditPage;
|
|
279
|
-
//# sourceMappingURL=EditPage-
|
|
280
|
+
//# sourceMappingURL=EditPage-mU2WAH0F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditPage-mU2WAH0F.js","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport { useNotification } from '@strapi/helper-plugin';\nimport { Formik, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n />\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton />}\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","yup","translatedErrors","useNotification","useMatch","React","useTracking","useAPIErrorHandler","useGetRolePermissionLayoutQuery","useAdminRoles","useGetRolePermissionsQuery","useUpdateRoleMutation","useUpdateRolePermissionsMutation","Navigate","formik","isBaseQueryError","Page","Main","Helmet","Formik","HeaderLayout","BackButton","ContentLayout","Permissions","useTypedSelector"],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { Main, ContentLayout, Flex, Box, Typography, Grid, GridItem } from "@strapi/design-system";
|
|
4
|
-
import { useFocusWhenNavigate, useRBAC } from "@strapi/helper-plugin";
|
|
4
|
+
import { useFocusWhenNavigate, useNotification, useRBAC } from "@strapi/helper-plugin";
|
|
5
5
|
import { Formik, Form } from "formik";
|
|
6
6
|
import { Helmet } from "react-helmet";
|
|
7
7
|
import { useIntl } from "react-intl";
|
|
8
8
|
import { useNavigate, useLocation, useMatch } from "react-router-dom";
|
|
9
9
|
import * as yup from "yup";
|
|
10
|
-
import {
|
|
11
|
-
import { u as useGetTransferTokenQuery, a as useCreateTransferTokenMutation, b as useUpdateTransferTokenMutation } from "./transferTokens-
|
|
10
|
+
import { n as errorsTrads, o as useTypedSelector, P as Page, c as useTracking, b as useGuidedTour, m as useAPIErrorHandler, t as isBaseQueryError } from "./index-hjUhNUvw.mjs";
|
|
11
|
+
import { u as useGetTransferTokenQuery, a as useCreateTransferTokenMutation, b as useUpdateTransferTokenMutation } from "./transferTokens-jdkk-sPx.mjs";
|
|
12
12
|
import { T as TRANSFER_TOKEN_TYPE } from "./constants-fJt30IoY.mjs";
|
|
13
|
-
import { F as FormHead, c as TokenBox, T as TokenName, a as TokenDescription, L as LifeSpanInput, b as TokenTypeSelect } from "./TokenTypeSelect-
|
|
13
|
+
import { F as FormHead, c as TokenBox, T as TokenName, a as TokenDescription, L as LifeSpanInput, b as TokenTypeSelect } from "./TokenTypeSelect-jtfCyMMZ.mjs";
|
|
14
14
|
const schema = yup.object().shape({
|
|
15
15
|
name: yup.string().max(100).required(errorsTrads.required.id),
|
|
16
16
|
description: yup.string().nullable(),
|
|
@@ -20,7 +20,7 @@ const schema = yup.object().shape({
|
|
|
20
20
|
const EditView = () => {
|
|
21
21
|
useFocusWhenNavigate();
|
|
22
22
|
const { formatMessage } = useIntl();
|
|
23
|
-
const
|
|
23
|
+
const toggleNotification = useNotification();
|
|
24
24
|
const navigate = useNavigate();
|
|
25
25
|
const { state: locationState } = useLocation();
|
|
26
26
|
const [transferToken, setTransferToken] = React.useState(
|
|
@@ -54,7 +54,7 @@ const EditView = () => {
|
|
|
54
54
|
React.useEffect(() => {
|
|
55
55
|
if (error) {
|
|
56
56
|
toggleNotification({
|
|
57
|
-
type: "
|
|
57
|
+
type: "warning",
|
|
58
58
|
message: formatAPIError(error)
|
|
59
59
|
});
|
|
60
60
|
}
|
|
@@ -91,7 +91,7 @@ const EditView = () => {
|
|
|
91
91
|
formik.setErrors(formatValidationErrors(res.error));
|
|
92
92
|
} else {
|
|
93
93
|
toggleNotification({
|
|
94
|
-
type: "
|
|
94
|
+
type: "warning",
|
|
95
95
|
message: formatAPIError(res.error)
|
|
96
96
|
});
|
|
97
97
|
}
|
|
@@ -126,7 +126,7 @@ const EditView = () => {
|
|
|
126
126
|
formik.setErrors(formatValidationErrors(res.error));
|
|
127
127
|
} else {
|
|
128
128
|
toggleNotification({
|
|
129
|
-
type: "
|
|
129
|
+
type: "warning",
|
|
130
130
|
message: formatAPIError(res.error)
|
|
131
131
|
});
|
|
132
132
|
}
|
|
@@ -147,11 +147,11 @@ const EditView = () => {
|
|
|
147
147
|
}
|
|
148
148
|
} catch (err) {
|
|
149
149
|
toggleNotification({
|
|
150
|
-
type: "
|
|
151
|
-
message:
|
|
150
|
+
type: "warning",
|
|
151
|
+
message: {
|
|
152
152
|
id: "notification.error",
|
|
153
153
|
defaultMessage: "Something went wrong"
|
|
154
|
-
}
|
|
154
|
+
}
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -336,4 +336,4 @@ export {
|
|
|
336
336
|
EditView,
|
|
337
337
|
ProtectedEditView
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=EditView-
|
|
339
|
+
//# sourceMappingURL=EditView-0lXpbgG0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditView-0lXpbgG0.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Main, Typography } from '@strapi/design-system';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n setCurrentStep('transferTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </GridItem>\n <GridItem key=\"permissions\" col={6} xs={12}>\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["translatedErrors","permissions"],"mappings":"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"}
|
|
@@ -9,10 +9,10 @@ const reactHelmet = require("react-helmet");
|
|
|
9
9
|
const reactIntl = require("react-intl");
|
|
10
10
|
const reactRouterDom = require("react-router-dom");
|
|
11
11
|
const yup = require("yup");
|
|
12
|
-
const index = require("./index-
|
|
13
|
-
const transferTokens = require("./transferTokens-
|
|
12
|
+
const index = require("./index-ejSDPT-T.js");
|
|
13
|
+
const transferTokens = require("./transferTokens-T-kGMb3U.js");
|
|
14
14
|
const constants = require("./constants-RMqZXSqh.js");
|
|
15
|
-
const TokenTypeSelect = require("./TokenTypeSelect-
|
|
15
|
+
const TokenTypeSelect = require("./TokenTypeSelect-3aWUm1cW.js");
|
|
16
16
|
function _interopNamespace(e) {
|
|
17
17
|
if (e && e.__esModule)
|
|
18
18
|
return e;
|
|
@@ -42,7 +42,7 @@ const schema = yup__namespace.object().shape({
|
|
|
42
42
|
const EditView = () => {
|
|
43
43
|
helperPlugin.useFocusWhenNavigate();
|
|
44
44
|
const { formatMessage } = reactIntl.useIntl();
|
|
45
|
-
const
|
|
45
|
+
const toggleNotification = helperPlugin.useNotification();
|
|
46
46
|
const navigate = reactRouterDom.useNavigate();
|
|
47
47
|
const { state: locationState } = reactRouterDom.useLocation();
|
|
48
48
|
const [transferToken, setTransferToken] = React__namespace.useState(
|
|
@@ -76,7 +76,7 @@ const EditView = () => {
|
|
|
76
76
|
React__namespace.useEffect(() => {
|
|
77
77
|
if (error) {
|
|
78
78
|
toggleNotification({
|
|
79
|
-
type: "
|
|
79
|
+
type: "warning",
|
|
80
80
|
message: formatAPIError(error)
|
|
81
81
|
});
|
|
82
82
|
}
|
|
@@ -113,7 +113,7 @@ const EditView = () => {
|
|
|
113
113
|
formik2.setErrors(formatValidationErrors(res.error));
|
|
114
114
|
} else {
|
|
115
115
|
toggleNotification({
|
|
116
|
-
type: "
|
|
116
|
+
type: "warning",
|
|
117
117
|
message: formatAPIError(res.error)
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -148,7 +148,7 @@ const EditView = () => {
|
|
|
148
148
|
formik2.setErrors(formatValidationErrors(res.error));
|
|
149
149
|
} else {
|
|
150
150
|
toggleNotification({
|
|
151
|
-
type: "
|
|
151
|
+
type: "warning",
|
|
152
152
|
message: formatAPIError(res.error)
|
|
153
153
|
});
|
|
154
154
|
}
|
|
@@ -169,11 +169,11 @@ const EditView = () => {
|
|
|
169
169
|
}
|
|
170
170
|
} catch (err) {
|
|
171
171
|
toggleNotification({
|
|
172
|
-
type: "
|
|
173
|
-
message:
|
|
172
|
+
type: "warning",
|
|
173
|
+
message: {
|
|
174
174
|
id: "notification.error",
|
|
175
175
|
defaultMessage: "Something went wrong"
|
|
176
|
-
}
|
|
176
|
+
}
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -356,4 +356,4 @@ const FormTransferTokenContainer = ({
|
|
|
356
356
|
};
|
|
357
357
|
exports.EditView = EditView;
|
|
358
358
|
exports.ProtectedEditView = ProtectedEditView;
|
|
359
|
-
//# sourceMappingURL=EditView-
|
|
359
|
+
//# sourceMappingURL=EditView-wDP9PNQY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditView-wDP9PNQY.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Main, Typography } from '@strapi/design-system';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const setCurrentStep = useGuidedTour('EditView', (state) => state.setCurrentStep);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n setCurrentStep('transferTokens.success');\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n />\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem key=\"name\" col={6} xs={12}>\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"description\" col={6} xs={12}>\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </GridItem>\n <GridItem key=\"lifespan\" col={6} xs={12}>\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </GridItem>\n <GridItem key=\"permissions\" col={6} xs={12}>\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useNotification","useNavigate","useLocation","React","useTracking","useGuidedTour","useTypedSelector","useRBAC","useMatch","useAPIErrorHandler","TRANSFER_TOKEN_TYPE","useGetTransferTokenQuery","useCreateTransferTokenMutation","useUpdateTransferTokenMutation","formik","permissions","isBaseQueryError","jsx","Page","Main","Helmet","Formik","Form","FormHead","ContentLayout","jsxs","Flex","TokenBox","Box","Typography","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect"],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ const formik = require("formik");
|
|
|
8
8
|
const reactHelmet = require("react-helmet");
|
|
9
9
|
const reactIntl = require("react-intl");
|
|
10
10
|
const reactRouterDom = require("react-router-dom");
|
|
11
|
-
const index = require("./index-
|
|
12
|
-
const apiTokens = require("./apiTokens-
|
|
11
|
+
const index = require("./index-ejSDPT-T.js");
|
|
12
|
+
const apiTokens = require("./apiTokens-TayNdk_V.js");
|
|
13
13
|
const constants = require("./constants-RMqZXSqh.js");
|
|
14
|
-
const TokenTypeSelect = require("./TokenTypeSelect-
|
|
14
|
+
const TokenTypeSelect = require("./TokenTypeSelect-3aWUm1cW.js");
|
|
15
15
|
const reactContext = require("@radix-ui/react-context");
|
|
16
16
|
const map = require("lodash/map");
|
|
17
17
|
const tail = require("lodash/tail");
|
|
@@ -19,7 +19,7 @@ const styled = require("styled-components");
|
|
|
19
19
|
const Icons = require("@strapi/icons");
|
|
20
20
|
const capitalize = require("lodash/capitalize");
|
|
21
21
|
const yup = require("yup");
|
|
22
|
-
const
|
|
22
|
+
const produce = require("immer");
|
|
23
23
|
const pull = require("lodash/pull");
|
|
24
24
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
25
25
|
function _interopNamespace(e) {
|
|
@@ -46,6 +46,7 @@ const tail__default = /* @__PURE__ */ _interopDefault(tail);
|
|
|
46
46
|
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
47
47
|
const capitalize__default = /* @__PURE__ */ _interopDefault(capitalize);
|
|
48
48
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
49
|
+
const produce__default = /* @__PURE__ */ _interopDefault(produce);
|
|
49
50
|
const pull__default = /* @__PURE__ */ _interopDefault(pull);
|
|
50
51
|
const contentApiService = index.adminApi.injectEndpoints({
|
|
51
52
|
endpoints: (builder) => ({
|
|
@@ -491,7 +492,7 @@ const initialState = {
|
|
|
491
492
|
selectedAction: "",
|
|
492
493
|
selectedActions: []
|
|
493
494
|
};
|
|
494
|
-
const reducer = (state, action) =>
|
|
495
|
+
const reducer = (state, action) => produce__default.default(state, (draftState) => {
|
|
495
496
|
switch (action.type) {
|
|
496
497
|
case "ON_CHANGE": {
|
|
497
498
|
if (draftState.selectedActions.includes(action.value)) {
|
|
@@ -550,7 +551,7 @@ const reducer = (state, action) => immer.produce(state, (draftState) => {
|
|
|
550
551
|
const EditView = () => {
|
|
551
552
|
helperPlugin.useFocusWhenNavigate();
|
|
552
553
|
const { formatMessage } = reactIntl.useIntl();
|
|
553
|
-
const
|
|
554
|
+
const toggleNotification = helperPlugin.useNotification();
|
|
554
555
|
const { state: locationState } = reactRouterDom.useLocation();
|
|
555
556
|
const permissions = index.useTypedSelector((state2) => state2.admin_app.permissions);
|
|
556
557
|
const [apiToken, setApiToken] = React__namespace.useState(
|
|
@@ -577,7 +578,7 @@ const EditView = () => {
|
|
|
577
578
|
React__namespace.useEffect(() => {
|
|
578
579
|
if (contentAPIPermissionsQuery.error) {
|
|
579
580
|
toggleNotification({
|
|
580
|
-
type: "
|
|
581
|
+
type: "warning",
|
|
581
582
|
message: formatAPIError(contentAPIPermissionsQuery.error)
|
|
582
583
|
});
|
|
583
584
|
}
|
|
@@ -585,7 +586,7 @@ const EditView = () => {
|
|
|
585
586
|
React__namespace.useEffect(() => {
|
|
586
587
|
if (contentAPIRoutesQuery.error) {
|
|
587
588
|
toggleNotification({
|
|
588
|
-
type: "
|
|
589
|
+
type: "warning",
|
|
589
590
|
message: formatAPIError(contentAPIRoutesQuery.error)
|
|
590
591
|
});
|
|
591
592
|
}
|
|
@@ -637,7 +638,7 @@ const EditView = () => {
|
|
|
637
638
|
React__namespace.useEffect(() => {
|
|
638
639
|
if (error) {
|
|
639
640
|
toggleNotification({
|
|
640
|
-
type: "
|
|
641
|
+
type: "warning",
|
|
641
642
|
message: formatAPIError(error)
|
|
642
643
|
});
|
|
643
644
|
}
|
|
@@ -682,7 +683,7 @@ const EditView = () => {
|
|
|
682
683
|
formik2.setErrors(formatValidtionErrors(res.error));
|
|
683
684
|
} else {
|
|
684
685
|
toggleNotification({
|
|
685
|
-
type: "
|
|
686
|
+
type: "warning",
|
|
686
687
|
message: formatAPIError(res.error)
|
|
687
688
|
});
|
|
688
689
|
}
|
|
@@ -717,7 +718,7 @@ const EditView = () => {
|
|
|
717
718
|
formik2.setErrors(formatValidtionErrors(res.error));
|
|
718
719
|
} else {
|
|
719
720
|
toggleNotification({
|
|
720
|
-
type: "
|
|
721
|
+
type: "warning",
|
|
721
722
|
message: formatAPIError(res.error)
|
|
722
723
|
});
|
|
723
724
|
}
|
|
@@ -737,11 +738,11 @@ const EditView = () => {
|
|
|
737
738
|
}
|
|
738
739
|
} catch {
|
|
739
740
|
toggleNotification({
|
|
740
|
-
type: "
|
|
741
|
-
message:
|
|
741
|
+
type: "warning",
|
|
742
|
+
message: {
|
|
742
743
|
id: "notification.error",
|
|
743
744
|
defaultMessage: "Something went wrong"
|
|
744
|
-
}
|
|
745
|
+
}
|
|
745
746
|
});
|
|
746
747
|
}
|
|
747
748
|
};
|
|
@@ -861,4 +862,4 @@ const ProtectedEditView = () => {
|
|
|
861
862
|
};
|
|
862
863
|
exports.EditView = EditView;
|
|
863
864
|
exports.ProtectedEditView = ProtectedEditView;
|
|
864
|
-
//# sourceMappingURL=EditViewPage-
|
|
865
|
+
//# sourceMappingURL=EditViewPage-0Pd8zBi7.js.map
|