@strapi/admin 5.10.3 → 5.11.0
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/chunks/{ApplicationInfoPage-DiEcqVEU.mjs → ApplicationInfoPage-BZwUO73O.mjs} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs.map → ApplicationInfoPage-BZwUO73O.mjs.map} +1 -1
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js → ApplicationInfoPage-DJOazrYK.js} +2 -2
- package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js.map → ApplicationInfoPage-DJOazrYK.js.map} +1 -1
- package/dist/admin/chunks/{AuthenticatedLayout-D_VSoB1l.js → AuthenticatedLayout-Dy75FZrh.js} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-Dy75FZrh.js.map +1 -0
- package/dist/admin/chunks/{AuthenticatedLayout-C9eZ12Ue.mjs → AuthenticatedLayout-jDyinb04.mjs} +7 -6
- package/dist/admin/chunks/AuthenticatedLayout-jDyinb04.mjs.map +1 -0
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs → CreatePage-BO4p8eVo.mjs} +2 -2
- package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs.map → CreatePage-BO4p8eVo.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js → CreatePage-Bgs19RIr.js} +2 -2
- package/dist/admin/chunks/{CreatePage-DbmpFjHt.js.map → CreatePage-Bgs19RIr.js.map} +1 -1
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs → CreatePage-CvMkpe3b.mjs} +3 -3
- package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs.map → CreatePage-CvMkpe3b.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js → CreatePage-D0kjwP8s.js} +3 -3
- package/dist/admin/chunks/{CreatePage-DkzHz0zk.js.map → CreatePage-D0kjwP8s.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs → CreateView-B5Rq5Uhw.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-CmubtWzn.mjs.map → CreateView-B5Rq5Uhw.mjs.map} +1 -1
- package/dist/admin/chunks/{CreateView-CE4-drK6.js → CreateView-DCsm2KBZ.js} +4 -4
- package/dist/admin/chunks/{CreateView-CE4-drK6.js.map → CreateView-DCsm2KBZ.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js → CreateView-DGq7e-Zm.js} +4 -4
- package/dist/admin/chunks/{CreateView-yjsS9KUJ.js.map → CreateView-DGq7e-Zm.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs → CreateView-h_bF5XrZ.mjs} +4 -4
- package/dist/admin/chunks/{CreateView-DZaIevIB.mjs.map → CreateView-h_bF5XrZ.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js → EditPage-85v6bKcJ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CNaAuT5C.js.map → EditPage-85v6bKcJ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs → EditPage-CBrPs4kH.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-C44OaxjN.mjs.map → EditPage-CBrPs4kH.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs → EditPage-CFSx_zaS.mjs} +3 -3
- package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs.map → EditPage-CFSx_zaS.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-CycQlsFL.js → EditPage-CK8pIRKZ.js} +3 -3
- package/dist/admin/chunks/{EditPage-CycQlsFL.js.map → EditPage-CK8pIRKZ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js → EditPage-DHtr1mq1.js} +6 -6
- package/dist/admin/chunks/{EditPage-BrMhV8aB.js.map → EditPage-DHtr1mq1.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs → EditPage-DrT9bgfE.mjs} +6 -6
- package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs.map → EditPage-DrT9bgfE.mjs.map} +1 -1
- package/dist/admin/chunks/{EditView-C9cKaoY1.js → EditView-CfJxHMkF.js} +3 -3
- package/dist/admin/chunks/{EditView-C9cKaoY1.js.map → EditView-CfJxHMkF.js.map} +1 -1
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs → EditView-XfGT5Bj1.mjs} +3 -3
- package/dist/admin/chunks/{EditView-CFIkvFrt.mjs.map → EditView-XfGT5Bj1.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs → EditViewPage-BLftPAqX.mjs} +3 -3
- package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs.map → EditViewPage-BLftPAqX.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js → EditViewPage-Dvm8m28e.js} +3 -3
- package/dist/admin/chunks/{EditViewPage-DBga-70A.js.map → EditViewPage-Dvm8m28e.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js → EventsTable-C1FNa1mh.js} +3 -3
- package/dist/admin/chunks/{EventsTable-fkWvAMuL.js.map → EventsTable-C1FNa1mh.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs → EventsTable-aDYIp-4O.mjs} +3 -3
- package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs.map → EventsTable-aDYIp-4O.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js → HomePage-8CeDS3qO.js} +3 -3
- package/dist/admin/chunks/{HomePage-CVc0RfvD.js.map → HomePage-8CeDS3qO.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-B2skN1xt.js → HomePage-BKwoMagC.js} +3 -3
- package/dist/admin/chunks/{HomePage-B2skN1xt.js.map → HomePage-BKwoMagC.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs → HomePage-BRggBAHf.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-DGTeFboL.mjs.map → HomePage-BRggBAHf.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs → HomePage-DuRHJoC7.mjs} +3 -3
- package/dist/admin/chunks/{HomePage-MfOqcIag.mjs.map → HomePage-DuRHJoC7.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs → InstalledPlugins-23tOdYYB.mjs} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs.map → InstalledPlugins-23tOdYYB.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js → InstalledPlugins-z8ODfbJj.js} +2 -2
- package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js.map → InstalledPlugins-z8ODfbJj.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DST1PxaO.js → Layout-BZgwh-LZ.js} +3 -3
- package/dist/admin/chunks/{Layout-DST1PxaO.js.map → Layout-BZgwh-LZ.js.map} +1 -1
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs → Layout-CmzbGRtV.mjs} +3 -3
- package/dist/admin/chunks/{Layout-DYjtK6iP.mjs.map → Layout-CmzbGRtV.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs → ListPage-BE3aimOU.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs.map → ListPage-BE3aimOU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CWINpwfS.js → ListPage-BRVhZryp.js} +6 -6
- package/dist/admin/chunks/{ListPage-CWINpwfS.js.map → ListPage-BRVhZryp.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs → ListPage-BuFQNHRU.mjs} +3 -3
- package/dist/admin/chunks/{ListPage-srJutHdv.mjs.map → ListPage-BuFQNHRU.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-CLXy5r60.js → ListPage-C46MNvAQ.js} +3 -3
- package/dist/admin/chunks/{ListPage-CLXy5r60.js.map → ListPage-C46MNvAQ.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs → ListPage-CTxfjKUP.mjs} +2 -2
- package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs.map → ListPage-CTxfjKUP.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs → ListPage-CovdXetq.mjs} +6 -6
- package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs.map → ListPage-CovdXetq.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BgyypnOM.js → ListPage-D7fIXyTM.js} +5 -5
- package/dist/admin/chunks/{ListPage-BgyypnOM.js.map → ListPage-D7fIXyTM.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs → ListPage-DoR-NV6v.mjs} +5 -5
- package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs.map → ListPage-DoR-NV6v.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-D21yUih2.js → ListPage-SVEmrFSg.js} +2 -2
- package/dist/admin/chunks/{ListPage-D21yUih2.js.map → ListPage-SVEmrFSg.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js → ListPage-fOcHewxm.js} +2 -2
- package/dist/admin/chunks/{ListPage-DbfL2rpi.js.map → ListPage-fOcHewxm.js.map} +1 -1
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs → ListView-BUbdI3-z.mjs} +3 -3
- package/dist/admin/chunks/{ListView--KzJiQiO.mjs.map → ListView-BUbdI3-z.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js → ListView-CGHuleNQ.js} +3 -3
- package/dist/admin/chunks/{ListView-DzwvQ8nW.js.map → ListView-CGHuleNQ.js.map} +1 -1
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs → ListView-DxPGNDw_.mjs} +3 -3
- package/dist/admin/chunks/{ListView-CoGoDDiF.mjs.map → ListView-DxPGNDw_.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-DGfxO89i.js → ListView-HZFAPppY.js} +3 -3
- package/dist/admin/chunks/{ListView-DGfxO89i.js.map → ListView-HZFAPppY.js.map} +1 -1
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs → Login-B_Z4SJVp.mjs} +2 -2
- package/dist/admin/chunks/{Login-Dtkhd0GV.mjs.map → Login-B_Z4SJVp.mjs.map} +1 -1
- package/dist/admin/chunks/{Login-Iw84AH9L.js → Login-CjRacmoJ.js} +2 -2
- package/dist/admin/chunks/{Login-Iw84AH9L.js.map → Login-CjRacmoJ.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js → MagicLinkEE-DZLJwQiC.js} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js.map → MagicLinkEE-DZLJwQiC.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs → MagicLinkEE-Oh6er0ux.mjs} +4 -4
- package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs.map → MagicLinkEE-Oh6er0ux.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs → MarketplacePage-BUksRtFV.mjs} +2 -2
- package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs.map → MarketplacePage-BUksRtFV.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js → MarketplacePage-D-PvEBXN.js} +2 -2
- package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js.map → MarketplacePage-D-PvEBXN.js.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs → ProfilePage-D0cczhuo.mjs} +3 -3
- package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs.map → ProfilePage-D0cczhuo.mjs.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js → ProfilePage-DghUK7p_.js} +3 -3
- package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js.map → ProfilePage-DghUK7p_.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js → PurchaseAuditLogs-BIBa5E6F.js} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js.map → PurchaseAuditLogs-BIBa5E6F.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs → PurchaseAuditLogs-BOqpGLyP.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs.map → PurchaseAuditLogs-BOqpGLyP.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs → PurchaseContentHistory-DqyUHK_8.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs.map → PurchaseContentHistory-DqyUHK_8.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js → PurchaseContentHistory-y25nmJsq.js} +2 -2
- package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js.map → PurchaseContentHistory-y25nmJsq.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js → PurchaseSingleSignOn-DloQ-NfU.js} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js.map → PurchaseSingleSignOn-DloQ-NfU.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs → PurchaseSingleSignOn-L8wgCpHG.mjs} +2 -2
- package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs.map → PurchaseSingleSignOn-L8wgCpHG.mjs.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js → SelectRoles-ChZyGpDA.js} +3 -3
- package/dist/admin/chunks/{SelectRoles-CKInlnSd.js.map → SelectRoles-ChZyGpDA.js.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs → SelectRoles-hAMu1PFv.mjs} +3 -3
- package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs.map → SelectRoles-hAMu1PFv.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs → SingleSignOnPage-B-NIM66a.mjs} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs.map → SingleSignOnPage-B-NIM66a.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js → SingleSignOnPage-D-JNyyk2.js} +3 -3
- package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js.map → SingleSignOnPage-D-JNyyk2.js.map} +1 -1
- package/dist/admin/chunks/{Table-CBZnqMuN.js → Table-U6zMuKE5.js} +2 -2
- package/dist/admin/chunks/{Table-CBZnqMuN.js.map → Table-U6zMuKE5.js.map} +1 -1
- package/dist/admin/chunks/{Table-BohVeu0r.mjs → Table-b4wXHsis.mjs} +2 -2
- package/dist/admin/chunks/{Table-BohVeu0r.mjs.map → Table-b4wXHsis.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs → TokenTypeSelect-BUFFAUgx.mjs} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs.map → TokenTypeSelect-BUFFAUgx.mjs.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js → TokenTypeSelect-DCa4dg3r.js} +2 -2
- package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js.map → TokenTypeSelect-DCa4dg3r.js.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs → UseCasePage-BlHgNz7W.mjs} +2 -2
- package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs.map → UseCasePage-BlHgNz7W.mjs.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js → UseCasePage-CYCPZztF.js} +2 -2
- package/dist/admin/chunks/{UseCasePage-CipG2GC4.js.map → UseCasePage-CYCPZztF.js.map} +1 -1
- package/dist/admin/chunks/{constants-BddeukI7.mjs → constants-BY_PZgf3.mjs} +2 -2
- package/dist/admin/chunks/{constants-BddeukI7.mjs.map → constants-BY_PZgf3.mjs.map} +1 -1
- package/dist/admin/chunks/{constants-CaerHoe3.js → constants-D3gM8ElF.js} +2 -2
- package/dist/admin/chunks/{constants-CaerHoe3.js.map → constants-D3gM8ElF.js.map} +1 -1
- package/dist/admin/chunks/{index-HGaughzt.js → index-BdqtLS-k.js} +32 -32
- package/dist/admin/chunks/{index-HGaughzt.js.map → index-BdqtLS-k.js.map} +1 -1
- package/dist/admin/chunks/{index-BM8-DG5K.mjs → index-C3BO0YZa.mjs} +32 -32
- package/dist/admin/chunks/{index-BM8-DG5K.mjs.map → index-C3BO0YZa.mjs.map} +1 -1
- package/dist/admin/chunks/uk-D7QEPfXn.mjs +788 -0
- package/dist/admin/chunks/uk-D7QEPfXn.mjs.map +1 -0
- package/dist/admin/chunks/uk-WdcESeZB.js +807 -0
- package/dist/admin/chunks/uk-WdcESeZB.js.map +1 -0
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs → useAdminRoles-D68i2BI_.mjs} +2 -2
- package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs.map → useAdminRoles-D68i2BI_.mjs.map} +1 -1
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js → useAdminRoles-Dy5KXk0R.js} +2 -2
- package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js.map → useAdminRoles-Dy5KXk0R.js.map} +1 -1
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs → validation-XFv2h8gD.mjs} +2 -2
- package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs.map → validation-XFv2h8gD.mjs.map} +1 -1
- package/dist/admin/chunks/{validation-dPl3P7dv.js → validation-sucpUItn.js} +2 -2
- package/dist/admin/chunks/{validation-dPl3P7dv.js.map → validation-sucpUItn.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +0 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +0 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +0 -1
- package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +0 -1
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +0 -201
- package/dist/admin/chunks/uk-Cb6a0PAZ.mjs.map +0 -1
- package/dist/admin/chunks/uk-gz16FlMw.js +0 -212
- package/dist/admin/chunks/uk-gz16FlMw.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticatedLayout-jDyinb04.mjs","sources":["../../../admin/src/components/GuidedTour/Modal.tsx","../../../admin/src/components/MainNav/MainNav.tsx","../../../admin/src/components/MainNav/NavBrand.tsx","../../../admin/src/components/MainNav/NavLink.tsx","../../../admin/src/components/MainNav/NavUser.tsx","../../../admin/src/components/LeftMenu.tsx","../../../admin/src/components/PluginsInitializer.tsx","../../../admin/src/hooks/useMenu.ts","../../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n FlexComponent,\n FocusTrap,\n IconButton,\n Portal,\n Typography,\n LinkButton,\n} from '@strapi/design-system';\nimport { ArrowRight, Cross } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { LAYOUT_DATA, STATES } from './constants';\nimport { Number, VerticalDivider } from './Ornaments';\nimport { GuidedTourContextValue, useGuidedTour } from './Provider';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourModal = () => {\n const guidedTour = useGuidedTour('GuidedTourModal', (state) => state);\n\n const {\n currentStep,\n guidedTourState,\n setCurrentStep,\n setStepState,\n isGuidedTourVisible,\n setSkipped,\n } = guidedTour;\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n if (!currentStep || !isGuidedTourVisible) {\n return null;\n }\n\n const stepData = get(LAYOUT_DATA, currentStep);\n const sectionKeys = Object.keys(guidedTourState);\n const [sectionName, stepName] = currentStep.split('.') as [\n keyof GuidedTourContextValue['guidedTourState'],\n string,\n ];\n const sectionIndex = sectionKeys.indexOf(sectionName);\n const stepIndex = Object.keys(guidedTourState[sectionName]).indexOf(stepName);\n const hasSectionAfter = sectionIndex < sectionKeys.length - 1;\n const hasStepAfter = stepIndex < Object.keys(guidedTourState[sectionName]).length - 1;\n\n const handleCtaClick = () => {\n setStepState(currentStep, true);\n\n if (stepData) {\n trackUsage(stepData.trackingEvent);\n }\n\n setCurrentStep(null);\n };\n\n const handleSkip = () => {\n setSkipped(true);\n setCurrentStep(null);\n trackUsage('didSkipGuidedtour');\n };\n\n return (\n <Portal>\n <ModalWrapper onClick={handleCtaClick} padding={8} justifyContent=\"center\">\n <FocusTrap onEscape={handleCtaClick}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n background=\"neutral0\"\n width={`66rem`}\n shadow=\"popupShadow\"\n hasRadius\n padding={4}\n gap={8}\n role=\"dialog\"\n aria-modal\n onClick={(e) => e.stopPropagation()}\n >\n <Flex justifyContent=\"flex-end\">\n <IconButton\n onClick={handleCtaClick}\n withTooltip={false}\n label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n >\n <Cross />\n </IconButton>\n </Flex>\n <Box\n paddingLeft={7}\n paddingRight={7}\n paddingBottom={!hasStepAfter && !hasSectionAfter ? 8 : 0}\n >\n <GuidedTourStepper\n title={stepData && 'title' in stepData ? stepData.title : undefined}\n cta={stepData && 'cta' in stepData ? stepData.cta : undefined}\n onCtaClick={handleCtaClick}\n sectionIndex={sectionIndex}\n stepIndex={stepIndex}\n hasSectionAfter={hasSectionAfter}\n >\n {stepData && 'content' in stepData && <GuidedTourContent {...stepData.content} />}\n </GuidedTourStepper>\n </Box>\n {!(!hasStepAfter && !hasSectionAfter) && (\n <Flex justifyContent=\"flex-end\">\n <Button variant=\"tertiary\" onClick={handleSkip}>\n {formatMessage({\n id: 'app.components.GuidedTour.skip',\n defaultMessage: 'Skip the tour',\n })}\n </Button>\n </Flex>\n )}\n </Flex>\n </FocusTrap>\n </ModalWrapper>\n </Portal>\n );\n};\n\nconst ModalWrapper = styled<FlexComponent>(Flex)`\n position: fixed;\n z-index: 4;\n inset: 0;\n /* this is theme.colors.neutral800 with opacity */\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourStepper\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourStepperProps {\n title: MessageDescriptor | undefined;\n children: React.ReactNode;\n cta?: {\n title: MessageDescriptor;\n target?: string;\n };\n onCtaClick: () => void;\n sectionIndex: number;\n stepIndex: number;\n hasSectionAfter: boolean;\n}\n\nconst GuidedTourStepper = ({\n title,\n children,\n cta,\n onCtaClick,\n sectionIndex,\n stepIndex,\n hasSectionAfter,\n}: GuidedTourStepperProps) => {\n const { formatMessage } = useIntl();\n\n const hasSectionBefore = sectionIndex > 0;\n const hasStepsBefore = stepIndex > 0;\n const nextSectionIndex = sectionIndex + 1;\n\n return (\n <>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} justifyContent=\"center\" minWidth={`3rem`}>\n {hasSectionBefore && <VerticalDivider state={STATES.IS_DONE} minHeight={`2.4rem`} />}\n </Flex>\n <Typography variant=\"sigma\" textColor=\"primary600\">\n {formatMessage({\n id: 'app.components.GuidedTour.title',\n defaultMessage: '3 steps to get started',\n })}\n </Typography>\n </Flex>\n <Flex>\n <Flex marginRight={8} minWidth={`3rem`}>\n <Number\n state={hasStepsBefore ? STATES.IS_DONE : STATES.IS_ACTIVE}\n paddingTop={3}\n paddingBottom={3}\n >\n {sectionIndex + 1}\n </Number>\n </Flex>\n {title && (\n <Typography variant=\"alpha\" fontWeight=\"bold\" textColor=\"neutral800\" tag=\"h3\" id=\"title\">\n {formatMessage(title)}\n </Typography>\n )}\n </Flex>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} direction=\"column\" justifyContent=\"center\" minWidth={`3rem`}>\n {hasSectionAfter && (\n <>\n <VerticalDivider state={STATES.IS_DONE} />\n {hasStepsBefore && (\n <Number state={STATES.IS_ACTIVE} paddingTop={3}>\n {nextSectionIndex + 1}\n </Number>\n )}\n </>\n )}\n </Flex>\n <Box>\n {children}\n {cta &&\n (cta.target ? (\n <LinkButton\n tag={NavLink}\n endIcon={<ArrowRight />}\n onClick={onCtaClick}\n to={cta.target}\n >\n {formatMessage(cta.title)}\n </LinkButton>\n ) : (\n <Button endIcon={<ArrowRight />} onClick={onCtaClick}>\n {formatMessage(cta.title)}\n </Button>\n ))}\n </Box>\n </Flex>\n {hasStepsBefore && hasSectionAfter && (\n <Box paddingTop={3}>\n <Flex marginRight={8} justifyContent=\"center\" width={`3rem`}>\n <VerticalDivider state={STATES.IS_DONE} minHeight={`2.4rem`} />\n </Flex>\n </Box>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourContentProps\n extends Required<Pick<MessageDescriptor, 'defaultMessage' | 'id'>> {}\n\nconst GuidedTourContent = ({ id, defaultMessage }: GuidedTourContentProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} paddingBottom={6}>\n {formatMessage(\n { id, defaultMessage },\n {\n documentationLink: DocumentationLink,\n b: Bold,\n p: Paragraph,\n light: Light,\n ul: List,\n li: ListItem,\n }\n )}\n </Flex>\n );\n};\n\nconst DocumentationLink = (children: React.ReactNode) => (\n <Typography\n tag=\"a\"\n textColor=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters\"\n >\n {children}\n </Typography>\n);\n\nconst Bold = (children: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\">{children}</Typography>\n);\n\nconst Paragraph = (children: React.ReactNode) => <Typography>{children}</Typography>;\n\nconst Light = (children: React.ReactNode) => (\n <Typography textColor=\"neutral600\">{children}</Typography>\n);\n\nconst List = (children: React.ReactNode) => (\n <Box paddingLeft={6}>\n <ul>{children}</ul>\n </Box>\n);\n\nconst LiStyled = styled.li`\n list-style: disc;\n &::marker {\n color: ${({ theme }) => theme.colors.neutral800};\n }\n`;\n\nconst ListItem = (children: React.ReactNode) => <LiStyled>{children}</LiStyled>;\n\nexport { GuidedTourModal };\n","import { Flex, FlexComponent, FlexProps } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst MainNavWrapper = styled<FlexComponent<'nav'>>(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst MainNav = (props: FlexProps<'nav'>) => (\n <MainNavWrapper\n alignItems=\"normal\"\n tag=\"nav\"\n background=\"neutral0\"\n direction=\"column\"\n height=\"100vh\"\n position=\"sticky\"\n top={0}\n zIndex={2}\n width={10}\n {...props}\n />\n);\n\nexport { MainNav };\n","import { Box, Flex, type FlexComponent, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useConfiguration } from '../../features/Configuration';\n\nconst BrandIconWrapper = styled<FlexComponent>(Flex)`\n svg,\n img {\n border-radius: ${({ theme }) => theme.borderRadius};\n object-fit: contain;\n height: 2.4rem;\n width: 2.4rem;\n }\n`;\n\nexport const NavBrand = () => {\n const { formatMessage } = useIntl();\n const {\n logos: { menu },\n } = useConfiguration('LeftMenu');\n return (\n <Box padding={3}>\n <BrandIconWrapper direction=\"column\" justifyContent=\"center\" width=\"3.2rem\" height=\"3.2rem\">\n <img\n src={menu.custom?.url || menu.default}\n alt={formatMessage({\n id: 'app.components.LeftMenu.logo.alt',\n defaultMessage: 'Application logo',\n })}\n width=\"100%\"\n height=\"100%\"\n />\n <VisuallyHidden>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.title',\n defaultMessage: 'Strapi Dashboard',\n })}\n </span>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.workplace',\n defaultMessage: 'Workplace',\n })}\n </span>\n </VisuallyHidden>\n </BrandIconWrapper>\n </Box>\n );\n};\n","import * as React from 'react';\n\nimport {\n Tooltip,\n TooltipProps as DSTooltipProps,\n Badge,\n BadgeProps,\n AccessibleIcon,\n} from '@strapi/design-system';\nimport { NavLink as RouterLink, LinkProps } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * Link\n * -----------------------------------------------------------------------------------------------*/\nconst MainNavLinkWrapper = styled(RouterLink)`\n text-decoration: none;\n display: flex;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral500};\n position: relative;\n width: fit-content;\n padding-block: 0.6rem;\n padding-inline: 0.6rem;\n\n &:hover {\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n &.active {\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\nconst LinkImpl = ({ children, ...props }: LinkProps) => {\n return <MainNavLinkWrapper {...props}>{children}</MainNavLinkWrapper>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\nconst TooltipImpl = ({ children, label, position = 'right' }: NavLink.TooltipProps) => {\n return (\n <Tooltip side={position} label={label} delayDuration={0}>\n <span>{children}</span>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Icon\n * -----------------------------------------------------------------------------------------------*/\nconst IconImpl = ({ label, children }: { label: string; children: React.ReactNode }) => {\n if (!children) {\n return null;\n }\n return <AccessibleIcon label={label}>{children}</AccessibleIcon>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Badge\n * -----------------------------------------------------------------------------------------------*/\nconst CustomBadge = styled(Badge)`\n /* override default badge styles to change the border radius of the Base element in the Design System */\n border-radius: ${({ theme }) => theme.spaces[10]};\n height: 2rem;\n`;\n\nconst BadgeImpl = ({ children, label, ...props }: NavLink.NavBadgeProps) => {\n if (!children) {\n return null;\n }\n return (\n <CustomBadge\n position=\"absolute\"\n top=\"-0.8rem\"\n left=\"1.7rem\"\n aria-label={label}\n active={false}\n {...props}\n >\n {children}\n </CustomBadge>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst NavLink = {\n Link: LinkImpl,\n Tooltip: TooltipImpl,\n Icon: IconImpl,\n Badge: BadgeImpl,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace NavLink {\n export interface NavBadgeProps extends BadgeProps {\n children: React.ReactNode;\n label: string;\n }\n\n export interface TooltipProps {\n children: React.ReactNode;\n label?: string;\n position?: DSTooltipProps['side'];\n }\n}\n\nexport { NavLink };\n","import * as React from 'react';\n\nimport { Flex, Menu, ButtonProps, VisuallyHidden, Avatar } from '@strapi/design-system';\nimport { SignOut } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../../features/Auth';\n\nexport interface NavUserProps extends ButtonProps {\n initials: string;\n children?: React.ReactNode;\n}\n\nconst MenuTrigger = styled(Menu.Trigger)`\n height: ${({ theme }) => theme.spaces[7]};\n width: ${({ theme }) => theme.spaces[7]};\n border: none;\n border-radius: 50%;\n // Removes inherited 16px padding\n padding: 0;\n // Prevent empty pixel from appearing below the main nav\n overflow: hidden;\n`;\n\nconst MenuContent = styled(Menu.Content)`\n left: ${({ theme }) => theme.spaces[3]};\n`;\n\nconst MenuItem = styled(Menu.Item)`\n & > span {\n width: 100%;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[3]};\n justify-content: space-between;\n }\n`;\n\nconst MenuItemDanger = styled(MenuItem)`\n &:hover {\n ${({ theme }) => `\n background: ${theme.colors.danger100};\n `}\n }\n`;\n\nexport const NavUser = ({ children, initials, ...props }: NavUserProps) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const logout = useAuth('Logout', (state) => state.logout);\n const handleProfile = () => {\n navigate('/me');\n };\n const handleLogout = () => {\n logout();\n navigate('/auth/login');\n };\n\n return (\n <Flex\n justifyContent=\"center\"\n padding={3}\n borderStyle=\"solid\"\n borderWidth=\"1px 0 0 0\"\n borderColor=\"neutral150\"\n {...props}\n >\n <Menu.Root>\n <MenuTrigger endIcon={null} fullWidth justifyContent=\"center\">\n <Avatar.Item delayMs={0} fallback={initials} />\n <VisuallyHidden tag=\"span\">{children}</VisuallyHidden>\n </MenuTrigger>\n <MenuContent popoverPlacement=\"top-center\" zIndex={3}>\n <MenuItem onSelect={handleProfile}>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </MenuItem>\n\n <MenuItemDanger onSelect={handleLogout} color=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Logout',\n })}\n <SignOut />\n </MenuItemDanger>\n </MenuContent>\n </Menu.Root>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName } from '../utils/users';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = userDisplayName\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 2);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"warning500\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n","import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n draftState.plugins[action.pluginId].isReady = true;\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n","import * as React from 'react';\n\nimport { Cog, ShoppingCart, House } from '@strapi/icons';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport { useTypedSelector } from '../core/store/hooks';\nimport { useAuth, AuthContextValue } from '../features/Auth';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/* -------------------------------------------------------------------------------------------------\n * useMenu\n * -----------------------------------------------------------------------------------------------*/\n\nexport type MenuItem = Omit<StrapiAppContextValue['menu'][number], 'Component'>;\n\nexport interface Menu {\n generalSectionLinks: MenuItem[];\n pluginsSectionLinks: MenuItem[];\n isLoading: boolean;\n}\n\nconst useMenu = (shouldUpdateStrapi: boolean) => {\n const checkUserHasPermissions = useAuth('useMenu', (state) => state.checkUserHasPermissions);\n const menu = useStrapiApp('useMenu', (state) => state.menu);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const [menuWithUserPermissions, setMenuWithUserPermissions] = React.useState<Menu>({\n generalSectionLinks: [\n {\n icon: House,\n intlLabel: {\n id: 'global.home',\n defaultMessage: 'Home',\n },\n to: '/',\n permissions: [],\n position: 0,\n },\n {\n icon: ShoppingCart,\n intlLabel: {\n id: 'global.marketplace',\n defaultMessage: 'Marketplace',\n },\n to: '/marketplace',\n permissions: permissions.marketplace?.main ?? [],\n position: 7,\n },\n {\n icon: Cog,\n intlLabel: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n to: '/settings',\n // Permissions of this link are retrieved in the init phase\n // using the settings menu\n permissions: [],\n notificationsCount: 0,\n position: 9,\n },\n ],\n pluginsSectionLinks: [],\n isLoading: true,\n });\n const generalSectionLinksRef = React.useRef(menuWithUserPermissions.generalSectionLinks);\n\n React.useEffect(() => {\n async function applyMenuPermissions() {\n const authorizedPluginSectionLinks = await getPluginSectionLinks(\n menu,\n checkUserHasPermissions\n );\n\n const authorizedGeneralSectionLinks = await getGeneralLinks(\n generalSectionLinksRef.current,\n shouldUpdateStrapi,\n checkUserHasPermissions\n );\n\n setMenuWithUserPermissions((state) => ({\n ...state,\n generalSectionLinks: authorizedGeneralSectionLinks,\n pluginsSectionLinks: authorizedPluginSectionLinks,\n isLoading: false,\n }));\n }\n\n applyMenuPermissions();\n }, [\n setMenuWithUserPermissions,\n generalSectionLinksRef,\n menu,\n permissions,\n shouldUpdateStrapi,\n checkUserHasPermissions,\n ]);\n\n return menuWithUserPermissions;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\nconst getGeneralLinks = async (\n generalSectionRawLinks: MenuItem[],\n shouldUpdateStrapi: boolean = false,\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const generalSectionLinksPermissions = await Promise.all(\n generalSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedGeneralSectionLinks = generalSectionRawLinks.filter(\n (_, index) => generalSectionLinksPermissions[index].length > 0\n );\n\n const settingsLinkIndex = authorizedGeneralSectionLinks.findIndex(\n (obj) => obj.to === '/settings'\n );\n\n if (settingsLinkIndex === -1) {\n return [];\n }\n\n const authorizedGeneralLinksClone = cloneDeep(authorizedGeneralSectionLinks);\n\n authorizedGeneralLinksClone[settingsLinkIndex].notificationsCount = shouldUpdateStrapi ? 1 : 0;\n\n return authorizedGeneralLinksClone;\n};\n\nconst getPluginSectionLinks = async (\n pluginsSectionRawLinks: MenuItem[],\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const pluginSectionLinksPermissions = await Promise.all(\n pluginsSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedPluginSectionLinks = pluginsSectionRawLinks.filter(\n (_, index) => pluginSectionLinksPermissions[index].length > 0\n );\n\n return authorizedPluginSectionLinks;\n};\n\nexport { useMenu };\n","import * as React from 'react';\n\nimport packageInfo from '@strapi/admin/package.json';\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { Outlet } from 'react-router-dom';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport { GuidedTourModal } from '../components/GuidedTour/Modal';\nimport { useGuidedTour } from '../components/GuidedTour/Provider';\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useOnce } from '../hooks/useOnce';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst { version: strapiVersion } = packageInfo;\n\nconst AdminLayout = () => {\n const setGuidedTourVisibility = useGuidedTour(\n 'AdminLayout',\n (state) => state.setGuidedTourVisibility\n );\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n return;\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n const userRoles = useAuth('AuthenticatedApp', (state) => state.user?.roles);\n\n React.useEffect(() => {\n if (userRoles) {\n const isUserSuperAdmin = userRoles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin && appInfo?.autoReload) {\n setGuidedTourVisibility(true);\n }\n }\n }, [userRoles, appInfo?.autoReload, setGuidedTourVisibility]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n\n /**\n * Make sure the event is only send once after accessing the admin panel\n * and not at runtime for example when regenerating the permissions with the ctb\n * or with i18n\n */\n useOnce(() => {\n trackUsage('didAccessAuthenticatedAdministration');\n });\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex alignItems=\"flex-start\">\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n />\n <Box flex={1}>\n <Outlet />\n <GuidedTourModal />\n </Box>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["GuidedTourModal","guidedTour","useGuidedTour","state","currentStep","guidedTourState","setCurrentStep","setStepState","isGuidedTourVisible","setSkipped","formatMessage","useIntl","trackUsage","useTracking","stepData","get","LAYOUT_DATA","sectionKeys","Object","keys","sectionName","stepName","split","sectionIndex","indexOf","stepIndex","hasSectionAfter","length","hasStepAfter","handleCtaClick","trackingEvent","handleSkip","_jsx","Portal","ModalWrapper","onClick","padding","justifyContent","FocusTrap","onEscape","_jsxs","Flex","direction","alignItems","background","width","shadow","hasRadius","gap","role","aria-modal","e","stopPropagation","IconButton","withTooltip","label","id","defaultMessage","Cross","Box","paddingLeft","paddingRight","paddingBottom","GuidedTourStepper","title","undefined","cta","onCtaClick","GuidedTourContent","content","Button","variant","styled","theme","colors","neutral800","children","hasSectionBefore","hasStepsBefore","nextSectionIndex","_Fragment","marginRight","minWidth","VerticalDivider","STATES","IS_DONE","minHeight","Typography","textColor","Number","IS_ACTIVE","paddingTop","fontWeight","tag","target","LinkButton","NavLink","endIcon","ArrowRight","to","documentationLink","DocumentationLink","b","Bold","p","Paragraph","light","Light","ul","List","li","ListItem","rel","href","LiStyled","MainNavWrapper","neutral150","MainNav","props","height","position","top","zIndex","BrandIconWrapper","borderRadius","NavBrand","logos","menu","useConfiguration","img","src","custom","url","default","alt","VisuallyHidden","span","MainNavLinkWrapper","RouterLink","neutral0","neutral500","neutral600","neutral100","primary600","primary100","LinkImpl","TooltipImpl","Tooltip","side","delayDuration","IconImpl","AccessibleIcon","CustomBadge","Badge","spaces","BadgeImpl","left","aria-label","active","Link","Icon","MenuTrigger","Menu","Trigger","MenuContent","Content","MenuItem","Item","MenuItemDanger","danger100","NavUser","initials","navigate","useNavigate","logout","useAuth","handleProfile","handleLogout","borderStyle","borderWidth","borderColor","Root","fullWidth","Avatar","delayMs","fallback","popoverPlacement","onSelect","color","SignOut","sortLinks","links","sort","a","positionA","positionB","NavLinkBadgeCounter","NavLinkBadgeLock","NavListWrapper","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","pathname","useLocation","userDisplayName","getDisplayName","locale","formatter","useCollator","sensitivity","map","name","substring","join","handleClickOnLink","destination","from","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","Divider","flex","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","badgeContentNumeric","notificationsCount","toString","labelValue","backgroundColor","PluginsInitializer","appPlugins","useStrapiApp","plugins","dispatch","React","useReducer","reducer","initialState","init","setPlugin","useRef","pluginId","type","hasApluginNotReady","some","plugin","isReady","initializers","reduce","acc","current","InitializerComponent","initializer","key","push","Page","Loading","action","produce","draftState","useMenu","shouldUpdateStrapi","checkUserHasPermissions","permissions","useTypedSelector","admin_app","menuWithUserPermissions","setMenuWithUserPermissions","useState","House","ShoppingCart","marketplace","main","Cog","isLoading","generalSectionLinksRef","useEffect","applyMenuPermissions","authorizedPluginSectionLinks","getPluginSectionLinks","authorizedGeneralSectionLinks","getGeneralLinks","generalSectionRawLinks","generalSectionLinksPermissions","Promise","all","filter","_","index","settingsLinkIndex","findIndex","obj","authorizedGeneralLinksClone","cloneDeep","pluginsSectionRawLinks","pluginSectionLinksPermissions","version","strapiVersion","packageInfo","AdminLayout","setGuidedTourVisibility","userInfo","userId","setUserId","showReleaseNotification","data","appInfo","isLoadingAppInfo","useInformationQuery","tagName","setTagName","fetch","then","res","ok","response","json","tag_name","Error","catch","userRoles","roles","isUserSuperAdmin","find","code","autoReload","hashAdminUserEmail","isLoadingMenu","checkLatestStrapiVersion","useOnce","AppInfoProvider","latestStrapiReleaseTag","NpsSurvey","DndProvider","backend","HTML5Backend","SkipToContent","Outlet","PrivateAdminLayout","PrivateRoute","currentPackageVersion","latestPublishedVersion","valid","lt"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { useIntl } from 'react-intl';
|
|
|
8
8
|
import { useParams, useNavigate } from 'react-router-dom';
|
|
9
9
|
import { styled } from 'styled-components';
|
|
10
10
|
import * as yup from 'yup';
|
|
11
|
-
import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, h as useCreateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-
|
|
11
|
+
import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, h as useCreateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-C3BO0YZa.mjs';
|
|
12
12
|
import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, e as useAPIErrorHandler } from './Theme-C3oHrQcy.mjs';
|
|
13
13
|
import { i as isBaseQueryError } from './admin-BBS7sDVu.mjs';
|
|
14
14
|
import { P as Permissions } from './Permissions-rJmE3qb1.mjs';
|
|
@@ -352,4 +352,4 @@ const UsersRoleNumber = styled.div`
|
|
|
352
352
|
};
|
|
353
353
|
|
|
354
354
|
export { CreatePage, ProtectedCreatePage };
|
|
355
|
-
//# sourceMappingURL=CreatePage-
|
|
355
|
+
//# sourceMappingURL=CreatePage-BO4p8eVo.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePage-DQDa78K3.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;;AAEkG,qGAElG,MAAMA,aAAgBC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;IACvCC,IAAMH,EAAAA,GAAAA,CAAII,MAAM,EAAGC,CAAAA,QAAQ,CAACC,WAAiBD,CAAAA,QAAQ,CAACE,EAAE,CAAA;IACxDC,WAAaR,EAAAA,GAAAA,CAAII,MAAM,EAAGC,CAAAA,QAAQ,CAACC,WAAiBD,CAAAA,QAAQ,CAACE,EAAE;AACjE,CAAA,CAAA;AAUA;;;AAGC,UACKE,UAAa,GAAA,IAAA;IACjB,MAAM,EAAEF,EAAE,EAAE,GAAGG,SAAAA,EAAAA;IACf,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAMC,cAAAA,GAAiBC,KAAMC,CAAAA,MAAM,CAAiB,IAAA,CAAA;IACpD,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,kBAAAA,EAAAA;IAEJ,MAAM,EAAEC,WAAWC,0BAA0B,EAAEC,aAAaC,iBAAiB,EAAE,GAC7EC,+BAAgC,CAAA;AAC9B;;;AAGC,UACDC,MAAMzB,EAAM,IAAA;AACd,KAAA,CAAA;AAEF;;;MAIA,MAAM,EAAEsB,WAAaI,EAAAA,eAAe,EAAEN,SAAWO,EAAAA,aAAa,EAAE,GAAGC,0BACjE,CAAA;QACE5B,EAAIA,EAAAA;KAEN,EAAA;AACE6B,QAAAA,IAAAA,EAAM,CAAC7B,EAAAA;QACP8B,yBAA2B,EAAA;AAC7B,KAAA,CAAA;IAGF,MAAM,CAACC,WAAW,GAAGC,qBAAAA,EAAAA;IACrB,MAAM,CAACC,sBAAsB,GAAGC,gCAAAA,EAAAA;IAEhC,MAAMC,sBAAAA,GAAyB,OAC7BC,IACAC,EAAAA,MAAAA,GAAAA;QAEA,IAAI;AACF,YAAA,IAAIrC,EAAI,EAAA;gBACNa,UAAW,CAAA,mBAAA,CAAA;aACN,MAAA;gBACLA,UAAW,CAAA,mBAAA,CAAA;AACb;YAEA,MAAMyB,GAAAA,GAAM,MAAMP,UAAWK,CAAAA,IAAAA,CAAAA;AAE7B,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAIC,gBAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAAC5C,IAAI,KAAK,iBAAmB,EAAA;AACvEyC,oBAAAA,MAAAA,CAAOI,SAAS,CAACvB,sBAAuBoB,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC5C,MAAA;oBACLpC,kBAAmB,CAAA;wBACjBsC,IAAM,EAAA,QAAA;wBACNC,OAAS3B,EAAAA,cAAAA,CAAesB,IAAIE,KAAK;AACnC,qBAAA,CAAA;AACF;AAEA,gBAAA;AACF;YAEA,MAAM,EAAEI,iBAAiB,EAAE,GAAGlC,eAAemC,OAAO,EAAEC,oBAAoB,EAAC;AAE3E,YAAA,IAAIR,GAAIF,CAAAA,IAAI,CAACpC,EAAE,IAAI+C,KAAAA,CAAMC,OAAO,CAACJ,iBAAsBA,CAAAA,IAAAA,iBAAAA,CAAkBK,MAAM,GAAG,CAAG,EAAA;gBACnF,MAAMC,SAAAA,GAAY,MAAMjB,qBAAsB,CAAA;oBAC5CjC,EAAIsC,EAAAA,GAAAA,CAAIF,IAAI,CAACpC,EAAE;oBACfmD,WAAaP,EAAAA;AACf,iBAAA,CAAA;AAEA,gBAAA,IAAI,WAAWM,SAAW,EAAA;oBACxB,IAAIX,gBAAAA,CAAiBW,UAAUV,KAAK,CAAA,IAAKU,UAAUV,KAAK,CAAC5C,IAAI,KAAK,iBAAmB,EAAA;AACnFyC,wBAAAA,MAAAA,CAAOI,SAAS,CAACvB,sBAAuBgC,CAAAA,SAAAA,CAAUV,KAAK,CAAA,CAAA;qBAClD,MAAA;wBACLpC,kBAAmB,CAAA;4BACjBsC,IAAM,EAAA,QAAA;4BACNC,OAAS3B,EAAAA,cAAAA,CAAekC,UAAUV,KAAK;AACzC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;AACF;YAEApC,kBAAmB,CAAA;gBACjBsC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASrC,aAAc,CAAA;oBAAEN,EAAI,EAAA,wBAAA;oBAA0BoD,cAAgB,EAAA;AAAU,iBAAA;AACnF,aAAA,CAAA;YAEA5C,QAAS,CAAA,CAAC,SAAS,EAAE8B,GAAIF,CAAAA,IAAI,CAACpC,EAAE,CAACqD,QAAQ,EAAG,CAAA,CAAC,EAAE;gBAAEC,OAAS,EAAA;AAAK,aAAA,CAAA;AACjE,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZnD,kBAAmB,CAAA;gBACjBsC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASrC,aAAc,CAAA;oBAAEN,EAAI,EAAA,oBAAA;oBAAsBoD,cAAgB,EAAA;AAAoB,iBAAA;AACzF,aAAA,CAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAI,0BAAC/B,IAA8BM,aAAkB,IAAA,CAACJ,iBAAmB,EAAA;QACvE,qBAAOiC,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;;AACC,0BAAAJ,GAAA,CAACC,KAAKI,KAAK,EAAA;0BACRvD,aACC,CAAA;oBAAEN,EAAI,EAAA,oBAAA;oBAAsBoD,cAAgB,EAAA;iBAC5C,EAAA;oBACExD,IAAM,EAAA;AACR,iBAAA;;0BAGJ4D,GAACM,CAAAA,MAAAA,EAAAA;gBACCC,aACE,EAAA;oBACEnE,IAAM,EAAA,EAAA;oBACNK,WAAa,EAAA,CAAC,EAAEK,aAAc,CAAA;wBAC5BN,EAAI,EAAA,6BAAA;wBACJoD,cAAgB,EAAA;AAClB,qBAAA,CAAA,CAAG,CAAC,EAAEY,MAAAA,CAAO,IAAIC,IAAAA,EAAAA,EAAQ,OAAO;AAClC,iBAAA;gBAEFC,QAAU/B,EAAAA,sBAAAA;gBACVgC,gBAAkB3E,EAAAA,aAAAA;gBAClB4E,gBAAkB,EAAA,KAAA;AAEjB,gBAAA,QAAA,EAAA,CAAC,EAAEC,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,YAAY,EAAEC,YAAY,EAAE,iBAC3DjB,GAACkB,CAAAA,IAAAA,EAAAA;gDACCf,IAAA,CAAAgB,QAAA,EAAA;;AACE,8CAAAnB,GAAA,CAACoB,QAAQC,MAAM,EAAA;AACbC,oCAAAA,aAAAA,gBACEnB,IAACoB,CAAAA,IAAAA,EAAAA;wCAAKC,GAAK,EAAA,CAAA;;0DACTxB,GAACyB,CAAAA,MAAAA,EAAAA;gDACCC,OAAQ,EAAA,WAAA;gDACRC,OAAS,EAAA,IAAA;AACPZ,oDAAAA,WAAAA,EAAAA;AACA7D,oDAAAA,cAAAA,CAAemC,OAAO,EAAEuC,SAAAA,EAAAA;AAC1B,iDAAA;0DAEC9E,aAAc,CAAA;oDACbN,EAAI,EAAA,6BAAA;oDACJoD,cAAgB,EAAA;AAClB,iDAAA;;0DAEFI,GAACyB,CAAAA,MAAAA,EAAAA;gDAAOvC,IAAK,EAAA,QAAA;gDAAS2C,OAASZ,EAAAA,YAAAA;AAAca,gDAAAA,SAAAA,gBAAW9B,GAAC+B,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;0DACtDjF,aAAc,CAAA;oDACbN,EAAI,EAAA,aAAA;oDACJoD,cAAgB,EAAA;AAClB,iDAAA;;;;AAINoC,oCAAAA,KAAAA,EAAOlF,aAAc,CAAA;wCACnBN,EAAI,EAAA,6BAAA;wCACJoD,cAAgB,EAAA;AAClB,qCAAA,CAAA;AACAqC,oCAAAA,QAAAA,EAAUnF,aAAc,CAAA;wCACtBN,EAAI,EAAA,mCAAA;wCACJoD,cAAgB,EAAA;AAClB,qCAAA,CAAA;AACAsC,oCAAAA,gBAAAA,gBAAkBlC,GAACmC,CAAAA,UAAAA,EAAAA;wCAAWC,QAAS,EAAA;;;AAEzC,8CAAApC,GAAA,CAACoB,QAAQiB,OAAO,EAAA;AACd,oCAAA,QAAA,gBAAAlC,IAACoB,CAAAA,IAAAA,EAAAA;wCAAKe,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUf,GAAK,EAAA,CAAA;;0DACjDxB,GAACwC,CAAAA,GAAAA,EAAAA;gDAAIC,UAAW,EAAA,UAAA;gDAAWC,OAAS,EAAA,CAAA;gDAAGC,MAAO,EAAA,cAAA;gDAAeC,SAAS,EAAA,IAAA;AACpE,gDAAA,QAAA,gBAAAzC,IAACoB,CAAAA,IAAAA,EAAAA;oDAAKe,SAAU,EAAA,QAAA;oDAASC,UAAW,EAAA,SAAA;oDAAUf,GAAK,EAAA,CAAA;;sEACjDrB,IAACoB,CAAAA,IAAAA,EAAAA;4DAAKsB,cAAe,EAAA,eAAA;;8EACnB1C,IAACqC,CAAAA,GAAAA,EAAAA;;sFACCxC,GAACwC,CAAAA,GAAAA,EAAAA;AACC,4EAAA,QAAA,gBAAAxC,GAAC8C,CAAAA,UAAAA,EAAAA;gFAAWC,UAAW,EAAA,MAAA;0FACpBjG,aAAc,CAAA;oFACbN,EAAI,EAAA,gBAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;;sFAGJI,GAACwC,CAAAA,GAAAA,EAAAA;AACC,4EAAA,QAAA,gBAAAxC,GAAC8C,CAAAA,UAAAA,EAAAA;gFAAWpB,OAAQ,EAAA,IAAA;gFAAKsB,SAAU,EAAA,YAAA;0FAChClG,aAAc,CAAA;oFACbN,EAAI,EAAA,iCAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;;;;8EAINI,GAACiD,CAAAA,eAAAA,EAAAA;8EACEnG,aACC,CAAA;wEACEN,EAAI,EAAA,4CAAA;wEACJoD,cACE,EAAA;qEAEJ,EAAA;wEAAEsD,MAAQ,EAAA;AAAE,qEAAA;;;;AAIlB,sEAAA/C,IAAA,CAACgD,KAAKC,IAAI,EAAA;4DAAC5B,GAAK,EAAA,CAAA;;AACd,8EAAAxB,GAAA,CAACmD,KAAKE,IAAI,EAAA;oEAACC,GAAK,EAAA,CAAA;oEAAGhB,SAAU,EAAA,QAAA;oEAASC,UAAW,EAAA,SAAA;4FAC/CpC,IAAA,CAACoD,MAAMH,IAAI,EAAA;wEACThH,IAAK,EAAA,MAAA;wEACL4C,KAAO8B,EAAAA,MAAAA,CAAO1E,IAAI,IAAIU,aAAc,CAAA;AAAEN,4EAAAA,EAAAA,EAAIsE,OAAO1E;AAAK,yEAAA,CAAA;wEACtDE,QAAQ,EAAA,IAAA;;AAER,0FAAA0D,GAAA,CAACuD,MAAMC,KAAK,EAAA;0FACT1G,aAAc,CAAA;oFACbN,EAAI,EAAA,aAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;0FAEFI,GAACyD,CAAAA,SAAAA,EAAAA;gFAAUC,QAAU1C,EAAAA,YAAAA;AAAc2C,gFAAAA,KAAAA,EAAO9C,OAAOzE;;AACjD,0FAAA4D,GAAA,CAACuD,MAAMK,KAAK,EAAA,EAAA;;;;AAGhB,8EAAA5D,GAAA,CAACmD,KAAKE,IAAI,EAAA;oEAACC,GAAK,EAAA,CAAA;oEAAGhB,SAAU,EAAA,QAAA;oEAASC,UAAW,EAAA,SAAA;4FAC/CpC,IAAA,CAACoD,MAAMH,IAAI,EAAA;wEACThH,IAAK,EAAA,aAAA;wEACL4C,KAAO8B,EAAAA,MAAAA,CAAOrE,WAAW,IAAIK,aAAc,CAAA;AAAEN,4EAAAA,EAAAA,EAAIsE,OAAOrE;AAAY,yEAAA,CAAA;;AAEpE,0FAAAuD,GAAA,CAACuD,MAAMC,KAAK,EAAA;0FACT1G,aAAc,CAAA;oFACbN,EAAI,EAAA,oBAAA;oFACJoD,cAAgB,EAAA;AAClB,iFAAA;;0FAEFI,GAAC6D,CAAAA,QAAAA,EAAAA;gFAASH,QAAU1C,EAAAA,YAAAA;AAAc2C,gFAAAA,KAAAA,EAAO9C,OAAOpE;;;;;;;;;;0DAM1DuD,GAACwC,CAAAA,GAAAA,EAAAA;gDAAIG,MAAO,EAAA,cAAA;gDAAeC,SAAS,EAAA,IAAA;AAClC,gDAAA,QAAA,gBAAA5C,GAAC8D,CAAAA,WAAAA,EAAAA;oDACCC,cAAgB,EAAA,KAAA;oDAChBC,GAAK9G,EAAAA,cAAAA;oDACLyC,WAAazB,EAAAA,eAAAA;oDACb+F,MAAQlG,EAAAA;;;;;;;;;;;;AAW9B;AAEA,MAAMkF,eAAAA,GAAkBiB,MAAOC,CAAAA,GAAG;oBACd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;cAC/C,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACE,UAAU,CAAC;WAC5C,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAK,CAAC,EAAEA,MAAMI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAEJ,KAAMI,CAAAA,MAAM,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;SAC3D,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACI,UAAU,CAAC;AACjC,iBAAA,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAAA,CAAMM,YAAY,CAAC;;;AAGrD,CAAC;AAED;;AAEkG,2GAE5FC,mBAAsB,GAAA,IAAA;IAC1B,MAAMhF,WAAAA,GAAciF,gBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACnF,WAAW,CAACoF,QAAQ,EAAEC,KAAMC,CAAAA,MAAAA,CAAAA;IAGzD,qBACEjF,GAAA,CAACC,KAAKiF,OAAO,EAAA;QAACvF,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAK,GAACtD,CAAAA,UAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
1
|
+
{"version":3,"file":"CreatePage-BO4p8eVo.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var reactIntl = require('react-intl');
|
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
11
|
var styledComponents = require('styled-components');
|
|
12
12
|
var yup = require('yup');
|
|
13
|
-
var index = require('./index-
|
|
13
|
+
var index = require('./index-BdqtLS-k.js');
|
|
14
14
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
15
15
|
var admin = require('./admin-udBiOv2o.js');
|
|
16
16
|
var Permissions = require('./Permissions-D6qH78lN.js');
|
|
@@ -375,4 +375,4 @@ const UsersRoleNumber = styledComponents.styled.div`
|
|
|
375
375
|
|
|
376
376
|
exports.CreatePage = CreatePage;
|
|
377
377
|
exports.ProtectedCreatePage = ProtectedCreatePage;
|
|
378
|
-
//# sourceMappingURL=CreatePage-
|
|
378
|
+
//# sourceMappingURL=CreatePage-Bgs19RIr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePage-DbmpFjHt.js","sources":["../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreatePage-Bgs19RIr.js","sources":["../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { b as useTypedSelector, P as Page } from './Theme-C3oHrQcy.mjs';
|
|
3
|
-
import { E as EditPage } from './EditPage-
|
|
3
|
+
import { E as EditPage } from './EditPage-CBrPs4kH.mjs';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '@radix-ui/react-context';
|
|
6
6
|
import 'react-intl';
|
|
@@ -27,7 +27,7 @@ import 'styled-components';
|
|
|
27
27
|
import '@reduxjs/toolkit';
|
|
28
28
|
import './selectors-Dej_6h4x.mjs';
|
|
29
29
|
import 'yup';
|
|
30
|
-
import './index-
|
|
30
|
+
import './index-C3BO0YZa.mjs';
|
|
31
31
|
import 'react-dom/client';
|
|
32
32
|
import 'invariant';
|
|
33
33
|
import 'lodash/isFunction';
|
|
@@ -51,4 +51,4 @@ const ProtectedCreatePage = ()=>{
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { EditPage as CreatePage, ProtectedCreatePage };
|
|
54
|
-
//# sourceMappingURL=CreatePage-
|
|
54
|
+
//# sourceMappingURL=CreatePage-CvMkpe3b.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePage-
|
|
1
|
+
{"version":3,"file":"CreatePage-CvMkpe3b.mjs","sources":["../../../admin/src/pages/Settings/pages/Webhooks/CreatePage.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditPage } from './EditPage';\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedCreatePage, EditPage as CreatePage };\n"],"names":["ProtectedCreatePage","permissions","useTypedSelector","state","admin_app","settings","webhooks","create","_jsx","Page","Protect","EditPage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,mBAAsB,GAAA,IAAA;IAC1B,MAAMC,WAAAA,GAAcC,gBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACI,QAAQ,EAAEC,QAASC,CAAAA,MAAAA,CAAAA;IAG5D,qBACEC,GAAA,CAACC,KAAKC,OAAO,EAAA;QAACT,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAO,GAACG,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
5
|
-
var EditPage = require('./EditPage-
|
|
5
|
+
var EditPage = require('./EditPage-CK8pIRKZ.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('@radix-ui/react-context');
|
|
8
8
|
require('react-intl');
|
|
@@ -29,7 +29,7 @@ require('styled-components');
|
|
|
29
29
|
require('@reduxjs/toolkit');
|
|
30
30
|
require('./selectors-Bf-6Fmez.js');
|
|
31
31
|
require('yup');
|
|
32
|
-
require('./index-
|
|
32
|
+
require('./index-BdqtLS-k.js');
|
|
33
33
|
require('react-dom/client');
|
|
34
34
|
require('invariant');
|
|
35
35
|
require('lodash/isFunction');
|
|
@@ -54,4 +54,4 @@ const ProtectedCreatePage = ()=>{
|
|
|
54
54
|
|
|
55
55
|
exports.CreatePage = EditPage.EditPage;
|
|
56
56
|
exports.ProtectedCreatePage = ProtectedCreatePage;
|
|
57
|
-
//# sourceMappingURL=CreatePage-
|
|
57
|
+
//# sourceMappingURL=CreatePage-D0kjwP8s.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePage-
|
|
1
|
+
{"version":3,"file":"CreatePage-D0kjwP8s.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/CreatePage.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditPage } from './EditPage';\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedCreatePage, EditPage as CreatePage };\n"],"names":["ProtectedCreatePage","permissions","useTypedSelector","state","admin_app","settings","webhooks","create","_jsx","Page","Protect","EditPage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,mBAAsB,GAAA,IAAA;IAC1B,MAAMC,WAAAA,GAAcC,sBAClB,CAAA,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACI,QAAQ,EAAEC,QAASC,CAAAA,MAAAA,CAAAA;IAG5D,qBACEC,cAAA,CAACC,WAAKC,OAAO,EAAA;QAACT,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAO,cAACG,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { b as useTypedSelector, P as Page } from './Theme-C3oHrQcy.mjs';
|
|
3
|
-
import { EditView } from './EditView-
|
|
3
|
+
import { EditView } from './EditView-XfGT5Bj1.mjs';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '@radix-ui/react-context';
|
|
6
6
|
import 'react-intl';
|
|
@@ -27,7 +27,7 @@ import 'styled-components';
|
|
|
27
27
|
import '@reduxjs/toolkit';
|
|
28
28
|
import 'formik';
|
|
29
29
|
import 'yup';
|
|
30
|
-
import './index-
|
|
30
|
+
import './index-C3BO0YZa.mjs';
|
|
31
31
|
import 'react-dom/client';
|
|
32
32
|
import 'invariant';
|
|
33
33
|
import 'lodash/isFunction';
|
|
@@ -41,7 +41,7 @@ import 'lodash/omit';
|
|
|
41
41
|
import 'lodash/throttle';
|
|
42
42
|
import './transferTokens-9pdM-Bum.mjs';
|
|
43
43
|
import './constants-B8oOcJBB.mjs';
|
|
44
|
-
import './TokenTypeSelect-
|
|
44
|
+
import './TokenTypeSelect-BUFFAUgx.mjs';
|
|
45
45
|
import 'date-fns';
|
|
46
46
|
import 'date-fns/locale';
|
|
47
47
|
|
|
@@ -54,4 +54,4 @@ const ProtectedCreateView = ()=>{
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
export { ProtectedCreateView };
|
|
57
|
-
//# sourceMappingURL=CreateView-
|
|
57
|
+
//# sourceMappingURL=CreateView-B5Rq5Uhw.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateView-
|
|
1
|
+
{"version":3,"file":"CreateView-B5Rq5Uhw.mjs","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["ProtectedCreateView","permissions","useTypedSelector","state","admin_app","settings","create","_jsx","Page","Protect","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKaA,mBAAsB,GAAA,IAAA;AACjC,IAAA,MAAMC,WAAcC,GAAAA,gBAAAA,CAClB,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,SAAS,CAACH,WAAW,CAACI,QAAQ,GAAG,kBAAkB,CAACC,MAAAA,CAAAA;IAGvE,qBACEC,GAAA,CAACC,KAAKC,OAAO,EAAA;QAACR,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAM,GAACG,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var Theme = require('./Theme-DDlJz91O.js');
|
|
5
|
-
var EditView = require('./EditView-
|
|
5
|
+
var EditView = require('./EditView-CfJxHMkF.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('@radix-ui/react-context');
|
|
8
8
|
require('react-intl');
|
|
@@ -29,7 +29,7 @@ require('styled-components');
|
|
|
29
29
|
require('@reduxjs/toolkit');
|
|
30
30
|
require('formik');
|
|
31
31
|
require('yup');
|
|
32
|
-
require('./index-
|
|
32
|
+
require('./index-BdqtLS-k.js');
|
|
33
33
|
require('react-dom/client');
|
|
34
34
|
require('invariant');
|
|
35
35
|
require('lodash/isFunction');
|
|
@@ -43,7 +43,7 @@ require('lodash/omit');
|
|
|
43
43
|
require('lodash/throttle');
|
|
44
44
|
require('./transferTokens-oEFM8kkT.js');
|
|
45
45
|
require('./constants-tbFuOuW4.js');
|
|
46
|
-
require('./TokenTypeSelect-
|
|
46
|
+
require('./TokenTypeSelect-DCa4dg3r.js');
|
|
47
47
|
require('date-fns');
|
|
48
48
|
require('date-fns/locale');
|
|
49
49
|
|
|
@@ -56,4 +56,4 @@ const ProtectedCreateView = ()=>{
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
exports.ProtectedCreateView = ProtectedCreateView;
|
|
59
|
-
//# sourceMappingURL=CreateView-
|
|
59
|
+
//# sourceMappingURL=CreateView-DCsm2KBZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateView-
|
|
1
|
+
{"version":3,"file":"CreateView-DCsm2KBZ.js","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["ProtectedCreateView","permissions","useTypedSelector","state","admin_app","settings","create","_jsx","Page","Protect","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKaA,mBAAsB,GAAA,IAAA;AACjC,IAAA,MAAMC,WAAcC,GAAAA,sBAAAA,CAClB,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,SAAS,CAACH,WAAW,CAACI,QAAQ,GAAG,kBAAkB,CAACC,MAAAA,CAAAA;IAGvE,qBACEC,cAAA,CAACC,WAAKC,OAAO,EAAA;QAACR,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAM,cAACG,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|