@strapi/admin 5.0.0-beta.2 → 5.0.0-beta.3
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/admin/{AdminSeatInfo-pcU6Psg5.js → AdminSeatInfo-H5eNy3Gq.js} +5 -5
- package/dist/admin/{AdminSeatInfo-pcU6Psg5.js.map → AdminSeatInfo-H5eNy3Gq.js.map} +1 -1
- package/dist/admin/{AdminSeatInfo-KKTvi8LR.mjs → AdminSeatInfo-jPH1stsB.mjs} +4 -4
- package/dist/admin/{AdminSeatInfo-KKTvi8LR.mjs.map → AdminSeatInfo-jPH1stsB.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-eFuntlx4.mjs → ApplicationInfoPage-QiVVy6LS.mjs} +4 -4
- package/dist/admin/{ApplicationInfoPage-eFuntlx4.mjs.map → ApplicationInfoPage-QiVVy6LS.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-Ip1_DTk9.js → ApplicationInfoPage-leY1AEgo.js} +14 -14
- package/dist/admin/{ApplicationInfoPage-Ip1_DTk9.js.map → ApplicationInfoPage-leY1AEgo.js.map} +1 -1
- package/dist/admin/{AuthResponse-no1FFPpN.mjs → AuthResponse-5G-7aJDM.mjs} +2 -2
- package/dist/admin/{AuthResponse-no1FFPpN.mjs.map → AuthResponse-5G-7aJDM.mjs.map} +1 -1
- package/dist/admin/{AuthResponse-j4iu1hDd.js → AuthResponse-kdo9DYPT.js} +4 -4
- package/dist/admin/{AuthResponse-j4iu1hDd.js.map → AuthResponse-kdo9DYPT.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-GD2XM4Xh.js → AuthenticatedLayout-1x0WC6c6.js} +41 -62
- package/dist/admin/AuthenticatedLayout-1x0WC6c6.js.map +1 -0
- package/dist/admin/{AuthenticatedLayout-mta84NQE.mjs → AuthenticatedLayout-zaOd05gw.mjs} +23 -44
- package/dist/admin/AuthenticatedLayout-zaOd05gw.mjs.map +1 -0
- package/dist/admin/{CreateActionEE-j8NEQArt.js → CreateActionEE-2DKYzbq_.js} +2 -2
- package/dist/admin/{CreateActionEE-j8NEQArt.js.map → CreateActionEE-2DKYzbq_.js.map} +1 -1
- package/dist/admin/{CreateActionEE-9o2Mj6Ml.mjs → CreateActionEE-TcGdWjIN.mjs} +2 -2
- package/dist/admin/{CreateActionEE-9o2Mj6Ml.mjs.map → CreateActionEE-TcGdWjIN.mjs.map} +1 -1
- package/dist/admin/{CreatePage-V4cSRx8F.js → CreatePage-J84OUqE4.js} +12 -12
- package/dist/admin/{CreatePage-V4cSRx8F.js.map → CreatePage-J84OUqE4.js.map} +1 -1
- package/dist/admin/{CreatePage-FJXNWV-g.mjs → CreatePage-gSoe3n8A.mjs} +3 -3
- package/dist/admin/{CreatePage-FJXNWV-g.mjs.map → CreatePage-gSoe3n8A.mjs.map} +1 -1
- package/dist/admin/{CreatePage-P-JKk6La.mjs → CreatePage-pniatTP-.mjs} +5 -5
- package/dist/admin/{CreatePage-P-JKk6La.mjs.map → CreatePage-pniatTP-.mjs.map} +1 -1
- package/dist/admin/{CreatePage-ZcVRwog2.js → CreatePage-z4ERqv1R.js} +5 -5
- package/dist/admin/{CreatePage-ZcVRwog2.js.map → CreatePage-z4ERqv1R.js.map} +1 -1
- package/dist/admin/{CreateView-BKV0PWUL.mjs → CreateView-BdO0Pvex.mjs} +3 -3
- package/dist/admin/{CreateView-BKV0PWUL.mjs.map → CreateView-BdO0Pvex.mjs.map} +1 -1
- package/dist/admin/CreateView-JNmfRawb.js +17 -0
- package/dist/admin/{CreateView-tQxib6Yo.js.map → CreateView-JNmfRawb.js.map} +1 -1
- package/dist/admin/CreateView-NwMXZjDh.js +17 -0
- package/dist/admin/{CreateView-5zt3cfsd.js.map → CreateView-NwMXZjDh.js.map} +1 -1
- package/dist/admin/{CreateView-A1wdcygq.mjs → CreateView-sFb3ySEj.mjs} +3 -3
- package/dist/admin/{CreateView-A1wdcygq.mjs.map → CreateView-sFb3ySEj.mjs.map} +1 -1
- package/dist/admin/{EditPage-qN5pbP1W.mjs → EditPage-3wx6NJgA.mjs} +7 -7
- package/dist/admin/{EditPage-qN5pbP1W.mjs.map → EditPage-3wx6NJgA.mjs.map} +1 -1
- package/dist/admin/{EditPage-k_6aHRVf.mjs → EditPage-IQRLHMer.mjs} +10 -9
- package/dist/admin/EditPage-IQRLHMer.mjs.map +1 -0
- package/dist/admin/{EditPage-YUSwYkTW.js → EditPage-dAyJwJfs.js} +19 -18
- package/dist/admin/EditPage-dAyJwJfs.js.map +1 -0
- package/dist/admin/{EditPage-L3K_x3mo.js → EditPage-eR6riBsR.js} +13 -13
- package/dist/admin/{EditPage-L3K_x3mo.js.map → EditPage-eR6riBsR.js.map} +1 -1
- package/dist/admin/{EditPage-7LbHuqPq.js → EditPage-rdOE18EC.js} +13 -13
- package/dist/admin/{EditPage-7LbHuqPq.js.map → EditPage-rdOE18EC.js.map} +1 -1
- package/dist/admin/{EditPage-NKv-e2KT.mjs → EditPage-yztdPcnM.mjs} +6 -6
- package/dist/admin/{EditPage-NKv-e2KT.mjs.map → EditPage-yztdPcnM.mjs.map} +1 -1
- package/dist/admin/{EditView-NsG_ztE8.mjs → EditView-fbzip_S8.mjs} +6 -6
- package/dist/admin/{EditView-NsG_ztE8.mjs.map → EditView-fbzip_S8.mjs.map} +1 -1
- package/dist/admin/{EditView-HPIQBaUm.js → EditView-oyHNBKvL.js} +16 -16
- package/dist/admin/{EditView-HPIQBaUm.js.map → EditView-oyHNBKvL.js.map} +1 -1
- package/dist/admin/{EditViewPage-_RgRquw7.js → EditViewPage-LdDGNi6d.js} +18 -18
- package/dist/admin/{EditViewPage-_RgRquw7.js.map → EditViewPage-LdDGNi6d.js.map} +1 -1
- package/dist/admin/{EditViewPage-SORieV31.mjs → EditViewPage-rDgxiutd.mjs} +8 -8
- package/dist/admin/{EditViewPage-SORieV31.mjs.map → EditViewPage-rDgxiutd.mjs.map} +1 -1
- package/dist/admin/{EventsTable-lKzkleEo.js → EventsTable--peC0Geq.js} +2 -2
- package/dist/admin/{EventsTable-lKzkleEo.js.map → EventsTable--peC0Geq.js.map} +1 -1
- package/dist/admin/{EventsTable-ZGByQmYS.mjs → EventsTable-rNMPq-X1.mjs} +2 -2
- package/dist/admin/{EventsTable-ZGByQmYS.mjs.map → EventsTable-rNMPq-X1.mjs.map} +1 -1
- package/dist/admin/{HomePage-WL46uo6c.js → HomePage-14WM2hIE.js} +3 -3
- package/dist/admin/{HomePage-WL46uo6c.js.map → HomePage-14WM2hIE.js.map} +1 -1
- package/dist/admin/{HomePage-XsltwUHu.js → HomePage-e2Bs6Kar.js} +12 -12
- package/dist/admin/{HomePage-XsltwUHu.js.map → HomePage-e2Bs6Kar.js.map} +1 -1
- package/dist/admin/{HomePage-Gt7-reqY.mjs → HomePage-qgAro8dS.mjs} +5 -5
- package/dist/admin/{HomePage-Gt7-reqY.mjs.map → HomePage-qgAro8dS.mjs.map} +1 -1
- package/dist/admin/{HomePage-WNfhIqeG.mjs → HomePage-zQ7HL9y6.mjs} +3 -3
- package/dist/admin/{HomePage-WNfhIqeG.mjs.map → HomePage-zQ7HL9y6.mjs.map} +1 -1
- package/dist/admin/{InstalledPluginsPage-GYKMwvHv.js → InstalledPluginsPage-ZIPyDrzh.js} +10 -10
- package/dist/admin/{InstalledPluginsPage-GYKMwvHv.js.map → InstalledPluginsPage-ZIPyDrzh.js.map} +1 -1
- package/dist/admin/{InstalledPluginsPage--ZsKfXh4.mjs → InstalledPluginsPage-s_PGIc3_.mjs} +4 -4
- package/dist/admin/{InstalledPluginsPage--ZsKfXh4.mjs.map → InstalledPluginsPage-s_PGIc3_.mjs.map} +1 -1
- package/dist/admin/{Layout-Ojd0IVLT.js → Layout-KAX2c8wc.js} +12 -12
- package/dist/admin/Layout-KAX2c8wc.js.map +1 -0
- package/dist/admin/{Layout-fD9qm3jw.mjs → Layout-mEj5c1Bi.mjs} +6 -6
- package/dist/admin/Layout-mEj5c1Bi.mjs.map +1 -0
- package/dist/admin/{ListPage-fjrFazMD.mjs → ListPage-AI8neqxV.mjs} +4 -4
- package/dist/admin/{ListPage-fjrFazMD.mjs.map → ListPage-AI8neqxV.mjs.map} +1 -1
- package/dist/admin/{ListPage-bixYhMBi.js → ListPage-ARW72ceH.js} +13 -13
- package/dist/admin/{ListPage-bixYhMBi.js.map → ListPage-ARW72ceH.js.map} +1 -1
- package/dist/admin/{ListPage-ddKZOtpb.js → ListPage-AUimd0cK.js} +20 -20
- package/dist/admin/{ListPage-ddKZOtpb.js.map → ListPage-AUimd0cK.js.map} +1 -1
- package/dist/admin/{ListPage-cdXKmKwt.mjs → ListPage-BIpKdUdv.mjs} +5 -5
- package/dist/admin/{ListPage-cdXKmKwt.mjs.map → ListPage-BIpKdUdv.mjs.map} +1 -1
- package/dist/admin/{ListPage-qABnTZzR.js → ListPage-DxI49fdQ.js} +14 -14
- package/dist/admin/{ListPage-qABnTZzR.js.map → ListPage-DxI49fdQ.js.map} +1 -1
- package/dist/admin/{ListPage-2KQUGpSp.js → ListPage-MvgbZlgc.js} +3 -3
- package/dist/admin/{ListPage-2KQUGpSp.js.map → ListPage-MvgbZlgc.js.map} +1 -1
- package/dist/admin/{ListPage-WozCiyeB.mjs → ListPage-ZDEeaYvm.mjs} +3 -3
- package/dist/admin/{ListPage-WozCiyeB.mjs.map → ListPage-ZDEeaYvm.mjs.map} +1 -1
- package/dist/admin/{ListPage-FjHi4ZGu.mjs → ListPage-asZ9aDzG.mjs} +5 -5
- package/dist/admin/{ListPage-FjHi4ZGu.mjs.map → ListPage-asZ9aDzG.mjs.map} +1 -1
- package/dist/admin/{ListPage-BjjqJKzh.js → ListPage-romICg1Z.js} +16 -16
- package/dist/admin/{ListPage-BjjqJKzh.js.map → ListPage-romICg1Z.js.map} +1 -1
- package/dist/admin/{ListPage-TQPuZR4V.mjs → ListPage-tniramRN.mjs} +9 -9
- package/dist/admin/{ListPage-TQPuZR4V.mjs.map → ListPage-tniramRN.mjs.map} +1 -1
- package/dist/admin/{ListView-9E8SVTSf.js → ListView-1VRmjfh8.js} +13 -13
- package/dist/admin/{ListView-9E8SVTSf.js.map → ListView-1VRmjfh8.js.map} +1 -1
- package/dist/admin/{ListView-T5y4ambL.mjs → ListView-6hlTFx5H.mjs} +5 -5
- package/dist/admin/{ListView-T5y4ambL.mjs.map → ListView-6hlTFx5H.mjs.map} +1 -1
- package/dist/admin/{ListView-jUavvOoD.mjs → ListView-GYuN24HV.mjs} +4 -4
- package/dist/admin/{ListView-jUavvOoD.mjs.map → ListView-GYuN24HV.mjs.map} +1 -1
- package/dist/admin/{ListView-ZC27Df9H.js → ListView-ph55AtDF.js} +14 -14
- package/dist/admin/{ListView-ZC27Df9H.js.map → ListView-ph55AtDF.js.map} +1 -1
- package/dist/admin/{Login-pnQ7v5vq.mjs → Login-LxE58baP.mjs} +3 -3
- package/dist/admin/{Login-pnQ7v5vq.mjs.map → Login-LxE58baP.mjs.map} +1 -1
- package/dist/admin/{Login-1AOrPSGD.js → Login-WeDT3kAj.js} +4 -4
- package/dist/admin/{Login-1AOrPSGD.js.map → Login-WeDT3kAj.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-ahlmWLG6.mjs → MagicLinkEE-AO_SBYi5.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-ahlmWLG6.mjs.map → MagicLinkEE-AO_SBYi5.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-BpisXVzq.js → MagicLinkEE-_fUwHKdf.js} +3 -3
- package/dist/admin/{MagicLinkEE-BpisXVzq.js.map → MagicLinkEE-_fUwHKdf.js.map} +1 -1
- package/dist/admin/{MarketplacePage-gDPY0phu.mjs → MarketplacePage-26cUn4e5.mjs} +3 -3
- package/dist/admin/{MarketplacePage-gDPY0phu.mjs.map → MarketplacePage-26cUn4e5.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-Ogkt8lJq.js → MarketplacePage-m8Lf3adM.js} +17 -17
- package/dist/admin/{MarketplacePage-Ogkt8lJq.js.map → MarketplacePage-m8Lf3adM.js.map} +1 -1
- package/dist/admin/{Permissions-RkPUHIVE.js → Permissions-NRzJqZEr.js} +7 -7
- package/dist/admin/{Permissions-RkPUHIVE.js.map → Permissions-NRzJqZEr.js.map} +1 -1
- package/dist/admin/{Permissions-l8yWERDW.mjs → Permissions-VzklM1ie.mjs} +3 -3
- package/dist/admin/{Permissions-l8yWERDW.mjs.map → Permissions-VzklM1ie.mjs.map} +1 -1
- package/dist/admin/{PrivateRoute-I8uiqYMc.js → PrivateRoute-KAM10GGM.js} +3 -3
- package/dist/admin/{PrivateRoute-I8uiqYMc.js.map → PrivateRoute-KAM10GGM.js.map} +1 -1
- package/dist/admin/{PrivateRoute-m7OeCfYA.mjs → PrivateRoute-wDu6Vo0N.mjs} +2 -2
- package/dist/admin/{PrivateRoute-m7OeCfYA.mjs.map → PrivateRoute-wDu6Vo0N.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-mO3MQozZ.mjs → ProfilePage-0d-k7mtP.mjs} +6 -6
- package/dist/admin/{ProfilePage-mO3MQozZ.mjs.map → ProfilePage-0d-k7mtP.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-yLYrmYfh.js → ProfilePage-oSih4pcL.js} +20 -20
- package/dist/admin/{ProfilePage-yLYrmYfh.js.map → ProfilePage-oSih4pcL.js.map} +1 -1
- package/dist/admin/{SelectRoles-vs_GIRku.mjs → SelectRoles-V_PZUtVT.mjs} +4 -4
- package/dist/admin/{SelectRoles-vs_GIRku.mjs.map → SelectRoles-V_PZUtVT.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-E27rLNXb.js → SelectRoles-ZsRUnSdr.js} +5 -5
- package/dist/admin/{SelectRoles-E27rLNXb.js.map → SelectRoles-ZsRUnSdr.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-EIJNDHZ1.js → SingleSignOnPage-jtjy4_4U.js} +16 -16
- package/dist/admin/{SingleSignOnPage-EIJNDHZ1.js.map → SingleSignOnPage-jtjy4_4U.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-rFbze2qS.mjs → SingleSignOnPage-kbLz1A_y.mjs} +5 -5
- package/dist/admin/{SingleSignOnPage-rFbze2qS.mjs.map → SingleSignOnPage-kbLz1A_y.mjs.map} +1 -1
- package/dist/admin/{Table-yt4e2psj.mjs → Table-ZFyORhH3.mjs} +3 -3
- package/dist/admin/{Table-yt4e2psj.mjs.map → Table-ZFyORhH3.mjs.map} +1 -1
- package/dist/admin/{Table-y_iVVRmo.js → Table-kMt3jQ2g.js} +5 -5
- package/dist/admin/{Table-y_iVVRmo.js.map → Table-kMt3jQ2g.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-6UaG68id.js → TokenTypeSelect-Ngz4ONEL.js} +8 -8
- package/dist/admin/{TokenTypeSelect-6UaG68id.js.map → TokenTypeSelect-Ngz4ONEL.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-FTMoBhn3.mjs → TokenTypeSelect-oOKwvsQ2.mjs} +4 -4
- package/dist/admin/{TokenTypeSelect-FTMoBhn3.mjs.map → TokenTypeSelect-oOKwvsQ2.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-ifVOOcqK.mjs → UseCasePage-2wum_xzS.mjs} +4 -4
- package/dist/admin/{UseCasePage-ifVOOcqK.mjs.map → UseCasePage-2wum_xzS.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-PzT7YQgK.js → UseCasePage-qrhHiF5S.js} +6 -6
- package/dist/admin/{UseCasePage-PzT7YQgK.js.map → UseCasePage-qrhHiF5S.js.map} +1 -1
- package/dist/admin/{admin-w3o7ePNm.mjs → admin-DUKhYsmP.mjs} +12 -2
- package/dist/admin/admin-DUKhYsmP.mjs.map +1 -0
- package/dist/admin/{admin-vcfA8Zox.js → admin-vlKSOeHB.js} +12 -1
- package/dist/admin/admin-vlKSOeHB.js.map +1 -0
- package/dist/admin/{apiTokens-75EXEvGS.mjs → apiTokens-dBRuo1wd.mjs} +2 -2
- package/dist/admin/{apiTokens-75EXEvGS.mjs.map → apiTokens-dBRuo1wd.mjs.map} +1 -1
- package/dist/admin/{apiTokens-wqQgdbcG.js → apiTokens-lXn03No3.js} +2 -2
- package/dist/admin/{apiTokens-wqQgdbcG.js.map → apiTokens-lXn03No3.js.map} +1 -1
- package/dist/admin/{constants-ORUQO0uh.mjs → constants-enREoOEa.mjs} +3 -3
- package/dist/admin/{constants-ORUQO0uh.mjs.map → constants-enREoOEa.mjs.map} +1 -1
- package/dist/admin/{constants-oTDk_K7z.js → constants-jQFnBWVd.js} +4 -4
- package/dist/admin/{constants-oTDk_K7z.js.map → constants-jQFnBWVd.js.map} +1 -1
- package/dist/admin/ee.js +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/{index-tmvI3DXu.js → index-dcaxfEDi.js} +113 -90
- package/dist/admin/index-dcaxfEDi.js.map +1 -0
- package/dist/admin/{index-PCKQWB49.mjs → index-oBxjGftZ.mjs} +72 -49
- package/dist/admin/index-oBxjGftZ.mjs.map +1 -0
- package/dist/admin/index.js +13 -13
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{Theme-j7r62OPn.js → rbac-WZsv1761.js} +128 -50
- package/dist/admin/rbac-WZsv1761.js.map +1 -0
- package/dist/admin/{Theme-Gult7t3_.mjs → rbac-sYT_mXH0.mjs} +128 -51
- package/dist/admin/rbac-sYT_mXH0.mjs.map +1 -0
- package/dist/admin/{selectors-i8UwQyuC.mjs → selectors-3gRe5pAj.mjs} +2 -2
- package/dist/admin/{selectors-i8UwQyuC.mjs.map → selectors-3gRe5pAj.mjs.map} +1 -1
- package/dist/admin/selectors-CiTVxP8O.js +8 -0
- package/dist/admin/{selectors-1-hG3q3-.js.map → selectors-CiTVxP8O.js.map} +1 -1
- package/dist/admin/src/StrapiApp.d.ts +3 -0
- package/dist/admin/src/components/Form.d.ts +10 -1
- package/dist/admin/src/core/apis/rbac.d.ts +24 -0
- package/dist/admin/src/features/Auth.d.ts +14 -3
- package/dist/admin/src/features/StrapiApp.d.ts +2 -0
- package/dist/admin/src/hooks/useRBAC.d.ts +33 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/utils/once.d.ts +1 -0
- package/dist/admin/src/utils/urls.d.ts +7 -1
- package/dist/admin/src/utils/users.d.ts +4 -3
- package/dist/admin/test.js +48 -48
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +44 -44
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/{transferTokens-GqOwfpHk.js → transferTokens-5qQjIKFd.js} +2 -2
- package/dist/admin/{transferTokens-GqOwfpHk.js.map → transferTokens-5qQjIKFd.js.map} +1 -1
- package/dist/admin/{transferTokens-Dibaubom.mjs → transferTokens-OLPKYcY_.mjs} +2 -2
- package/dist/admin/{transferTokens-Dibaubom.mjs.map → transferTokens-OLPKYcY_.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-iyGa9Xh9.mjs → useAdminRoles-HWIbyk2Z.mjs} +2 -2
- package/dist/admin/{useAdminRoles-iyGa9Xh9.mjs.map → useAdminRoles-HWIbyk2Z.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-XTNZhJh5.js → useAdminRoles-Q2BxHs4o.js} +2 -2
- package/dist/admin/{useAdminRoles-XTNZhJh5.js.map → useAdminRoles-Q2BxHs4o.js.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-qeIH3VJE.js → useLicenseLimitNotification-0UWeCY_u.js} +4 -4
- package/dist/admin/{useLicenseLimitNotification-qeIH3VJE.js.map → useLicenseLimitNotification-0UWeCY_u.js.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-d06Aex_I.mjs → useLicenseLimitNotification-aTNbD3xK.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-d06Aex_I.mjs.map → useLicenseLimitNotification-aTNbD3xK.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimits-EyslHDFM.mjs → useLicenseLimits-F7K-YWAE.mjs} +2 -2
- package/dist/admin/{useLicenseLimits-EyslHDFM.mjs.map → useLicenseLimits-F7K-YWAE.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimits-bLiwF5ah.js → useLicenseLimits-m11DOu9p.js} +2 -2
- package/dist/admin/{useLicenseLimits-bLiwF5ah.js.map → useLicenseLimits-m11DOu9p.js.map} +1 -1
- package/dist/admin/{useWebhooks-Dae71Az5.mjs → useWebhooks-7BXPSMHG.mjs} +2 -2
- package/dist/admin/{useWebhooks-Dae71Az5.mjs.map → useWebhooks-7BXPSMHG.mjs.map} +1 -1
- package/dist/admin/{useWebhooks-WyRAGIH5.js → useWebhooks-oZ5DKtvz.js} +2 -2
- package/dist/admin/{useWebhooks-WyRAGIH5.js.map → useWebhooks-oZ5DKtvz.js.map} +1 -1
- package/dist/admin/users-R5A0kUOV.js +33 -0
- package/dist/admin/users-R5A0kUOV.js.map +1 -0
- package/dist/admin/users-a4KTyEyc.mjs +30 -0
- package/dist/admin/users-a4KTyEyc.mjs.map +1 -0
- package/dist/admin/{validation-Tb5_X4v4.js → validation-2MGgF10o.js} +2 -2
- package/dist/admin/{validation-Tb5_X4v4.js.map → validation-2MGgF10o.js.map} +1 -1
- package/dist/admin/{validation-GUb7vvsl.mjs → validation-gH-06ERZ.mjs} +2 -2
- package/dist/admin/{validation-GUb7vvsl.mjs.map → validation-gH-06ERZ.mjs.map} +1 -1
- package/dist/ee/server/index.js +15 -15
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +15 -15
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +14 -14
- package/dist/server/index.js +30 -34
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +30 -34
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +8 -8
- package/package.json +15 -15
- package/dist/admin/AuthenticatedLayout-GD2XM4Xh.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-mta84NQE.mjs.map +0 -1
- package/dist/admin/CreateView-5zt3cfsd.js +0 -17
- package/dist/admin/CreateView-tQxib6Yo.js +0 -17
- package/dist/admin/EditPage-YUSwYkTW.js.map +0 -1
- package/dist/admin/EditPage-k_6aHRVf.mjs.map +0 -1
- package/dist/admin/Layout-Ojd0IVLT.js.map +0 -1
- package/dist/admin/Layout-fD9qm3jw.mjs.map +0 -1
- package/dist/admin/Theme-Gult7t3_.mjs.map +0 -1
- package/dist/admin/Theme-j7r62OPn.js.map +0 -1
- package/dist/admin/admin-vcfA8Zox.js.map +0 -1
- package/dist/admin/admin-w3o7ePNm.mjs.map +0 -1
- package/dist/admin/index-PCKQWB49.mjs.map +0 -1
- package/dist/admin/index-tmvI3DXu.js.map +0 -1
- package/dist/admin/selectors-1-hG3q3-.js +0 -8
- package/dist/admin/src/utils/hashAdminUserEmail.d.ts +0 -6
- package/dist/admin/users-BKmHEtNM.js +0 -19
- package/dist/admin/users-BKmHEtNM.js.map +0 -1
- package/dist/admin/users-P2ivP9Cm.mjs +0 -17
- package/dist/admin/users-P2ivP9Cm.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPage-NKv-e2KT.mjs","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 { Formik, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\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: 'danger',\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: 'danger',\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: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\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 <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\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":["translatedErrors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditPage-yztdPcnM.mjs","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 { Formik, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\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: 'danger',\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: 'danger',\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: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\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 <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\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":["translatedErrors"],"mappings":"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"}
|
|
@@ -5,12 +5,12 @@ import { Formik, Form } from 'formik';
|
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useNavigate, useLocation, useMatch } from 'react-router-dom';
|
|
7
7
|
import * as yup from 'yup';
|
|
8
|
-
import { e as errorsTrads, j as useGuidedTour } from './index-
|
|
9
|
-
import { b as useTypedSelector, P as Page, u as useNotification, d as useTracking, k as useRBAC, f as useAPIErrorHandler } from './
|
|
10
|
-
import { u as useGetTransferTokenQuery, a as useCreateTransferTokenMutation, b as useUpdateTransferTokenMutation } from './transferTokens-
|
|
11
|
-
import { i as isBaseQueryError } from './admin-
|
|
8
|
+
import { e as errorsTrads, j as useGuidedTour } from './index-oBxjGftZ.mjs';
|
|
9
|
+
import { b as useTypedSelector, P as Page, u as useNotification, d as useTracking, k as useRBAC, f as useAPIErrorHandler } from './rbac-sYT_mXH0.mjs';
|
|
10
|
+
import { u as useGetTransferTokenQuery, a as useCreateTransferTokenMutation, b as useUpdateTransferTokenMutation } from './transferTokens-OLPKYcY_.mjs';
|
|
11
|
+
import { i as isBaseQueryError } from './admin-DUKhYsmP.mjs';
|
|
12
12
|
import { T as TRANSFER_TOKEN_TYPE } from './constants-EoEtSd4i.mjs';
|
|
13
|
-
import { F as FormHead, T as TokenBox, a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect } from './TokenTypeSelect-
|
|
13
|
+
import { F as FormHead, T as TokenBox, a as TokenName, b as TokenDescription, L as LifeSpanInput, c as TokenTypeSelect } from './TokenTypeSelect-oOKwvsQ2.mjs';
|
|
14
14
|
|
|
15
15
|
const schema = yup.object().shape({
|
|
16
16
|
name: yup.string().max(100).required(errorsTrads.required.id),
|
|
@@ -329,4 +329,4 @@ const FormTransferTokenContainer = ({
|
|
|
329
329
|
};
|
|
330
330
|
|
|
331
331
|
export { EditView, ProtectedEditView };
|
|
332
|
-
//# sourceMappingURL=EditView-
|
|
332
|
+
//# sourceMappingURL=EditView-fbzip_S8.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditView-NsG_ztE8.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\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 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: 'danger',\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: 'danger',\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: 'danger',\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: 'danger',\n message: formatMessage({\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 <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\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 </Page.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":";;;;;;;;;;;;;;AAmCA,MAAM,MAAS,GAAA,GAAA,CAAI,MAAO,EAAA,CAAE,KAAM,CAAA;AAAA,EAChC,IAAA,EAAM,GAAI,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,GAAG,CAAE,CAAA,QAAA,CAASA,WAAiB,CAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACjE,WAAa,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EACnC,QAAU,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,SAAU,CAAA,GAAA,CAAI,CAAC,CAAA,CAAE,QAAS,EAAA,CAAE,OAAQ,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AAAA,EACvF,aAAa,GAAI,CAAA,MAAA,GAAS,QAAS,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AACjE,CAAC,CAAA,CAAA;AAMD,MAAM,WAAW,MAAM;AACrB,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,EAAE,KAAA,EAAO,aAAc,EAAA,GAAI,WAAY,EAAA,CAAA;AAC7C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IAG9C,aAAA,IAAiB,WAAe,IAAA,aAAA,CAAc,aAC1C,GAAA;AAAA,MACE,GAAG,aAAc,CAAA,aAAA;AAAA,KAEnB,GAAA,IAAA;AAAA,GACN,CAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,WAAY,EAAA,CAAA;AACnC,EAAA,MAAM,iBAAiB,aAAc,CAAA,UAAA,EAAY,CAAC,KAAA,KAAU,MAAM,cAAc,CAAA,CAAA;AAChF,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,SAAU,CAAA,WAAA,CAAY,WAAW,iBAAiB,CAAA;AAAA,GACrE,CAAA;AACA,EAAM,MAAA;AAAA,IACJ,cAAgB,EAAA,EAAE,SAAW,EAAA,SAAA,EAAW,aAAc,EAAA;AAAA,GACxD,GAAI,QAAQ,WAAW,CAAA,CAAA;AACvB,EAAM,MAAA,KAAA,GAAQ,SAAS,+BAA+B,CAAA,CAAA;AAEtD,EAAM,MAAA,EAAA,GAAK,OAAO,MAAQ,EAAA,EAAA,CAAA;AAC1B,EAAA,MAAM,aAAa,EAAO,KAAA,QAAA,CAAA;AAE1B,EAAM,MAAA;AAAA,IACJ,uBAAyB,EAAA,cAAA;AAAA,IACzB,+BAAiC,EAAA,sBAAA;AAAA,MAC/B,kBAAmB,EAAA,CAAA;AAEvB,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAW,UAAA,CAAA,UAAA,GAAa,wBAAwB,sBAAwB,EAAA;AAAA,MACtE,SAAW,EAAA,mBAAA;AAAA,KACZ,CAAA,CAAA;AAAA,GACA,EAAA,CAAC,UAAY,EAAA,UAAU,CAAC,CAAA,CAAA;AAE3B,EAAA,MAAM,EAAE,IAAA,EAAM,KAAM,EAAA,GAAI,yBAAyB,EAAK,EAAA;AAAA,IACpD,IAAM,EAAA,UAAA,IAAc,aAAkB,KAAA,IAAA,IAAQ,CAAC,EAAA;AAAA,GAChD,CAAA,CAAA;AAED,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,KAAO,EAAA;AACT,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,OAC9B,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA,CAAC,KAAO,EAAA,cAAA,EAAgB,kBAAkB,CAAC,CAAA,CAAA;AAE9C,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAM,MAAA,CAAC,WAAW,CAAA,GAAI,8BAA+B,EAAA,CAAA;AACrD,EAAM,MAAA,CAAC,WAAW,CAAA,GAAI,8BAA+B,EAAA,CAAA;AAErD,EAAM,MAAA,YAAA,GAAe,OAAO,IAAA,EAAkB,MAAsC,KAAA;AAClF,IAAW,UAAA,CAAA,UAAA,GAAa,oBAAoB,eAAiB,EAAA;AAAA,MAC3D,SAAW,EAAA,mBAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAA,MAAMC,YAAc,GAAA,IAAA,CAAK,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAE9C,IAAM,MAAA,+BAAA,GAAkC,CACtC,UACyC,KAAA;AACzC,MAAI,IAAA,UAAA,CAAW,WAAW,CAAG,EAAA;AAC3B,QAAA,OAAO,WAAW,CAAC,CAAA,KAAM,MAAU,IAAA,UAAA,CAAW,CAAC,CAAM,KAAA,MAAA,CAAA;AAAA,OACvD;AAEA,MAAA,OAAO,WAAW,CAAC,CAAA,KAAM,MAAU,IAAA,UAAA,CAAW,CAAC,CAAM,KAAA,MAAA,CAAA;AAAA,KACvD,CAAA;AAIA,IAAI,IAAA,+BAAA,CAAgCA,YAAW,CAAG,EAAA;AAChD,MAAI,IAAA;AACF,QAAA,IAAI,UAAY,EAAA;AACd,UAAM,MAAA,GAAA,GAAM,MAAM,WAAY,CAAA;AAAA,YAC5B,GAAG,IAAA;AAAA;AAAA,YAEH,QACE,EAAA,IAAA,EAAM,QAAY,IAAA,IAAA,CAAK,QAAa,KAAA,GAAA,GAChC,QAAS,CAAA,IAAA,CAAK,QAAS,CAAA,QAAA,EAAY,EAAA,EAAE,CACrC,GAAA,IAAA;AAAA,YACN,WAAAA,EAAAA,YAAAA;AAAA,WACD,CAAA,CAAA;AAED,UAAA,IAAI,WAAW,GAAK,EAAA;AAClB,YAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,cAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,aAC7C,MAAA;AACL,cAAmB,kBAAA,CAAA;AAAA,gBACjB,IAAM,EAAA,QAAA;AAAA,gBACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,eAClC,CAAA,CAAA;AAAA,aACH;AAEA,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,gBAAA,CAAiB,IAAI,IAAI,CAAA,CAAA;AAEzB,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,SAAA;AAAA,YACN,SAAS,aAAc,CAAA;AAAA,cACrB,EAAI,EAAA,2CAAA;AAAA,cACJ,cAAgB,EAAA,qCAAA;AAAA,aACjB,CAAA;AAAA,WACF,CAAA,CAAA;AAED,UAAA,UAAA,CAAW,gBAAkB,EAAA;AAAA,YAC3B,MAAM,aAAe,EAAA,WAAA;AAAA,YACrB,SAAW,EAAA,mBAAA;AAAA,WACZ,CAAA,CAAA;AAED,UAAA,QAAA,CAAS,sBAAsB,GAAI,CAAA,IAAA,CAAK,EAAG,CAAA,QAAA,EAAU,CAAI,CAAA,EAAA;AAAA,YACvD,OAAS,EAAA,IAAA;AAAA,YACT,KAAO,EAAA,EAAE,aAAe,EAAA,GAAA,CAAI,IAAK,EAAA;AAAA,WAClC,CAAA,CAAA;AACD,UAAA,cAAA,CAAe,wBAAwB,CAAA,CAAA;AAAA,SAClC,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,MAAM,WAAY,CAAA;AAAA,YAC5B,EAAA;AAAA,YACA,MAAM,IAAK,CAAA,IAAA;AAAA,YACX,aAAa,IAAK,CAAA,WAAA;AAAA,YAClB,WAAAA,EAAAA,YAAAA;AAAA,WACD,CAAA,CAAA;AAED,UAAA,IAAI,WAAW,GAAK,EAAA;AAClB,YAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,cAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,aAC7C,MAAA;AACL,cAAmB,kBAAA,CAAA;AAAA,gBACjB,IAAM,EAAA,QAAA;AAAA,gBACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,eAClC,CAAA,CAAA;AAAA,aACH;AAEA,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,gBAAA,CAAiB,IAAI,IAAI,CAAA,CAAA;AAEzB,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,SAAA;AAAA,YACN,SAAS,aAAc,CAAA;AAAA,cACrB,EAAI,EAAA,0CAAA;AAAA,cACJ,cAAgB,EAAA,oCAAA;AAAA,aACjB,CAAA;AAAA,WACF,CAAA,CAAA;AAED,UAAA,UAAA,CAAW,cAAgB,EAAA;AAAA,YACzB,MAAM,aAAe,EAAA,WAAA;AAAA,YACrB,SAAW,EAAA,mBAAA;AAAA,WACZ,CAAA,CAAA;AAAA,SACH;AAAA,eACO,GAAK,EAAA;AACZ,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,QAAA;AAAA,UACN,SAAS,aAAc,CAAA;AAAA,YACrB,EAAI,EAAA,oBAAA;AAAA,YACJ,cAAgB,EAAA,sBAAA;AAAA,WACjB,CAAA;AAAA,SACF,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAiB,GAAA,SAAA,IAAa,CAAC,UAAA,IAAgB,SAAa,IAAA,UAAA,CAAA;AAClE,EAAM,MAAA,SAAA,GAAY,CAAC,UAAA,IAAc,CAAC,aAAA,CAAA;AAElC,EAAA,IAAI,SAAW,EAAA;AACb,IAAO,uBAAA,GAAA,CAAC,IAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AAAA,GACvB;AAEA,EACE,uBAAA,IAAA,CAAC,IAAK,CAAA,IAAA,EAAL,EACC,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,CAAK,OAAL,EACE,QAAA,EAAA,aAAA;AAAA,MACC,EAAE,EAAA,EAAI,oBAAsB,EAAA,cAAA,EAAgB,mBAAoB,EAAA;AAAA,MAChE;AAAA,QACE,IAAM,EAAA,iBAAA;AAAA,OACR;AAAA,KAEJ,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,gBAAkB,EAAA,MAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,QAClB,aACE,EAAA;AAAA,UACE,IAAA,EAAM,eAAe,IAAQ,IAAA,EAAA;AAAA,UAC7B,WAAA,EAAa,eAAe,WAAe,IAAA,EAAA;AAAA,UAC3C,QAAA,EAAU,eAAe,QAAY,IAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrC,WAAc,EAAA,aAAA,EAAe,WAAY,CAAA,IAAA,CAAK,GAAG,CAAK,IAAA,EAAA;AAAA,SACxD;AAAA,QAEF,kBAAkB,EAAA,IAAA;AAAA,QAClB,UAAU,CAAC,IAAA,EAAM,OAAY,KAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAAA,QAEtD,WAAC,EAAE,MAAA,EAAQ,YAAc,EAAA,YAAA,EAAc,QAAa,KAAA;AACnD,UAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,KAAO,EAAA;AAAA,kBACL,EAAI,EAAA,0CAAA;AAAA,kBACJ,cAAgB,EAAA,4BAAA;AAAA,iBAClB;AAAA,gBACA,KAAO,EAAA,aAAA;AAAA,gBACP,QAAU,EAAA,gBAAA;AAAA,gBACV,aAAA;AAAA,gBACA,aAAA;AAAA,gBACA,YAAA;AAAA,gBACA,aAAc,EAAA,yBAAA;AAAA,eAAA;AAAA,aAChB;AAAA,4BACA,GAAA,CAAC,iBACC,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,WAAU,QAAS,EAAA,UAAA,EAAW,SAAU,EAAA,GAAA,EAAK,CAChD,EAAA,QAAA,EAAA;AAAA,cAAA,aAAA,IACC,OAAQ,CAAA,aAAA,EAAe,IAAI,CAAA,IAC3B,WAAe,IAAA,aAAA,oBACZ,GAAA,CAAA,QAAA,EAAA,EAAS,KAAO,EAAA,aAAA,CAAc,SAAW,EAAA,SAAA,EAAW,mBAAqB,EAAA,CAAA;AAAA,8BAE9E,GAAA;AAAA,gBAAC,0BAAA;AAAA,gBAAA;AAAA,kBACC,MAAA;AAAA,kBACA,QAAU,EAAA,YAAA;AAAA,kBACV,aAAA;AAAA,kBACA,UAAA;AAAA,kBACA,MAAA;AAAA,kBACA,aAAA;AAAA,iBAAA;AAAA,eACF;AAAA,aAAA,EACF,CACF,EAAA,CAAA;AAAA,WACF,EAAA,CAAA,CAAA;AAAA,SAEJ;AAAA,OAAA;AAAA,KACF;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAMA,MAAM,oBAAoB,MAAM;AAC9B,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA,IAAA;AAAA,GACvE,CAAA;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA,CAAA;AAEJ,EAAA;AAmBA,MAAM,6BAA6B,CAAC;AAAA,EAClC,SAAS,EAAC;AAAA,EACV,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAgB,EAAC;AACnB,CAAuC,KAAA;AACrC,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB;AAAA,MACE,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,oCAAA;AAAA,QACJ,cAAgB,EAAA,MAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA;AAAA,MACE,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,oCAAA;AAAA,QACJ,cAAgB,EAAA,MAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA;AAAA,MACE,KAAO,EAAA,WAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,yCAAA;AAAA,QACJ,cAAgB,EAAA,aAAA;AAAA,OAClB;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,UAAW,EAAA,UAAA;AAAA,MACX,SAAS,EAAA,IAAA;AAAA,MACT,MAAO,EAAA,cAAA;AAAA,MACP,UAAY,EAAA,CAAA;AAAA,MACZ,aAAe,EAAA,CAAA;AAAA,MACf,WAAa,EAAA,CAAA;AAAA,MACb,YAAc,EAAA,CAAA;AAAA,MAEd,+BAAC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,EAAA,EAAG,MAC5B,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,gBAAA;AAAA,UACJ,cAAgB,EAAA,SAAA;AAAA,SACjB,CACH,EAAA,CAAA;AAAA,wBACA,IAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAoB,EAAA,EAAA,GAAA,EAAK,CAAG,EAAA,EAAA,EAAI,EAC/B,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,cACpB,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,cACpB,aAAA;AAAA,cACA,QAAA;AAAA,aAAA;AAAA,eALU,MAOd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAA2B,GAAK,EAAA,CAAA,EAAG,IAAI,EACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,aAAA;AAAA,cACA,QAAA;AAAA,aAAA;AAAA,eALU,aAOd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAAwB,GAAK,EAAA,CAAA,EAAG,IAAI,EACnC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,UAAA;AAAA,cACA,KAAA,EAAO,OAAO,UAAU,CAAA;AAAA,cACxB,KAAA,EAAO,OAAO,UAAU,CAAA;AAAA,cACxB,QAAA;AAAA,cACA,KAAO,EAAA,aAAA;AAAA,aAAA;AAAA,eANG,UAQd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAA2B,GAAK,EAAA,CAAA,EAAG,IAAI,EACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,eAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,aAAA;AAAA,cACL,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAO,EAAA;AAAA,gBACL,EAAI,EAAA,2BAAA;AAAA,gBACJ,cAAgB,EAAA,YAAA;AAAA,eAClB;AAAA,cAEA,QAAA,EAAU,CAAC,KAAkB,KAAA;AAC3B,gBAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,EAAE,MAAM,aAAe,EAAA,KAAA,IAAS,CAAA,CAAA;AAAA,eACrD;AAAA,cACA,OAAS,EAAA,WAAA;AAAA,cACT,aAAA;AAAA,aAAA;AAAA,eAdU,aAgBd,CAAA;AAAA,SACF,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"EditView-fbzip_S8.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\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 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: 'danger',\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: 'danger',\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: 'danger',\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: 'danger',\n message: formatMessage({\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 <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\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 </Page.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":";;;;;;;;;;;;;;AAmCA,MAAM,MAAS,GAAA,GAAA,CAAI,MAAO,EAAA,CAAE,KAAM,CAAA;AAAA,EAChC,IAAA,EAAM,GAAI,CAAA,MAAA,EAAS,CAAA,GAAA,CAAI,GAAG,CAAE,CAAA,QAAA,CAASA,WAAiB,CAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACjE,WAAa,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EACnC,QAAU,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,SAAU,CAAA,GAAA,CAAI,CAAC,CAAA,CAAE,QAAS,EAAA,CAAE,OAAQ,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AAAA,EACvF,aAAa,GAAI,CAAA,MAAA,GAAS,QAAS,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AACjE,CAAC,CAAA,CAAA;AAMD,MAAM,WAAW,MAAM;AACrB,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,EAAE,KAAA,EAAO,aAAc,EAAA,GAAI,WAAY,EAAA,CAAA;AAC7C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IAG9C,aAAA,IAAiB,WAAe,IAAA,aAAA,CAAc,aAC1C,GAAA;AAAA,MACE,GAAG,aAAc,CAAA,aAAA;AAAA,KAEnB,GAAA,IAAA;AAAA,GACN,CAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,WAAY,EAAA,CAAA;AACnC,EAAA,MAAM,iBAAiB,aAAc,CAAA,UAAA,EAAY,CAAC,KAAA,KAAU,MAAM,cAAc,CAAA,CAAA;AAChF,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,SAAU,CAAA,WAAA,CAAY,WAAW,iBAAiB,CAAA;AAAA,GACrE,CAAA;AACA,EAAM,MAAA;AAAA,IACJ,cAAgB,EAAA,EAAE,SAAW,EAAA,SAAA,EAAW,aAAc,EAAA;AAAA,GACxD,GAAI,QAAQ,WAAW,CAAA,CAAA;AACvB,EAAM,MAAA,KAAA,GAAQ,SAAS,+BAA+B,CAAA,CAAA;AAEtD,EAAM,MAAA,EAAA,GAAK,OAAO,MAAQ,EAAA,EAAA,CAAA;AAC1B,EAAA,MAAM,aAAa,EAAO,KAAA,QAAA,CAAA;AAE1B,EAAM,MAAA;AAAA,IACJ,uBAAyB,EAAA,cAAA;AAAA,IACzB,+BAAiC,EAAA,sBAAA;AAAA,MAC/B,kBAAmB,EAAA,CAAA;AAEvB,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAW,UAAA,CAAA,UAAA,GAAa,wBAAwB,sBAAwB,EAAA;AAAA,MACtE,SAAW,EAAA,mBAAA;AAAA,KACZ,CAAA,CAAA;AAAA,GACA,EAAA,CAAC,UAAY,EAAA,UAAU,CAAC,CAAA,CAAA;AAE3B,EAAA,MAAM,EAAE,IAAA,EAAM,KAAM,EAAA,GAAI,yBAAyB,EAAK,EAAA;AAAA,IACpD,IAAM,EAAA,UAAA,IAAc,aAAkB,KAAA,IAAA,IAAQ,CAAC,EAAA;AAAA,GAChD,CAAA,CAAA;AAED,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,KAAO,EAAA;AACT,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,OAC9B,CAAA,CAAA;AAAA,KACH;AAAA,GACC,EAAA,CAAC,KAAO,EAAA,cAAA,EAAgB,kBAAkB,CAAC,CAAA,CAAA;AAE9C,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAM,MAAA,CAAC,WAAW,CAAA,GAAI,8BAA+B,EAAA,CAAA;AACrD,EAAM,MAAA,CAAC,WAAW,CAAA,GAAI,8BAA+B,EAAA,CAAA;AAErD,EAAM,MAAA,YAAA,GAAe,OAAO,IAAA,EAAkB,MAAsC,KAAA;AAClF,IAAW,UAAA,CAAA,UAAA,GAAa,oBAAoB,eAAiB,EAAA;AAAA,MAC3D,SAAW,EAAA,mBAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAA,MAAMC,YAAc,GAAA,IAAA,CAAK,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAE9C,IAAM,MAAA,+BAAA,GAAkC,CACtC,UACyC,KAAA;AACzC,MAAI,IAAA,UAAA,CAAW,WAAW,CAAG,EAAA;AAC3B,QAAA,OAAO,WAAW,CAAC,CAAA,KAAM,MAAU,IAAA,UAAA,CAAW,CAAC,CAAM,KAAA,MAAA,CAAA;AAAA,OACvD;AAEA,MAAA,OAAO,WAAW,CAAC,CAAA,KAAM,MAAU,IAAA,UAAA,CAAW,CAAC,CAAM,KAAA,MAAA,CAAA;AAAA,KACvD,CAAA;AAIA,IAAI,IAAA,+BAAA,CAAgCA,YAAW,CAAG,EAAA;AAChD,MAAI,IAAA;AACF,QAAA,IAAI,UAAY,EAAA;AACd,UAAM,MAAA,GAAA,GAAM,MAAM,WAAY,CAAA;AAAA,YAC5B,GAAG,IAAA;AAAA;AAAA,YAEH,QACE,EAAA,IAAA,EAAM,QAAY,IAAA,IAAA,CAAK,QAAa,KAAA,GAAA,GAChC,QAAS,CAAA,IAAA,CAAK,QAAS,CAAA,QAAA,EAAY,EAAA,EAAE,CACrC,GAAA,IAAA;AAAA,YACN,WAAAA,EAAAA,YAAAA;AAAA,WACD,CAAA,CAAA;AAED,UAAA,IAAI,WAAW,GAAK,EAAA;AAClB,YAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,cAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,aAC7C,MAAA;AACL,cAAmB,kBAAA,CAAA;AAAA,gBACjB,IAAM,EAAA,QAAA;AAAA,gBACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,eAClC,CAAA,CAAA;AAAA,aACH;AAEA,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,gBAAA,CAAiB,IAAI,IAAI,CAAA,CAAA;AAEzB,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,SAAA;AAAA,YACN,SAAS,aAAc,CAAA;AAAA,cACrB,EAAI,EAAA,2CAAA;AAAA,cACJ,cAAgB,EAAA,qCAAA;AAAA,aACjB,CAAA;AAAA,WACF,CAAA,CAAA;AAED,UAAA,UAAA,CAAW,gBAAkB,EAAA;AAAA,YAC3B,MAAM,aAAe,EAAA,WAAA;AAAA,YACrB,SAAW,EAAA,mBAAA;AAAA,WACZ,CAAA,CAAA;AAED,UAAA,QAAA,CAAS,sBAAsB,GAAI,CAAA,IAAA,CAAK,EAAG,CAAA,QAAA,EAAU,CAAI,CAAA,EAAA;AAAA,YACvD,OAAS,EAAA,IAAA;AAAA,YACT,KAAO,EAAA,EAAE,aAAe,EAAA,GAAA,CAAI,IAAK,EAAA;AAAA,WAClC,CAAA,CAAA;AACD,UAAA,cAAA,CAAe,wBAAwB,CAAA,CAAA;AAAA,SAClC,MAAA;AACL,UAAM,MAAA,GAAA,GAAM,MAAM,WAAY,CAAA;AAAA,YAC5B,EAAA;AAAA,YACA,MAAM,IAAK,CAAA,IAAA;AAAA,YACX,aAAa,IAAK,CAAA,WAAA;AAAA,YAClB,WAAAA,EAAAA,YAAAA;AAAA,WACD,CAAA,CAAA;AAED,UAAA,IAAI,WAAW,GAAK,EAAA;AAClB,YAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,cAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,aAC7C,MAAA;AACL,cAAmB,kBAAA,CAAA;AAAA,gBACjB,IAAM,EAAA,QAAA;AAAA,gBACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,eAClC,CAAA,CAAA;AAAA,aACH;AAEA,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,gBAAA,CAAiB,IAAI,IAAI,CAAA,CAAA;AAEzB,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,SAAA;AAAA,YACN,SAAS,aAAc,CAAA;AAAA,cACrB,EAAI,EAAA,0CAAA;AAAA,cACJ,cAAgB,EAAA,oCAAA;AAAA,aACjB,CAAA;AAAA,WACF,CAAA,CAAA;AAED,UAAA,UAAA,CAAW,cAAgB,EAAA;AAAA,YACzB,MAAM,aAAe,EAAA,WAAA;AAAA,YACrB,SAAW,EAAA,mBAAA;AAAA,WACZ,CAAA,CAAA;AAAA,SACH;AAAA,eACO,GAAK,EAAA;AACZ,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,QAAA;AAAA,UACN,SAAS,aAAc,CAAA;AAAA,YACrB,EAAI,EAAA,oBAAA;AAAA,YACJ,cAAgB,EAAA,sBAAA;AAAA,WACjB,CAAA;AAAA,SACF,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAiB,GAAA,SAAA,IAAa,CAAC,UAAA,IAAgB,SAAa,IAAA,UAAA,CAAA;AAClE,EAAM,MAAA,SAAA,GAAY,CAAC,UAAA,IAAc,CAAC,aAAA,CAAA;AAElC,EAAA,IAAI,SAAW,EAAA;AACb,IAAO,uBAAA,GAAA,CAAC,IAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AAAA,GACvB;AAEA,EACE,uBAAA,IAAA,CAAC,IAAK,CAAA,IAAA,EAAL,EACC,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,CAAK,OAAL,EACE,QAAA,EAAA,aAAA;AAAA,MACC,EAAE,EAAA,EAAI,oBAAsB,EAAA,cAAA,EAAgB,mBAAoB,EAAA;AAAA,MAChE;AAAA,QACE,IAAM,EAAA,iBAAA;AAAA,OACR;AAAA,KAEJ,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,gBAAkB,EAAA,MAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,QAClB,aACE,EAAA;AAAA,UACE,IAAA,EAAM,eAAe,IAAQ,IAAA,EAAA;AAAA,UAC7B,WAAA,EAAa,eAAe,WAAe,IAAA,EAAA;AAAA,UAC3C,QAAA,EAAU,eAAe,QAAY,IAAA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrC,WAAc,EAAA,aAAA,EAAe,WAAY,CAAA,IAAA,CAAK,GAAG,CAAK,IAAA,EAAA;AAAA,SACxD;AAAA,QAEF,kBAAkB,EAAA,IAAA;AAAA,QAClB,UAAU,CAAC,IAAA,EAAM,OAAY,KAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAAA,QAEtD,WAAC,EAAE,MAAA,EAAQ,YAAc,EAAA,YAAA,EAAc,QAAa,KAAA;AACnD,UAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,KAAO,EAAA;AAAA,kBACL,EAAI,EAAA,0CAAA;AAAA,kBACJ,cAAgB,EAAA,4BAAA;AAAA,iBAClB;AAAA,gBACA,KAAO,EAAA,aAAA;AAAA,gBACP,QAAU,EAAA,gBAAA;AAAA,gBACV,aAAA;AAAA,gBACA,aAAA;AAAA,gBACA,YAAA;AAAA,gBACA,aAAc,EAAA,yBAAA;AAAA,eAAA;AAAA,aAChB;AAAA,4BACA,GAAA,CAAC,iBACC,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,WAAU,QAAS,EAAA,UAAA,EAAW,SAAU,EAAA,GAAA,EAAK,CAChD,EAAA,QAAA,EAAA;AAAA,cAAA,aAAA,IACC,OAAQ,CAAA,aAAA,EAAe,IAAI,CAAA,IAC3B,WAAe,IAAA,aAAA,oBACZ,GAAA,CAAA,QAAA,EAAA,EAAS,KAAO,EAAA,aAAA,CAAc,SAAW,EAAA,SAAA,EAAW,mBAAqB,EAAA,CAAA;AAAA,8BAE9E,GAAA;AAAA,gBAAC,0BAAA;AAAA,gBAAA;AAAA,kBACC,MAAA;AAAA,kBACA,QAAU,EAAA,YAAA;AAAA,kBACV,aAAA;AAAA,kBACA,UAAA;AAAA,kBACA,MAAA;AAAA,kBACA,aAAA;AAAA,iBAAA;AAAA,eACF;AAAA,aAAA,EACF,CACF,EAAA,CAAA;AAAA,WACF,EAAA,CAAA,CAAA;AAAA,SAEJ;AAAA,OAAA;AAAA,KACF;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAMA,MAAM,oBAAoB,MAAM;AAC9B,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA,IAAA;AAAA,GACvE,CAAA;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA,CAAA;AAEJ,EAAA;AAmBA,MAAM,6BAA6B,CAAC;AAAA,EAClC,SAAS,EAAC;AAAA,EACV,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAgB,EAAC;AACnB,CAAuC,KAAA;AACrC,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EAAA,MAAM,WAAc,GAAA;AAAA,IAClB;AAAA,MACE,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,oCAAA;AAAA,QACJ,cAAgB,EAAA,MAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA;AAAA,MACE,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,oCAAA;AAAA,QACJ,cAAgB,EAAA,MAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA;AAAA,MACE,KAAO,EAAA,WAAA;AAAA,MACP,KAAO,EAAA;AAAA,QACL,EAAI,EAAA,yCAAA;AAAA,QACJ,cAAgB,EAAA,aAAA;AAAA,OAClB;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,UAAW,EAAA,UAAA;AAAA,MACX,SAAS,EAAA,IAAA;AAAA,MACT,MAAO,EAAA,cAAA;AAAA,MACP,UAAY,EAAA,CAAA;AAAA,MACZ,aAAe,EAAA,CAAA;AAAA,MACf,WAAa,EAAA,CAAA;AAAA,MACb,YAAc,EAAA,CAAA;AAAA,MAEd,+BAAC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,EAAA,EAAG,MAC5B,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,gBAAA;AAAA,UACJ,cAAgB,EAAA,SAAA;AAAA,SACjB,CACH,EAAA,CAAA;AAAA,wBACA,IAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAoB,EAAA,EAAA,GAAA,EAAK,CAAG,EAAA,EAAA,EAAI,EAC/B,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,cACpB,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,cACpB,aAAA;AAAA,cACA,QAAA;AAAA,aAAA;AAAA,eALU,MAOd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAA2B,GAAK,EAAA,CAAA,EAAG,IAAI,EACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,aAAA;AAAA,cACA,QAAA;AAAA,aAAA;AAAA,eALU,aAOd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAAwB,GAAK,EAAA,CAAA,EAAG,IAAI,EACnC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,UAAA;AAAA,cACA,KAAA,EAAO,OAAO,UAAU,CAAA;AAAA,cACxB,KAAA,EAAO,OAAO,UAAU,CAAA;AAAA,cACxB,QAAA;AAAA,cACA,KAAO,EAAA,aAAA;AAAA,aAAA;AAAA,eANG,UAQd,CAAA;AAAA,0BACC,GAAA,CAAA,QAAA,EAAA,EAA2B,GAAK,EAAA,CAAA,EAAG,IAAI,EACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,YAAC,eAAA;AAAA,YAAA;AAAA,cACC,IAAK,EAAA,aAAA;AAAA,cACL,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAA,EAAO,OAAO,aAAa,CAAA;AAAA,cAC3B,KAAO,EAAA;AAAA,gBACL,EAAI,EAAA,2BAAA;AAAA,gBACJ,cAAgB,EAAA,YAAA;AAAA,eAClB;AAAA,cAEA,QAAA,EAAU,CAAC,KAAkB,KAAA;AAC3B,gBAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,EAAE,MAAM,aAAe,EAAA,KAAA,IAAS,CAAA,CAAA;AAAA,eACrD;AAAA,cACA,OAAS,EAAA,WAAA;AAAA,cACT,aAAA;AAAA,aAAA;AAAA,eAdU,aAgBd,CAAA;AAAA,SACF,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA;;;;"}
|
|
@@ -9,12 +9,12 @@ const formik = require('formik');
|
|
|
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
|
|
14
|
-
const transferTokens = require('./transferTokens-
|
|
15
|
-
const admin = require('./admin-
|
|
12
|
+
const index = require('./index-dcaxfEDi.js');
|
|
13
|
+
const rbac = require('./rbac-WZsv1761.js');
|
|
14
|
+
const transferTokens = require('./transferTokens-5qQjIKFd.js');
|
|
15
|
+
const admin = require('./admin-vlKSOeHB.js');
|
|
16
16
|
const constants = require('./constants-8PhEUZTR.js');
|
|
17
|
-
const TokenTypeSelect = require('./TokenTypeSelect-
|
|
17
|
+
const TokenTypeSelect = require('./TokenTypeSelect-Ngz4ONEL.js');
|
|
18
18
|
|
|
19
19
|
function _interopNamespace(e) {
|
|
20
20
|
if (e && e.__esModule) return e;
|
|
@@ -45,7 +45,7 @@ const schema = yup__namespace.object().shape({
|
|
|
45
45
|
});
|
|
46
46
|
const EditView = () => {
|
|
47
47
|
const { formatMessage } = reactIntl.useIntl();
|
|
48
|
-
const { toggleNotification } =
|
|
48
|
+
const { toggleNotification } = rbac.useNotification();
|
|
49
49
|
const navigate = reactRouterDom.useNavigate();
|
|
50
50
|
const { state: locationState } = reactRouterDom.useLocation();
|
|
51
51
|
const [transferToken, setTransferToken] = React__namespace.useState(
|
|
@@ -53,21 +53,21 @@ const EditView = () => {
|
|
|
53
53
|
...locationState.transferToken
|
|
54
54
|
} : null
|
|
55
55
|
);
|
|
56
|
-
const { trackUsage } =
|
|
56
|
+
const { trackUsage } = rbac.useTracking();
|
|
57
57
|
const setCurrentStep = index.useGuidedTour("EditView", (state) => state.setCurrentStep);
|
|
58
|
-
const permissions =
|
|
58
|
+
const permissions = rbac.useTypedSelector(
|
|
59
59
|
(state) => state.admin_app.permissions.settings?.["transfer-tokens"]
|
|
60
60
|
);
|
|
61
61
|
const {
|
|
62
62
|
allowedActions: { canCreate, canUpdate, canRegenerate }
|
|
63
|
-
} =
|
|
63
|
+
} = rbac.useRBAC(permissions);
|
|
64
64
|
const match = reactRouterDom.useMatch("/settings/transfer-tokens/:id");
|
|
65
65
|
const id = match?.params?.id;
|
|
66
66
|
const isCreating = id === "create";
|
|
67
67
|
const {
|
|
68
68
|
_unstableFormatAPIError: formatAPIError,
|
|
69
69
|
_unstableFormatValidationErrors: formatValidationErrors
|
|
70
|
-
} =
|
|
70
|
+
} = rbac.useAPIErrorHandler();
|
|
71
71
|
React__namespace.useEffect(() => {
|
|
72
72
|
trackUsage(isCreating ? "didAddTokenFromList" : "didEditTokenFromList", {
|
|
73
73
|
tokenType: constants.TRANSFER_TOKEN_TYPE
|
|
@@ -184,10 +184,10 @@ const EditView = () => {
|
|
|
184
184
|
const canEditInputs = canUpdate && !isCreating || canCreate && isCreating;
|
|
185
185
|
const isLoading = !isCreating && !transferToken;
|
|
186
186
|
if (isLoading) {
|
|
187
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
187
|
+
return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Loading, {});
|
|
188
188
|
}
|
|
189
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
190
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
189
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(rbac.Page.Main, { children: [
|
|
190
|
+
/* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Title, { children: formatMessage(
|
|
191
191
|
{ id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
|
|
192
192
|
{
|
|
193
193
|
name: "Transfer Tokens"
|
|
@@ -249,10 +249,10 @@ const EditView = () => {
|
|
|
249
249
|
] });
|
|
250
250
|
};
|
|
251
251
|
const ProtectedEditView = () => {
|
|
252
|
-
const permissions =
|
|
252
|
+
const permissions = rbac.useTypedSelector(
|
|
253
253
|
(state) => state.admin_app.permissions.settings?.["transfer-tokens"].read
|
|
254
254
|
);
|
|
255
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
255
|
+
return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditView, {}) });
|
|
256
256
|
};
|
|
257
257
|
const FormTransferTokenContainer = ({
|
|
258
258
|
errors = {},
|
|
@@ -355,4 +355,4 @@ const FormTransferTokenContainer = ({
|
|
|
355
355
|
|
|
356
356
|
exports.EditView = EditView;
|
|
357
357
|
exports.ProtectedEditView = ProtectedEditView;
|
|
358
|
-
//# sourceMappingURL=EditView-
|
|
358
|
+
//# sourceMappingURL=EditView-oyHNBKvL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditView-HPIQBaUm.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\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 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: 'danger',\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: 'danger',\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: 'danger',\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: 'danger',\n message: formatMessage({\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 <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\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 </Page.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","useIntl","useNotification","useNavigate","useLocation","React","useTracking","useGuidedTour","useTypedSelector","useRBAC","useMatch","useAPIErrorHandler","TRANSFER_TOKEN_TYPE","useGetTransferTokenQuery","useCreateTransferTokenMutation","useUpdateTransferTokenMutation","permissions","isBaseQueryError","jsx","Page","jsxs","Formik","Form","FormHead","ContentLayout","Flex","TokenBox","Box","Typography","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditView-oyHNBKvL.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, ContentLayout, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\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 { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\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 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: 'danger',\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: 'danger',\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: 'danger',\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: 'danger',\n message: formatMessage({\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 <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\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 </Page.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","useIntl","useNotification","useNavigate","useLocation","React","useTracking","useGuidedTour","useTypedSelector","useRBAC","useMatch","useAPIErrorHandler","TRANSFER_TOKEN_TYPE","useGetTransferTokenQuery","useCreateTransferTokenMutation","useUpdateTransferTokenMutation","permissions","isBaseQueryError","jsx","Page","jsxs","Formik","Form","FormHead","ContentLayout","Flex","TokenBox","Box","Typography","Grid","GridItem","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect"],"mappings":"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"}
|
|
@@ -8,12 +8,12 @@ const designSystem = require('@strapi/design-system');
|
|
|
8
8
|
const formik = require('formik');
|
|
9
9
|
const reactIntl = require('react-intl');
|
|
10
10
|
const reactRouterDom = require('react-router-dom');
|
|
11
|
-
const index = require('./index-
|
|
12
|
-
const
|
|
13
|
-
const apiTokens = require('./apiTokens-
|
|
14
|
-
const admin = require('./admin-
|
|
11
|
+
const index = require('./index-dcaxfEDi.js');
|
|
12
|
+
const rbac = require('./rbac-WZsv1761.js');
|
|
13
|
+
const apiTokens = require('./apiTokens-lXn03No3.js');
|
|
14
|
+
const admin = require('./admin-vlKSOeHB.js');
|
|
15
15
|
const constants = require('./constants-8PhEUZTR.js');
|
|
16
|
-
const TokenTypeSelect = require('./TokenTypeSelect-
|
|
16
|
+
const TokenTypeSelect = require('./TokenTypeSelect-Ngz4ONEL.js');
|
|
17
17
|
const reactContext = require('@radix-ui/react-context');
|
|
18
18
|
const map = require('lodash/map');
|
|
19
19
|
const tail = require('lodash/tail');
|
|
@@ -565,19 +565,19 @@ const reducer = (state, action) => immer.produce(state, (draftState) => {
|
|
|
565
565
|
|
|
566
566
|
const EditView = () => {
|
|
567
567
|
const { formatMessage } = reactIntl.useIntl();
|
|
568
|
-
const { toggleNotification } =
|
|
568
|
+
const { toggleNotification } = rbac.useNotification();
|
|
569
569
|
const { state: locationState } = reactRouterDom.useLocation();
|
|
570
|
-
const permissions =
|
|
570
|
+
const permissions = rbac.useTypedSelector((state2) => state2.admin_app.permissions);
|
|
571
571
|
const [apiToken, setApiToken] = React__namespace.useState(
|
|
572
572
|
locationState?.apiToken?.accessKey ? {
|
|
573
573
|
...locationState.apiToken
|
|
574
574
|
} : null
|
|
575
575
|
);
|
|
576
|
-
const { trackUsage } =
|
|
576
|
+
const { trackUsage } = rbac.useTracking();
|
|
577
577
|
const setCurrentStep = index.useGuidedTour("EditView", (state2) => state2.setCurrentStep);
|
|
578
578
|
const {
|
|
579
579
|
allowedActions: { canCreate, canUpdate, canRegenerate }
|
|
580
|
-
} =
|
|
580
|
+
} = rbac.useRBAC(permissions.settings?.["api-tokens"]);
|
|
581
581
|
const [state, dispatch] = React__namespace.useReducer(reducer, initialState);
|
|
582
582
|
const match = reactRouterDom.useMatch("/settings/api-tokens/:id");
|
|
583
583
|
const id = match?.params?.id;
|
|
@@ -585,7 +585,7 @@ const EditView = () => {
|
|
|
585
585
|
const {
|
|
586
586
|
_unstableFormatAPIError: formatAPIError,
|
|
587
587
|
_unstableFormatValidationErrors: formatValidtionErrors
|
|
588
|
-
} =
|
|
588
|
+
} = rbac.useAPIErrorHandler();
|
|
589
589
|
const navigate = reactRouterDom.useNavigate();
|
|
590
590
|
const contentAPIPermissionsQuery = useGetPermissionsQuery();
|
|
591
591
|
const contentAPIRoutesQuery = useGetRoutesQuery();
|
|
@@ -689,7 +689,7 @@ const EditView = () => {
|
|
|
689
689
|
const res = await createToken({
|
|
690
690
|
...body,
|
|
691
691
|
// lifespan must be "null" for unlimited (0 would mean instantly expired and isn't accepted)
|
|
692
|
-
lifespan: body?.lifespan
|
|
692
|
+
lifespan: body?.lifespan && body.lifespan !== "0" ? parseInt(body.lifespan.toString(), 10) : null,
|
|
693
693
|
permissions: body.type === "custom" ? state.selectedActions : null
|
|
694
694
|
});
|
|
695
695
|
if ("error" in res) {
|
|
@@ -714,7 +714,7 @@ const EditView = () => {
|
|
|
714
714
|
type: res.data.type,
|
|
715
715
|
tokenType: constants.API_TOKEN_TYPE
|
|
716
716
|
});
|
|
717
|
-
navigate(res.data.id.toString()
|
|
717
|
+
navigate(`../api-tokens/${res.data.id.toString()}`, {
|
|
718
718
|
state: { apiToken: res.data },
|
|
719
719
|
replace: true
|
|
720
720
|
});
|
|
@@ -795,10 +795,10 @@ const EditView = () => {
|
|
|
795
795
|
};
|
|
796
796
|
const canEditInputs = canUpdate && !isCreating || canCreate && isCreating;
|
|
797
797
|
if (isLoading) {
|
|
798
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
798
|
+
return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Loading, {});
|
|
799
799
|
}
|
|
800
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ApiTokenPermissionsProvider, { value: providerValue, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
801
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
800
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ApiTokenPermissionsProvider, { value: providerValue, children: /* @__PURE__ */ jsxRuntime.jsxs(rbac.Page.Main, { children: [
|
|
801
|
+
/* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Title, { children: formatMessage(
|
|
802
802
|
{ id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
|
|
803
803
|
{ name: "API Tokens" }
|
|
804
804
|
) }),
|
|
@@ -864,12 +864,12 @@ const EditView = () => {
|
|
|
864
864
|
] }) });
|
|
865
865
|
};
|
|
866
866
|
const ProtectedEditView = () => {
|
|
867
|
-
const permissions =
|
|
867
|
+
const permissions = rbac.useTypedSelector(
|
|
868
868
|
(state) => state.admin_app.permissions.settings?.["api-tokens"].read
|
|
869
869
|
);
|
|
870
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
870
|
+
return /* @__PURE__ */ jsxRuntime.jsx(rbac.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditView, {}) });
|
|
871
871
|
};
|
|
872
872
|
|
|
873
873
|
exports.EditView = EditView;
|
|
874
874
|
exports.ProtectedEditView = ProtectedEditView;
|
|
875
|
-
//# sourceMappingURL=EditViewPage-
|
|
875
|
+
//# sourceMappingURL=EditViewPage-LdDGNi6d.js.map
|