@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
|
@@ -5,9 +5,9 @@ const React = require('react');
|
|
|
5
5
|
const designSystem = require('@strapi/design-system');
|
|
6
6
|
const icons = require('@strapi/icons');
|
|
7
7
|
const reactIntl = require('react-intl');
|
|
8
|
-
const index = require('./index-
|
|
9
|
-
const
|
|
10
|
-
const admin = require('./admin-
|
|
8
|
+
const index = require('./index-dcaxfEDi.js');
|
|
9
|
+
const rbac = require('./rbac-WZsv1761.js');
|
|
10
|
+
const admin = require('./admin-vlKSOeHB.js');
|
|
11
11
|
const ContentBox = require('./ContentBox-xqJCP2BC.js');
|
|
12
12
|
const dateFns = require('date-fns');
|
|
13
13
|
const locales = require('date-fns/locale');
|
|
@@ -37,8 +37,8 @@ const Regenerate = ({ onRegenerate, url }) => {
|
|
|
37
37
|
const { formatMessage } = reactIntl.useIntl();
|
|
38
38
|
const [showConfirmDialog, setShowConfirmDialog] = React__namespace.useState(false);
|
|
39
39
|
const [isLoadingConfirmation, setIsLoadingConfirmation] = React__namespace.useState(false);
|
|
40
|
-
const { toggleNotification } =
|
|
41
|
-
const { _unstableFormatAPIError: formatAPIError } =
|
|
40
|
+
const { toggleNotification } = rbac.useNotification();
|
|
41
|
+
const { _unstableFormatAPIError: formatAPIError } = rbac.useAPIErrorHandler();
|
|
42
42
|
const [regenerateToken] = admin.useRegenerateTokenMutation();
|
|
43
43
|
const regenerateData = async () => {
|
|
44
44
|
try {
|
|
@@ -171,8 +171,8 @@ const FormHead = ({
|
|
|
171
171
|
|
|
172
172
|
const TokenBox = ({ token, tokenType }) => {
|
|
173
173
|
const { formatMessage } = reactIntl.useIntl();
|
|
174
|
-
const { toggleNotification } =
|
|
175
|
-
const { trackUsage } =
|
|
174
|
+
const { toggleNotification } = rbac.useNotification();
|
|
175
|
+
const { trackUsage } = rbac.useTracking();
|
|
176
176
|
const { copy } = index.useClipboard();
|
|
177
177
|
const handleClick = (token2) => async () => {
|
|
178
178
|
if (token2) {
|
|
@@ -383,4 +383,4 @@ exports.TokenBox = TokenBox;
|
|
|
383
383
|
exports.TokenDescription = TokenDescription;
|
|
384
384
|
exports.TokenName = TokenName;
|
|
385
385
|
exports.TokenTypeSelect = TokenTypeSelect;
|
|
386
|
-
//# sourceMappingURL=TokenTypeSelect-
|
|
386
|
+
//# sourceMappingURL=TokenTypeSelect-Ngz4ONEL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenTypeSelect-6UaG68id.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/utils/locales.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n isOpen={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<Refresh />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={<BackButton />}\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import * as locales from 'date-fns/locale';\n\ntype LocaleName = keyof typeof locales;\n\n/**\n * Returns a valid date-fns locale name from a Strapi Admin locale.\n * Defaults to 'enUS' if the locale is not found.\n */\nconst getDateFnsLocaleName = (locale: string): LocaleName => {\n if (Object.keys(locales).includes(locale)) {\n return locale as LocaleName;\n }\n\n return 'enUS';\n};\n\nexport { getDateFnsLocaleName };\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nimport { getDateFnsLocaleName } from '../../../../../../utils/locales';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n locale: locales[getDateFnsLocaleName(language)],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","BackButton","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","locales","format","addDays","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenTypeSelect-Ngz4ONEL.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/utils/locales.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n isOpen={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<Refresh />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={<BackButton />}\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import * as locales from 'date-fns/locale';\n\ntype LocaleName = keyof typeof locales;\n\n/**\n * Returns a valid date-fns locale name from a Strapi Admin locale.\n * Defaults to 'enUS' if the locale is not found.\n */\nconst getDateFnsLocaleName = (locale: string): LocaleName => {\n if (Object.keys(locales).includes(locale)) {\n return locale as LocaleName;\n }\n\n return 'enUS';\n};\n\nexport { getDateFnsLocaleName };\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nimport { getDateFnsLocaleName } from '../../../../../../utils/locales';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n locale: locales[getDateFnsLocaleName(language)],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","BackButton","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","locales","format","addDays","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@ import * as React from 'react';
|
|
|
3
3
|
import { HeaderLayout, Flex, Button, IconButton, SingleSelect, SingleSelectOption, Typography, Textarea, TextInput } from '@strapi/design-system';
|
|
4
4
|
import { Check, Refresh, Duplicate, Key } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
|
-
import { B as BackButton, C as ConfirmDialog, t as useClipboard } from './index-
|
|
7
|
-
import { u as useNotification, f as useAPIErrorHandler, d as useTracking } from './
|
|
8
|
-
import { d as useRegenerateTokenMutation } from './admin-
|
|
6
|
+
import { B as BackButton, C as ConfirmDialog, t as useClipboard } from './index-oBxjGftZ.mjs';
|
|
7
|
+
import { u as useNotification, f as useAPIErrorHandler, d as useTracking } from './rbac-sYT_mXH0.mjs';
|
|
8
|
+
import { d as useRegenerateTokenMutation } from './admin-DUKhYsmP.mjs';
|
|
9
9
|
import { C as ContentBox } from './ContentBox-PbS25I_4.mjs';
|
|
10
10
|
import { format, addDays } from 'date-fns';
|
|
11
11
|
import * as locales from 'date-fns/locale';
|
|
@@ -355,4 +355,4 @@ const TokenTypeSelect = ({
|
|
|
355
355
|
};
|
|
356
356
|
|
|
357
357
|
export { FormHead as F, LifeSpanInput as L, TokenBox as T, TokenName as a, TokenDescription as b, TokenTypeSelect as c };
|
|
358
|
-
//# sourceMappingURL=TokenTypeSelect-
|
|
358
|
+
//# sourceMappingURL=TokenTypeSelect-oOKwvsQ2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenTypeSelect-FTMoBhn3.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/utils/locales.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n isOpen={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<Refresh />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={<BackButton />}\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import * as locales from 'date-fns/locale';\n\ntype LocaleName = keyof typeof locales;\n\n/**\n * Returns a valid date-fns locale name from a Strapi Admin locale.\n * Defaults to 'enUS' if the locale is not found.\n */\nconst getDateFnsLocaleName = (locale: string): LocaleName => {\n if (Object.keys(locales).includes(locale)) {\n return locale as LocaleName;\n }\n\n return 'enUS';\n};\n\nexport { getDateFnsLocaleName };\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nimport { getDateFnsLocaleName } from '../../../../../../utils/locales';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n locale: locales[getDateFnsLocaleName(language)],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenTypeSelect-oOKwvsQ2.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/utils/locales.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Data } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n isOpen={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<Refresh />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </>\n );\n};\n\ninterface Token {\n id: Data.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={<BackButton />}\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import * as locales from 'date-fns/locale';\n\ntype LocaleName = keyof typeof locales;\n\n/**\n * Returns a valid date-fns locale name from a Strapi Admin locale.\n * Defaults to 'enUS' if the locale is not found.\n */\nconst getDateFnsLocaleName = (locale: string): LocaleName => {\n if (Object.keys(locales).includes(locale)) {\n return locale as LocaleName;\n }\n\n return 'enUS';\n};\n\nexport { getDateFnsLocaleName };\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nimport { getDateFnsLocaleName } from '../../../../../../utils/locales';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n locale: locales[getDateFnsLocaleName(language)],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,UAAa,GAAA,CAAC,EAAE,YAAA,EAAc,KAA2B,KAAA;AAC7D,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,CAAC,iBAAmB,EAAA,oBAAoB,CAAI,GAAA,KAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAEtE,EAAA,MAAM,CAAC,qBAAuB,EAAA,wBAAwB,CAAI,GAAA,KAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAC9E,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,EAAE,uBAAA,EAAyB,cAAe,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAEvE,EAAM,MAAA,CAAC,eAAe,CAAA,GAAI,0BAA2B,EAAA,CAAA;AAErD,EAAA,MAAM,iBAAiB,YAAY;AACjC,IAAI,IAAA;AACF,MAAM,MAAA,GAAA,GAAM,MAAM,eAAA,CAAgB,GAAG,CAAA,CAAA;AAErC,MAAA,IAAI,WAAW,GAAK,EAAA;AAClB,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,QAAA;AAAA,UACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,SAClC,CAAA,CAAA;AAED,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,IAAI,YAAc,EAAA;AAChB,QAAa,YAAA,CAAA,GAAA,CAAI,KAAK,SAAS,CAAA,CAAA;AAAA,OACjC;AAAA,aACO,KAAO,EAAA;AACd,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,SAAS,aAAc,CAAA;AAAA,UACrB,EAAI,EAAA,oBAAA;AAAA,UACJ,cAAgB,EAAA,sBAAA;AAAA,SACjB,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACD,SAAA;AACA,MAAA,wBAAA,CAAyB,KAAK,CAAA,CAAA;AAAA,KAChC;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,4BAA4B,YAAY;AAC5C,IAAe,cAAA,EAAA,CAAA;AACf,IAAA,oBAAA,CAAqB,KAAK,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,sBAAY,OAAQ,EAAA,EAAA,CAAA;AAAA,QACpB,IAAK,EAAA,QAAA;AAAA,QACL,IAAK,EAAA,GAAA;AAAA,QACL,OAAQ,EAAA,UAAA;AAAA,QACR,OAAA,EAAS,MAAM,oBAAA,CAAqB,IAAI,CAAA;AAAA,QACxC,IAAK,EAAA,YAAA;AAAA,QAEJ,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,4BAAA;AAAA,UACJ,cAAgB,EAAA,YAAA;AAAA,SACjB,CAAA;AAAA,OAAA;AAAA,KACH;AAAA,oBAEA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,MAAQ,EAAA,iBAAA;AAAA,QACR,OAAA,EAAS,MAAM,oBAAA,CAAqB,KAAK,CAAA;AAAA,QACzC,OAAO,aAAc,CAAA;AAAA,UACnB,EAAI,EAAA,wCAAA;AAAA,UACJ,cAAgB,EAAA,kBAAA;AAAA,SACjB,CAAA;AAAA,QACD,SACE,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,sBAAY,OAAQ,EAAA,EAAA,CAAA;AAAA,YACpB,OAAS,EAAA,qBAAA;AAAA,YACT,OAAS,EAAA,yBAAA;AAAA,YAER,QAAc,EAAA,aAAA,CAAA;AAAA,cACb,EAAI,EAAA,mCAAA;AAAA,cACJ,cAAgB,EAAA,YAAA;AAAA,aACjB,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,QAGD,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,sCAAA;AAAA,UACJ,cAAgB,EAAA,iDAAA;AAAA,SACjB,CAAA;AAAA,OAAA;AAAA,KACH;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAiBO,MAAM,WAAW,CAA8B;AAAA,EACpD,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AACF,CAA6B,KAAA;AAC3B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,gBAAA,GAAmB,CAAC,MAAmB,KAAA;AAC3C,IAAS,QAAA,CAAA;AAAA,MACP,GAAG,KAAA;AAAA,MACH,SAAW,EAAA,MAAA;AAAA,KACZ,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,KAAA,EAAO,IAAQ,IAAA,aAAA,CAAc,KAAK,CAAA;AAAA,MACzC,aACE,EAAA,aAAA,mBACG,IAAA,CAAA,IAAA,EAAA,EAAK,KAAK,CACR,EAAA,QAAA,EAAA;AAAA,QAAA,aAAA,IAAiB,OAAO,EACvB,oBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,YAAc,EAAA,gBAAA;AAAA,YACd,KAAK,CAAG,EAAA,aAAa,CAAG,EAAA,KAAA,EAAO,MAAM,EAAE,CAAA,CAAA;AAAA,WAAA;AAAA,SACzC;AAAA,wBAEF,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,QAAU,EAAA,YAAA;AAAA,YACV,OAAS,EAAA,YAAA;AAAA,YACT,SAAA,sBAAY,KAAM,EAAA,EAAA,CAAA;AAAA,YAClB,IAAK,EAAA,QAAA;AAAA,YACL,IAAK,EAAA,GAAA;AAAA,YAEJ,QAAc,EAAA,aAAA,CAAA;AAAA,cACb,EAAI,EAAA,aAAA;AAAA,cACJ,cAAgB,EAAA,MAAA;AAAA,aACjB,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,OACF,EAAA,CAAA,GAEA,aACA,IAAA,KAAA,EAAO,EACL,oBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,YAAc,EAAA,gBAAA;AAAA,UACd,KAAK,CAAG,EAAA,aAAa,CAAG,EAAA,KAAA,EAAO,MAAM,EAAE,CAAA,CAAA;AAAA,SAAA;AAAA,OACzC;AAAA,MAIN,gBAAA,sBAAmB,UAAW,EAAA,EAAA,CAAA;AAAA,MAC9B,QAAQ,EAAA,IAAA;AAAA,KAAA;AAAA,GACV,CAAA;AAEJ;;ACrKO,MAAM,QAAW,GAAA,CAAC,EAAE,KAAA,EAAO,WAA+B,KAAA;AAC/D,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,WAAY,EAAA,CAAA;AAEnC,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,YAAa,EAAA,CAAA;AAE9B,EAAM,MAAA,WAAA,GAAc,CAACA,MAAAA,KAAkC,YAAY;AACjE,IAAA,IAAIA,MAAO,EAAA;AACT,MAAM,MAAA,OAAA,GAAU,MAAM,IAAA,CAAKA,MAAK,CAAA,CAAA;AAEhC,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,UAAA,CAAW,iBAAmB,EAAA;AAAA,UAC5B,SAAA;AAAA,SACD,CAAA,CAAA;AACD,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,SAAA;AAAA,UACN,OAAS,EAAA,aAAA,CAAc,EAAE,EAAA,EAAI,uCAAuC,CAAA;AAAA,SACrE,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EACE,yBACG,GAAA,CAAA,MAAA,EAAA,EAAK,OAAO,EAAE,SAAA,EAAW,SACxB,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAO,aAAc,CAAA;AAAA,YACnB,EAAI,EAAA,qCAAA;AAAA,YACJ,cAAgB,EAAA,mBAAA;AAAA,WACjB,CAAA;AAAA,UACD,OAAA,EAAS,YAAY,KAAK,CAAA;AAAA,UAC1B,WAAa,EAAA,CAAA;AAAA,UACb,IAAA,sBAAO,SAAU,EAAA,EAAA,CAAA;AAAA,UACjB,KAAO,EAAA,EAAE,OAAS,EAAA,CAAA,EAAG,QAAQ,MAAO,EAAA;AAAA,SAAA;AAAA,OAExC,EAAA,CAAA;AAAA,MAGJ,KAAA,EACE,SACA,aAAc,CAAA;AAAA,QACZ,EAAI,EAAA,gCAAA;AAAA,QACJ,cAAgB,EAAA,sCAAA;AAAA,OACjB,CAAA;AAAA,MAEH,QAAA,EACE,QACI,aAAc,CAAA;AAAA,QACZ,EAAI,EAAA,kCAAA;AAAA,QACJ,cAAgB,EAAA,kEAAA;AAAA,OACjB,IACD,aAAc,CAAA;AAAA,QACZ,EAAI,EAAA,kCAAA;AAAA,QACJ,cAAgB,EAAA,yDAAA;AAAA,OACjB,CAAA;AAAA,MAEP,IAAA,sBAAO,GAAI,EAAA,EAAA,CAAA;AAAA,MACX,cAAe,EAAA,YAAA;AAAA,KAAA;AAAA,GACjB,CAAA;AAEJ;;ACrEA,MAAM,oBAAA,GAAuB,CAAC,MAA+B,KAAA;AAC3D,EAAA,IAAI,OAAO,IAAK,CAAA,OAAO,CAAE,CAAA,QAAA,CAAS,MAAM,CAAG,EAAA;AACzC,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAEA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;;ACTO,MAAM,mBAAsB,GAAA,CACjC,SACA,EAAA,QAAA,EACA,WAAmB,IAChB,KAAA;AACH,EAAI,IAAA,QAAA,IAAY,OAAO,QAAA,KAAa,QAAU,EAAA;AAC5C,IAAA,MAAM,cAAiB,GAAA,QAAA,GAAW,EAAK,GAAA,EAAA,GAAK,EAAK,GAAA,GAAA,CAAA;AAEjD,IAAO,OAAA,MAAA,CAAO,QAAQ,IAAI,IAAA,CAAK,SAAS,CAAG,EAAA,cAAc,GAAG,KAAO,EAAA;AAAA,MACjE,MAAQ,EAAA,OAAA,CAAQ,oBAAqB,CAAA,QAAQ,CAAC,CAAA;AAAA,KAC/C,CAAA,CAAA;AAAA,GACH;AAEA,EAAO,OAAA,WAAA,CAAA;AACT,CAAA;;ACjBA,MAAM,+BAAA,GAAkC,CACtC,OACiC,KAAA;AACjC,EAAA,OAAO,OAAO,OAAA,KAAY,QAAY,IAAA,OAAA,KAAY,QAAQ,IAAQ,IAAA,OAAA,CAAA;AACpE,CAAA;;ACWO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AACF,CAA0B,KAAA;AACxB,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,UAAA;AAAA,QACL,OAAO,aAAc,CAAA;AAAA,UACnB,EAAI,EAAA,+BAAA;AAAA,UACJ,cAAgB,EAAA,gBAAA;AAAA,SACjB,CAAA;AAAA,QACD,KAAA;AAAA,QACA,OACE,KACI,GAAA,aAAA;AAAA,UACE,+BAAA,CAAgC,KAAK,CACjC,GAAA,KAAA,GACA,EAAE,EAAI,EAAA,KAAA,EAAO,gBAAgB,KAAM,EAAA;AAAA,SAEzC,GAAA,KAAA,CAAA;AAAA,QAEN,QAAA,EAAU,CAACC,MAAU,KAAA;AAEnB,UAAS,QAAA,CAAA,EAAE,QAAQ,EAAE,IAAA,EAAM,YAAY,KAAAA,EAAAA,MAAAA,IAAS,CAAA,CAAA;AAAA,SAClD;AAAA,QACA,QAAQ,EAAA,IAAA;AAAA,QACR,UAAU,CAAC,UAAA;AAAA,QACX,WAAY,EAAA,QAAA;AAAA,QAEZ,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,kBAAA,EAAA,EAAmB,KAAM,EAAA,WAAA,EACvB,QAAc,EAAA,aAAA,CAAA;AAAA,YACb,EAAI,EAAA,iCAAA;AAAA,YACJ,cAAgB,EAAA,QAAA;AAAA,WACjB,CACH,EAAA,CAAA;AAAA,0BACC,GAAA,CAAA,kBAAA,EAAA,EAAmB,KAAM,EAAA,YAAA,EACvB,QAAc,EAAA,aAAA,CAAA;AAAA,YACb,EAAI,EAAA,kCAAA;AAAA,YACJ,cAAgB,EAAA,SAAA;AAAA,WACjB,CACH,EAAA,CAAA;AAAA,0BACC,GAAA,CAAA,kBAAA,EAAA,EAAmB,KAAM,EAAA,YAAA,EACvB,QAAc,EAAA,aAAA,CAAA;AAAA,YACb,EAAI,EAAA,kCAAA;AAAA,YACJ,cAAgB,EAAA,SAAA;AAAA,WACjB,CACH,EAAA,CAAA;AAAA,0BACC,GAAA,CAAA,kBAAA,EAAA,EAAmB,KAAM,EAAA,GAAA,EACvB,QAAc,EAAA,aAAA,CAAA;AAAA,YACb,EAAI,EAAA,oCAAA;AAAA,YACJ,cAAgB,EAAA,WAAA;AAAA,WACjB,CACH,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KACF;AAAA,oBACA,GAAA,CAAC,cAAW,OAAQ,EAAA,IAAA,EAAK,WAAU,YAChC,EAAA,QAAA,EAAA,CAAC,UACA,IAAA,CAAA,EAAG,aAAc,CAAA;AAAA,MACf,EAAI,EAAA,0CAAA;AAAA,MACJ,cAAgB,EAAA,iBAAA;AAAA;AAAA,KAEjB,CAAC,CAAK,EAAA,EAAA,mBAAA,CAAoB,KAAO,EAAA,SAAA,EAAW,QAAS,CAAA,KAAA,IAAS,EAAI,EAAA,EAAE,CAAC,CAAC,CAC3E,CAAA,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ;;AC7EO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AACF,CAA6B,KAAA;AAC3B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAO,aAAc,CAAA;AAAA,QACnB,EAAI,EAAA,kCAAA;AAAA,QACJ,cAAgB,EAAA,aAAA;AAAA,OACjB,CAAA;AAAA,MACD,EAAG,EAAA,aAAA;AAAA,MACH,OACE,KACI,GAAA,aAAA;AAAA,QACE,+BAAA,CAAgC,KAAK,CAAA,GACjC,KACA,GAAA;AAAA,UACE,EAAI,EAAA,KAAA;AAAA,UACJ,cAAgB,EAAA,KAAA;AAAA,SAClB;AAAA,OAEN,GAAA,KAAA,CAAA;AAAA,MAEN,QAAA;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ;;ACjCO,MAAM,YAAY,CAAC,EAAE,OAAO,KAAO,EAAA,QAAA,EAAU,eAAoC,KAAA;AACtF,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,MAAA;AAAA,MACL,OACE,KACI,GAAA,aAAA;AAAA,QACE,+BAAA,CAAgC,KAAK,CAAI,GAAA,KAAA,GAAQ,EAAE,EAAI,EAAA,KAAA,EAAO,gBAAgB,KAAM,EAAA;AAAA,OAEtF,GAAA,KAAA,CAAA;AAAA,MAEN,OAAO,aAAc,CAAA;AAAA,QACnB,EAAI,EAAA,2BAAA;AAAA,QACJ,cAAgB,EAAA,MAAA;AAAA,OACjB,CAAA;AAAA,MACD,QAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MACX,QAAQ,EAAA,IAAA;AAAA,KAAA;AAAA,GACV,CAAA;AAEJ;;ACjBO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAO,GAAA,MAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX,KAAA;AACF,CAA4B,KAAA;AAC1B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EACE,uBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAO,aAAc,CAAA;AAAA,QACnB,IAAI,KAAM,CAAA,EAAA;AAAA,QACV,gBAAgB,KAAM,CAAA,cAAA;AAAA,OACvB,CAAA;AAAA,MACD,KAAA;AAAA,MACA,OACE,KACI,GAAA,aAAA;AAAA,QACE,+BAAA,CAAgC,KAAK,CAAI,GAAA,KAAA,GAAQ,EAAE,EAAI,EAAA,KAAA,EAAO,gBAAgB,KAAM,EAAA;AAAA,OAEtF,GAAA,KAAA,CAAA;AAAA,MAEN,QAAA;AAAA,MACA,WAAY,EAAA,QAAA;AAAA,MACZ,QAAQ,EAAA,IAAA;AAAA,MACR,UAAU,CAAC,aAAA;AAAA,MAEV,qBACC,OAAQ,CAAA,GAAA,CAAI,CAAC,EAAE,KAAA,EAAAA,QAAO,KAAAC,EAAAA,MAAAA,EACpB,qBAAA,GAAA,CAAC,sBAA+B,KAAOD,EAAAA,MAAAA,EACpC,wBAAcC,MAAK,CAAA,EAAA,EADGD,MAEzB,CACD,CAAA;AAAA,KAAA;AAAA,GACL,CAAA;AAEJ;;;;"}
|
|
@@ -5,9 +5,9 @@ import { parse } from 'qs';
|
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useLocation, useNavigate } from 'react-router-dom';
|
|
7
7
|
import styled from 'styled-components';
|
|
8
|
-
import { P as PrivateRoute } from './PrivateRoute-
|
|
9
|
-
import { U as UnauthenticatedLayout, L as LayoutContent, a as Logo } from './index-
|
|
10
|
-
import { u as useNotification, a as useAuth } from './
|
|
8
|
+
import { P as PrivateRoute } from './PrivateRoute-wDu6Vo0N.mjs';
|
|
9
|
+
import { U as UnauthenticatedLayout, L as LayoutContent, a as Logo } from './index-oBxjGftZ.mjs';
|
|
10
|
+
import { u as useNotification, a as useAuth } from './rbac-sYT_mXH0.mjs';
|
|
11
11
|
|
|
12
12
|
const options = [
|
|
13
13
|
{
|
|
@@ -143,4 +143,4 @@ const PrivateUseCasePage = () => {
|
|
|
143
143
|
};
|
|
144
144
|
|
|
145
145
|
export { PrivateUseCasePage, UseCasePage, options };
|
|
146
|
-
//# sourceMappingURL=UseCasePage-
|
|
146
|
+
//# sourceMappingURL=UseCasePage-2wum_xzS.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage-ifVOOcqK.mjs","sources":["../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n Option,\n Select,\n TextButton,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst TypographyCenter = styled(Typography)`\n text-align: center;\n`;\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch('https://analytics.strapi.io/register', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`${250 / 16}rem`}>\n <TypographyCenter variant=\"alpha\" as=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </TypographyCenter>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Select\n id=\"usecase\"\n data-testid=\"usecase\"\n label={formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n // onClear={() => setRole(null)}\n // clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(value) => setRole(value)}\n value={role}\n >\n {options.map(({ intlLabel, value }) => (\n <Option key={value} value={value}>\n {formatMessage(intlLabel)}\n </Option>\n ))}\n </Select>\n {isOther && (\n <TextInput\n name=\"other\"\n label={formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n data-testid=\"other\"\n />\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton onClick={(event) => handleSubmit(event, true)}>\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":[],"mappings":";;;;;;;;;;;AAwBO,MAAM,OAAU,GAAA;AAAA,EACrB;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,mBAAA;AAAA,MACJ,cAAgB,EAAA,qBAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,qBAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,kBAAA;AAAA,MACJ,cAAgB,EAAA,oBAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,oBAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,oBAAA;AAAA,MACJ,cAAgB,EAAA,sBAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,sBAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,wBAAA;AAAA,MACJ,cAAgB,EAAA,iBAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,iBAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,yBAAA;AAAA,MACJ,cAAgB,EAAA,iBAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,iBAAA;AAAA,GACT;AAAA,EACA;AAAA,IACE,SAAW,EAAA;AAAA,MACT,EAAI,EAAA,eAAA;AAAA,MACJ,cAAgB,EAAA,OAAA;AAAA,KAClB;AAAA,IACA,KAAO,EAAA,OAAA;AAAA,GACT;AACF,EAAA;AAEA,MAAM,gBAAA,GAAmB,OAAO,UAAU,CAAA,CAAA;AAAA;AAAA,CAAA,CAAA;AAI1C,MAAM,cAAc,MAAM;AACxB,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,KAAA,CAAM,SAAiC,IAAI,CAAA,CAAA;AACnE,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAA,KAAA,CAAM,SAAS,EAAE,CAAA,CAAA;AAEnD,EAAM,MAAA,EAAE,SAAW,EAAA,KAAA,EAAU,GAAA,OAAA,CAAQ,aAAe,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,IAAI,CAAA,IAAK,EAAC,CAAA;AAC/E,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAM,SAAS,MAAQ,EAAA,EAAE,iBAAmB,EAAA,IAAA,EAAM,CAAA,CAAA;AACvE,EAAA,MAAM,UAAU,IAAS,KAAA,OAAA,CAAA;AAEzB,EAAM,MAAA,YAAA,GAAe,OAAO,KAAA,EAAwB,WAAyB,KAAA;AAC3E,IAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,IAAI,IAAA;AACF,MAAA,MAAM,MAAM,sCAAwC,EAAA;AAAA,QAClD,MAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA;AAAA,UACP,cAAgB,EAAA,kBAAA;AAAA,SAClB;AAAA,QACA,IAAA,EAAM,KAAK,SAAU,CAAA;AAAA,UACnB,KAAA;AAAA,UACA,QAAU,EAAA,SAAA;AAAA,UACV,UAAA,EAAY,OAAQ,CAAA,CAAC,QAAQ,CAAA;AAAA,UAC7B,OAAS,EAAA;AAAA,YACP,IAAA,EAAM,cAAc,KAAY,CAAA,GAAA,IAAA;AAAA,YAChC,SAAA,EAAW,cAAc,KAAY,CAAA,GAAA,SAAA;AAAA,WACvC;AAAA,SACD,CAAA;AAAA,OACF,CAAA,CAAA;AAED,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,SAAA;AAAA,QACN,SAAS,aAAc,CAAA;AAAA,UACrB,EAAI,EAAA,8CAAA;AAAA,UACJ,cAAgB,EAAA,uCAAA;AAAA,SACjB,CAAA;AAAA,OACF,CAAA,CAAA;AACD,MAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AAAA,aACL,GAAK,EAAA;AAAA,KAEd;AAAA,GACF,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,qBAAA,EAAA,EACC,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,YAAW,eACf,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,aAAA,EAAA,EACC,+BAAC,MAAK,EAAA,EAAA,QAAA,EAAU,CAAC,CAAM,KAAA,YAAA,CAAa,CAAG,EAAA,KAAK,CAC1C,EAAA,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,IAAK,EAAA,EAAA,SAAA,EAAU,QAAS,EAAA,aAAA,EAAe,CACtC,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,CAAA;AAAA,4BACL,GAAI,EAAA,EAAA,UAAA,EAAY,GAAG,aAAe,EAAA,CAAA,EAAG,OAAO,CAAG,EAAA,GAAA,GAAM,EAAE,CACtD,GAAA,CAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,oBAAiB,OAAQ,EAAA,OAAA,EAAQ,IAAG,IAAK,EAAA,EAAA,EAAG,iBAC1C,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,eAAA;AAAA,UACJ,cAAgB,EAAA,mCAAA;AAAA,SACjB,GACH,CACF,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,2BACC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,EAAG,EAAA,SAAA;AAAA,YACH,aAAY,EAAA,SAAA;AAAA,YACZ,OAAO,aAAc,CAAA;AAAA,cACnB,EAAI,EAAA,yBAAA;AAAA,cACJ,cAAgB,EAAA,8BAAA;AAAA,aACjB,CAAA;AAAA,YAGD,QAAU,EAAA,CAAC,KAAU,KAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,YAClC,KAAO,EAAA,IAAA;AAAA,YAEN,QAAQ,EAAA,OAAA,CAAA,GAAA,CAAI,CAAC,EAAE,WAAW,KAAM,EAAA,qBAC9B,GAAA,CAAA,MAAA,EAAA,EAAmB,KACjB,EAAA,QAAA,EAAA,aAAA,CAAc,SAAS,CAAA,EAAA,EADb,KAEb,CACD,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,QACC,OACC,oBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,IAAK,EAAA,OAAA;AAAA,YACL,OAAO,aAAc,CAAA,EAAE,IAAI,eAAiB,EAAA,cAAA,EAAgB,SAAS,CAAA;AAAA,YACrE,KAAO,EAAA,SAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,YAAa,CAAA,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC5C,aAAY,EAAA,OAAA;AAAA,WAAA;AAAA,SACd;AAAA,4BAED,MAAO,EAAA,EAAA,IAAA,EAAK,UAAS,IAAK,EAAA,GAAA,EAAI,WAAS,IAAC,EAAA,QAAA,EAAU,CAAC,IAAA,EACjD,wBAAc,EAAE,EAAA,EAAI,iBAAiB,cAAgB,EAAA,QAAA,EAAU,CAClE,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,KAAA,EACF,CACF,EAAA,CAAA;AAAA,wBACC,IAAK,EAAA,EAAA,cAAA,EAAe,QACnB,EAAA,QAAA,kBAAA,GAAA,CAAC,OAAI,UAAY,EAAA,CAAA,EACf,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,SAAS,CAAC,KAAA,KAAU,aAAa,KAAO,EAAA,IAAI,GACrD,QAAc,EAAA,aAAA,CAAA;AAAA,MACb,EAAI,EAAA,qBAAA;AAAA,MACJ,cAAgB,EAAA,oBAAA;AAAA,KACjB,CACH,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAEA,MAAM,qBAAqB,MAAM;AAC/B,EAAA,uBACG,GAAA,CAAA,YAAA,EAAA,EACC,QAAC,kBAAA,GAAA,CAAA,WAAA,EAAA,EAAY,CACf,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"UseCasePage-2wum_xzS.mjs","sources":["../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n Option,\n Select,\n TextButton,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst TypographyCenter = styled(Typography)`\n text-align: center;\n`;\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch('https://analytics.strapi.io/register', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`${250 / 16}rem`}>\n <TypographyCenter variant=\"alpha\" as=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </TypographyCenter>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Select\n id=\"usecase\"\n data-testid=\"usecase\"\n label={formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n // onClear={() => setRole(null)}\n // clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(value) => setRole(value)}\n value={role}\n >\n {options.map(({ intlLabel, value }) => (\n <Option key={value} value={value}>\n {formatMessage(intlLabel)}\n </Option>\n ))}\n </Select>\n {isOther && (\n <TextInput\n name=\"other\"\n label={formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n data-testid=\"other\"\n />\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton onClick={(event) => handleSubmit(event, true)}>\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,9 @@ const qs = require('qs');
|
|
|
9
9
|
const reactIntl = require('react-intl');
|
|
10
10
|
const reactRouterDom = require('react-router-dom');
|
|
11
11
|
const styled = require('styled-components');
|
|
12
|
-
const PrivateRoute = require('./PrivateRoute-
|
|
13
|
-
const index = require('./index-
|
|
14
|
-
const
|
|
12
|
+
const PrivateRoute = require('./PrivateRoute-KAM10GGM.js');
|
|
13
|
+
const index = require('./index-dcaxfEDi.js');
|
|
14
|
+
const rbac = require('./rbac-WZsv1761.js');
|
|
15
15
|
|
|
16
16
|
const _interopDefault = e => e && e.__esModule ? e : { default: e };
|
|
17
17
|
|
|
@@ -84,13 +84,13 @@ const TypographyCenter = styled__default.default(designSystem.Typography)`
|
|
|
84
84
|
text-align: center;
|
|
85
85
|
`;
|
|
86
86
|
const UseCasePage = () => {
|
|
87
|
-
const { toggleNotification } =
|
|
87
|
+
const { toggleNotification } = rbac.useNotification();
|
|
88
88
|
const location = reactRouterDom.useLocation();
|
|
89
89
|
const navigate = reactRouterDom.useNavigate();
|
|
90
90
|
const { formatMessage } = reactIntl.useIntl();
|
|
91
91
|
const [role, setRole] = React__namespace.useState(null);
|
|
92
92
|
const [otherRole, setOtherRole] = React__namespace.useState("");
|
|
93
|
-
const { firstname, email } =
|
|
93
|
+
const { firstname, email } = rbac.useAuth("UseCasePage", (state) => state.user) ?? {};
|
|
94
94
|
const { hasAdmin } = qs.parse(location.search, { ignoreQueryPrefix: true });
|
|
95
95
|
const isOther = role === "other";
|
|
96
96
|
const handleSubmit = async (event, skipPersona) => {
|
|
@@ -172,4 +172,4 @@ const PrivateUseCasePage = () => {
|
|
|
172
172
|
exports.PrivateUseCasePage = PrivateUseCasePage;
|
|
173
173
|
exports.UseCasePage = UseCasePage;
|
|
174
174
|
exports.options = options;
|
|
175
|
-
//# sourceMappingURL=UseCasePage-
|
|
175
|
+
//# sourceMappingURL=UseCasePage-qrhHiF5S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage-PzT7YQgK.js","sources":["../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n Option,\n Select,\n TextButton,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst TypographyCenter = styled(Typography)`\n text-align: center;\n`;\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch('https://analytics.strapi.io/register', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`${250 / 16}rem`}>\n <TypographyCenter variant=\"alpha\" as=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </TypographyCenter>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Select\n id=\"usecase\"\n data-testid=\"usecase\"\n label={formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n // onClear={() => setRole(null)}\n // clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(value) => setRole(value)}\n value={role}\n >\n {options.map(({ intlLabel, value }) => (\n <Option key={value} value={value}>\n {formatMessage(intlLabel)}\n </Option>\n ))}\n </Select>\n {isOther && (\n <TextInput\n name=\"other\"\n label={formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n data-testid=\"other\"\n />\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton onClick={(event) => handleSubmit(event, true)}>\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["styled","Typography","useNotification","useLocation","useNavigate","useIntl","React","useAuth","parse","jsx","UnauthenticatedLayout","jsxs","Main","LayoutContent","Flex","Logo","Box","Select","Option","TextInput","Button","TextButton","PrivateRoute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseCasePage-qrhHiF5S.js","sources":["../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n Option,\n Select,\n TextButton,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst TypographyCenter = styled(Typography)`\n text-align: center;\n`;\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch('https://analytics.strapi.io/register', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`${250 / 16}rem`}>\n <TypographyCenter variant=\"alpha\" as=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </TypographyCenter>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Select\n id=\"usecase\"\n data-testid=\"usecase\"\n label={formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n // onClear={() => setRole(null)}\n // clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(value) => setRole(value)}\n value={role}\n >\n {options.map(({ intlLabel, value }) => (\n <Option key={value} value={value}>\n {formatMessage(intlLabel)}\n </Option>\n ))}\n </Select>\n {isOther && (\n <TextInput\n name=\"other\"\n label={formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n data-testid=\"other\"\n />\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton onClick={(event) => handleSubmit(event, true)}>\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["styled","Typography","useNotification","useLocation","useNavigate","useIntl","React","useAuth","parse","jsx","UnauthenticatedLayout","jsxs","Main","LayoutContent","Flex","Logo","Box","Select","Option","TextInput","Button","TextButton","PrivateRoute"],"mappings":"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"}
|
|
@@ -151,6 +151,16 @@ const { useRegenerateTokenMutation } = adminApi;
|
|
|
151
151
|
const prefixFileUrlWithBackendUrl = (fileURL) => {
|
|
152
152
|
return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
|
|
153
153
|
};
|
|
154
|
+
const createAbsoluteUrl = (url) => {
|
|
155
|
+
if (!url) {
|
|
156
|
+
return window.location.origin;
|
|
157
|
+
}
|
|
158
|
+
if (url.startsWith("/")) {
|
|
159
|
+
return new URL(url, window.location.origin).toString();
|
|
160
|
+
} else {
|
|
161
|
+
return url;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
154
164
|
|
|
155
165
|
const admin = adminApi.injectEndpoints({
|
|
156
166
|
endpoints: (builder) => ({
|
|
@@ -242,5 +252,5 @@ const {
|
|
|
242
252
|
useGetLicenseLimitsQuery
|
|
243
253
|
} = admin;
|
|
244
254
|
|
|
245
|
-
export { useGetPluginsQuery as a, adminApi as b, useInformationQuery as c, useRegenerateTokenMutation as d, useInitQuery as e, useTelemetryPropertiesQuery as f, useProjectSettingsQuery as g, useUpdateProjectSettingsMutation as h, isBaseQueryError as i,
|
|
246
|
-
//# sourceMappingURL=admin-
|
|
255
|
+
export { useGetPluginsQuery as a, adminApi as b, useInformationQuery as c, useRegenerateTokenMutation as d, useInitQuery as e, useTelemetryPropertiesQuery as f, useProjectSettingsQuery as g, useUpdateProjectSettingsMutation as h, isBaseQueryError as i, createAbsoluteUrl as j, getFetchClient as k, useGetLicenseLimitsQuery as u };
|
|
256
|
+
//# sourceMappingURL=admin-DUKhYsmP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-DUKhYsmP.mjs","sources":["../../admin/src/utils/getFetchClient.ts","../../admin/src/utils/baseQuery.ts","../../admin/src/services/api.ts","../../admin/src/utils/urls.ts","../../admin/src/services/admin.ts"],"sourcesContent":["import axios, { AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';\nimport qs from 'qs';\n\nconst STORAGE_KEYS = {\n TOKEN: 'jwtToken',\n USER: 'userInfo',\n};\n\nconst fetchClient = (): AxiosInstance => {\n const instance = axios.create({\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n paramsSerializer: (params) => {\n return qs.stringify(params, { encode: false });\n },\n });\n\n // Add a request interceptor to add authorization token to headers, rejects errors\n instance.interceptors.request.use(\n async (config) => {\n config.headers.Authorization = `Bearer ${getToken()}`;\n\n return config;\n },\n (error) => Promise.reject(error)\n );\n\n // Add a response interceptor to return the response or handle the error\n instance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error?.response?.status === 401) {\n clearItem(STORAGE_KEYS.TOKEN);\n clearItem(STORAGE_KEYS.USER);\n\n window.location.reload();\n }\n\n throw error;\n }\n );\n\n return instance;\n};\n\nconst clearItem = (key: string) => {\n if (window.localStorage.getItem(key)) {\n return window.localStorage.removeItem(key);\n }\n\n if (window.sessionStorage.getItem(key)) {\n return window.sessionStorage.removeItem(key);\n }\n};\n\nconst getToken = () =>\n JSON.parse(\n localStorage.getItem(STORAGE_KEYS.TOKEN) ?? sessionStorage.getItem(STORAGE_KEYS.TOKEN) ?? '\"\"'\n );\n\nconst instance = fetchClient();\n\nconst addPrependingSlash = (url: string) => (url.charAt(0) !== '/' ? `/${url}` : url);\n\n// This regular expression matches a string that starts with either \"http://\" or \"https://\" or any other protocol name in lower case letters, followed by \"://\" and ends with anything else\nconst hasProtocol = (url: string) => new RegExp('^(?:[a-z+]+:)?//', 'i').test(url);\n\n// Check if the url has a prepending slash, if not add a slash\nconst normalizeUrl = (url: string) => (hasProtocol(url) ? url : addPrependingSlash(url));\n\ntype FetchClient = {\n get: <TData = any, R = AxiosResponse<TData>, TSend = any>(\n url: string,\n config?: AxiosRequestConfig<TSend>\n ) => Promise<R>;\n put: <TData = any, R = AxiosResponse<TData>, TSend = any>(\n url: string,\n data?: TSend,\n config?: AxiosRequestConfig<TSend>\n ) => Promise<R>;\n post: <TData = any, R = AxiosResponse<TData>, TSend = any>(\n url: string,\n data?: TSend,\n config?: AxiosRequestConfig<TSend>\n ) => Promise<R>;\n del: <TData = any, R = AxiosResponse<TData>, TSend = any>(\n url: string,\n config?: AxiosRequestConfig<TSend>\n ) => Promise<R>;\n};\n\n/**\n * @public\n * @param {AxiosRequestConfig} [defaultOptions={}] - Default options for Axios requests.\n * @returns {FetchClient} A fetch client object with methods for making HTTP requests.\n * @description This is an abstraction around the axios instance exposed by a function. It provides a simple interface to handle API calls\n * to the Strapi backend.\n * @example\n * ```tsx\n * import { getFetchClient } from '@strapi/admin/admin';\n *\n * const myFunct = () => {\n * const { get } = getFetchClient();\n * const requestURL = \"/some-endpoint\";\n *\n * const { data } = await get(requestURL);\n *\n * return data;\n * };\n * ```\n */\nconst getFetchClient = (defaultOptions: AxiosRequestConfig = {}): FetchClient => {\n instance.defaults.baseURL = window.strapi.backendURL;\n return {\n get: (url, config) =>\n instance.get(normalizeUrl(url), {\n ...defaultOptions,\n ...config,\n }),\n put: (url, data, config) =>\n instance.put(normalizeUrl(url), data, { ...defaultOptions, ...config }),\n post: (url, data, config) =>\n instance.post(normalizeUrl(url), data, { ...defaultOptions, ...config }),\n del: (url, config) => instance.delete(normalizeUrl(url), { ...defaultOptions, ...config }),\n };\n};\n\nexport { instance, getFetchClient };\n","import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\nimport { isAxiosError, type AxiosRequestConfig } from 'axios';\n\nimport { getFetchClient } from '../utils/getFetchClient';\n\nimport type { ApiError } from '../hooks/useAPIErrorHandler';\n\n/* -------------------------------------------------------------------------------------------------\n * Axios data\n * -----------------------------------------------------------------------------------------------*/\nexport interface QueryArguments {\n url: string;\n method?: AxiosRequestConfig['method'];\n data?: AxiosRequestConfig['data'];\n config?: AxiosRequestConfig;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError;\n\nconst axiosBaseQuery =\n (): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient();\n\n if (typeof query === 'string') {\n const result = await get(query, { signal });\n return { data: result.data };\n } else {\n const { url, method = 'GET', data, config } = query;\n\n if (method === 'POST') {\n const result = await post(url, data, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, { ...config, signal });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, { ...config, signal });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type AxiosError\n *\n * This format mimics what we want from an AxiosError which is what the\n * rest of the app works with, except this format is \"serializable\" since\n * it goes into the redux store.\n *\n * NOTE – passing the whole response will highlight this \"serializability\" issue.\n */\n\n if (isAxiosError(err)) {\n if (\n typeof err.response?.data === 'object' &&\n err.response?.data !== null &&\n 'error' in err.response?.data\n ) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: err.response?.data.error };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: 'There was an unknown error response from the API',\n details: err.response?.data,\n status: err.response?.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err as Error;\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n };\n\nconst isBaseQueryError = (error: BaseQueryError | SerializedError): error is BaseQueryError => {\n return error.name !== undefined;\n};\n\nexport { axiosBaseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { TokenRegenerate } from '../../../shared/contracts/transfer';\nimport { axiosBaseQuery, type UnknownApiError } from '../utils/baseQuery';\n\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: axiosBaseQuery(),\n tagTypes: [\n 'ApiToken',\n 'LicenseLimits',\n 'Me',\n 'ProjectSettings',\n 'ProvidersOptions',\n 'Role',\n 'RolePermissions',\n 'TransferToken',\n 'User',\n 'Webhook',\n ],\n endpoints: (builder) => ({\n /**\n * This is here because it's shared between the transfer-token routes & the api-tokens.\n */\n regenerateToken: builder.mutation<TokenRegenerate.Response['data'], string>({\n query: (url) => ({\n method: 'POST',\n url: `${url}/regenerate`,\n }),\n transformResponse: (response: TokenRegenerate.Response) => response.data,\n }),\n }),\n});\n\nconst { useRegenerateTokenMutation } = adminApi;\n\nexport { adminApi, type UnknownApiError, useRegenerateTokenMutation };\n","const prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\n/**\n * @description Creates an absolute URL, if there is no URL or it\n * is relative, we use the `window.location.origin` as a fallback.\n * IF it's an absolute URL, we return it as is.\n */\nconst createAbsoluteUrl = (url?: string): string => {\n if (!url) {\n return window.location.origin;\n }\n if (url.startsWith('/')) {\n /**\n * This will also manage protocol relative URLs which is fine because\n * as we can see from the test, we still get the expected result.\n */\n return new URL(url, window.location.origin).toString();\n } else {\n return url;\n }\n};\n\nexport { createAbsoluteUrl, prefixFileUrlWithBackendUrl };\n","import {\n type TelemetryProperties,\n type Init,\n type Information,\n type GetProjectSettings,\n type UpdateProjectSettings,\n type Plugins,\n type GetLicenseLimitInformation,\n} from '../../../shared/contracts/admin';\nimport { prefixFileUrlWithBackendUrl } from '../utils/urls';\n\nimport { adminApi } from './api';\n\ninterface ConfigurationLogo {\n custom?: {\n name?: string;\n url?: string;\n };\n default: string;\n}\n\nconst admin = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n init: builder.query<Init.Response['data'], void>({\n query: () => ({\n url: '/admin/init',\n method: 'GET',\n }),\n transformResponse(res: Init.Response) {\n return res.data;\n },\n }),\n information: builder.query<Information.Response['data'], void>({\n query: () => ({\n url: '/admin/information',\n method: 'GET',\n }),\n transformResponse(res: Information.Response) {\n return res.data;\n },\n }),\n telemetryProperties: builder.query<TelemetryProperties.Response['data'], void>({\n query: () => ({\n url: '/admin/telemetry-properties',\n method: 'GET',\n config: {\n validateStatus: (status) => status < 500,\n },\n }),\n transformResponse(res: TelemetryProperties.Response) {\n return res.data;\n },\n }),\n projectSettings: builder.query<\n { authLogo?: ConfigurationLogo['custom']; menuLogo?: ConfigurationLogo['custom'] },\n void\n >({\n query: () => ({\n url: '/admin/project-settings',\n method: 'GET',\n }),\n providesTags: ['ProjectSettings'],\n transformResponse(data: GetProjectSettings.Response) {\n return {\n authLogo: data.authLogo\n ? {\n name: data.authLogo.name,\n url: prefixFileUrlWithBackendUrl(data.authLogo.url),\n }\n : undefined,\n menuLogo: data.menuLogo\n ? {\n name: data.menuLogo.name,\n url: prefixFileUrlWithBackendUrl(data.menuLogo.url),\n }\n : undefined,\n };\n },\n }),\n updateProjectSettings: builder.mutation<UpdateProjectSettings.Response, FormData>({\n query: (data) => ({\n url: '/admin/project-settings',\n method: 'POST',\n data,\n config: {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n }),\n invalidatesTags: ['ProjectSettings'],\n }),\n getPlugins: builder.query<Plugins.Response, void>({\n query: () => ({\n url: '/admin/plugins',\n method: 'GET',\n }),\n }),\n getLicenseLimits: builder.query<GetLicenseLimitInformation.Response, void>({\n query: () => ({\n url: '/admin/license-limit-information',\n method: 'GET',\n }),\n providesTags: ['LicenseLimits'],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n} = admin;\n\nexport {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n};\n\nexport type { ConfigurationLogo };\n"],"names":["instance","qs","result"],"mappings":"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"}
|