@strapi/admin 5.20.0 → 5.21.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/admin/src/StrapiApp.js +20 -4
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +21 -5
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js +185 -0
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs +186 -2
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +5 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +5 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/services/admin.js +1 -2
- package/dist/admin/admin/src/services/admin.js.map +1 -1
- package/dist/admin/admin/src/services/admin.mjs +1 -2
- package/dist/admin/admin/src/services/admin.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +4 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +4 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js +5 -4
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs +5 -4
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/homepage.js +31 -0
- package/dist/admin/admin/src/services/homepage.js.map +1 -0
- package/dist/admin/admin/src/services/homepage.mjs +28 -0
- package/dist/admin/admin/src/services/homepage.mjs.map +1 -0
- package/dist/admin/admin/src/services/users.js +4 -2
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs +4 -2
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js +9 -5
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs +9 -5
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +9 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +9 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/es.json.js +9 -0
- package/dist/admin/admin/src/translations/es.json.js.map +1 -1
- package/dist/admin/admin/src/translations/es.json.mjs +9 -0
- package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.js +9 -0
- package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.mjs +9 -0
- package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/Widgets.d.ts +2 -1
- package/dist/admin/src/core/apis/Widgets.d.ts +1 -0
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +10 -10
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +14 -0
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/server/src/controllers/homepage.js +15 -0
- package/dist/server/server/src/controllers/homepage.js.map +1 -0
- package/dist/server/server/src/controllers/homepage.mjs +13 -0
- package/dist/server/server/src/controllers/homepage.mjs.map +1 -0
- package/dist/server/server/src/controllers/index.js +3 -1
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +3 -1
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/routes/homepage.js +17 -0
- package/dist/server/server/src/routes/homepage.js.map +1 -0
- package/dist/server/server/src/routes/homepage.mjs +15 -0
- package/dist/server/server/src/routes/homepage.mjs.map +1 -0
- package/dist/server/server/src/routes/index.js +3 -1
- package/dist/server/server/src/routes/index.js.map +1 -1
- package/dist/server/server/src/routes/index.mjs +3 -1
- package/dist/server/server/src/routes/index.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +34 -0
- package/dist/server/server/src/services/homepage.js.map +1 -0
- package/dist/server/server/src/services/homepage.mjs +32 -0
- package/dist/server/server/src/services/homepage.mjs.map +1 -0
- package/dist/server/server/src/services/index.js +3 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -1
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +15 -0
- package/dist/server/src/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +13 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +26 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/homepage.d.ts +10 -0
- package/dist/server/src/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts +15 -0
- package/dist/server/src/services/homepage.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +13 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +30 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (!permissions || permissions.length === 0) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n textAlign=\"right\"\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Grid.Root gap={5}>\n {getAllWidgets().map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","textAlign","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","HomePageCE","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","FreeTrialWelcomeModal","FreeTrialEndedModal","Content","paddingBottom","GuidedTourHomepageOverview","Grid","Root","map","widget","Item","col","s","uid","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (!permissions || permissions.length === 0) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n textAlign=\"right\"\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const filteredWidgets = React.useMemo(\n () =>\n getAllWidgets().filter(\n (widget) =>\n !widget.roles ||\n user?.roles?.some((userRole) => widget.roles?.find((role) => userRole.code === role))\n ),\n [getAllWidgets, user?.roles]\n );\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Grid.Root gap={5}>\n {filteredWidgets.map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","textAlign","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","HomePageCE","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","filteredWidgets","useMemo","filter","widget","roles","some","userRole","find","role","code","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","FreeTrialWelcomeModal","FreeTrialEndedModal","Content","paddingBottom","GuidedTourHomepageOverview","Grid","Root","map","Item","col","s","uid","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
@@ -125,6 +125,10 @@ const WidgetRoot = ({ title, icon = PuzzlePiece, permissions = [], children, lin
|
|
|
125
125
|
const user = useAuth('HomePageCE', (state)=>state.user);
|
|
126
126
|
const displayName = user?.firstname ?? user?.username ?? user?.email;
|
|
127
127
|
const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state)=>state.widgets.getAll);
|
|
128
|
+
const filteredWidgets = React.useMemo(()=>getAllWidgets().filter((widget)=>!widget.roles || user?.roles?.some((userRole)=>widget.roles?.find((role)=>userRole.code === role))), [
|
|
129
|
+
getAllWidgets,
|
|
130
|
+
user?.roles
|
|
131
|
+
]);
|
|
128
132
|
return /*#__PURE__*/ jsxs(Main, {
|
|
129
133
|
children: [
|
|
130
134
|
/*#__PURE__*/ jsx(Page.Title, {
|
|
@@ -157,7 +161,7 @@ const WidgetRoot = ({ title, icon = PuzzlePiece, permissions = [], children, lin
|
|
|
157
161
|
/*#__PURE__*/ jsx(GuidedTourHomepageOverview, {}),
|
|
158
162
|
/*#__PURE__*/ jsx(Grid.Root, {
|
|
159
163
|
gap: 5,
|
|
160
|
-
children:
|
|
164
|
+
children: filteredWidgets.map((widget)=>{
|
|
161
165
|
return /*#__PURE__*/ jsx(Grid.Item, {
|
|
162
166
|
col: 6,
|
|
163
167
|
s: 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.mjs","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (!permissions || permissions.length === 0) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n textAlign=\"right\"\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Grid.Root gap={5}>\n {getAllWidgets().map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","textAlign","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","HomePageCE","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","FreeTrialWelcomeModal","FreeTrialEndedModal","Content","paddingBottom","GuidedTourHomepageOverview","Grid","Root","map","widget","Item","col","s","uid","HomePage","useEnterprise","HomePageEE"],"mappings":";;;;;;;;;;;;;;;;;AA4BaA,MAAAA,UAAAA,GAAa,CAAC,EACzBC,KAAK,EACLC,IAAAA,GAAOC,WAAW,EAClBC,cAAc,EAAE,EAChBC,QAAQ,EACRC,IAAI,EACY,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,EAAAA,GAAKC,MAAMC,KAAK,EAAA;AACtB,IAAA,MAAMC,IAAOV,GAAAA,IAAAA;AAEb,IAAA,MAAM,CAACW,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGJ,KAAAA,CAAMK,QAAQ,CAE5D,SAAA,CAAA;AACF,IAAA,MAAMC,0BAA0BC,OAAQ,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMF,uBAAuB,CAAA;AAC9FN,IAAAA,KAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,gBAAmB,GAAA,UAAA;YACvB,MAAMC,mBAAAA,GAAsB,MAAML,uBAAwBZ,CAAAA,WAAAA,CAAAA;AAC1D,YAAA,MAAMkB,WAAcD,GAAAA,mBAAAA,CAAoBE,MAAM,IAAInB,YAAYmB,MAAM;AACpET,YAAAA,mBAAAA,CAAoBQ,cAAc,SAAY,GAAA,WAAA,CAAA;AAChD,SAAA;AAEA,QAAA,IAAI,CAAClB,WAAAA,IAAeA,WAAYmB,CAAAA,MAAM,KAAK,CAAG,EAAA;YAC5CT,mBAAoB,CAAA,SAAA,CAAA;SACf,MAAA;AACLM,YAAAA,gBAAAA,EAAAA;AACF;KACC,EAAA;AAACJ,QAAAA,uBAAAA;AAAyBZ,QAAAA;AAAY,KAAA,CAAA;AAEzC,IAAA,qBACEoB,IAACC,CAAAA,IAAAA,EAAAA;QACCC,KAAM,EAAA,MAAA;QACNC,SAAS,EAAA,IAAA;QACTC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,YAAA;QACXC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,MAAO,EAAA,aAAA;QACPC,GAAI,EAAA,SAAA;QACJC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,iBAAiB3B,EAAAA,EAAAA;;0BAEjBe,IAACC,CAAAA,IAAAA,EAAAA;gBAAKG,SAAU,EAAA,KAAA;gBAAMM,GAAK,EAAA,CAAA;gBAAGG,cAAe,EAAA,eAAA;gBAAgBX,KAAM,EAAA,MAAA;gBAAOO,GAAI,EAAA,QAAA;;kCAC5ET,IAACC,CAAAA,IAAAA,EAAAA;wBAAKS,GAAK,EAAA,CAAA;;0CACTI,GAAC1B,CAAAA,IAAAA,EAAAA;gCAAK2B,IAAK,EAAA,YAAA;gCAAaC,aAAW,EAAA;;0CACnCF,GAACG,CAAAA,UAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,OAAQ,EAAA,OAAA;gCAAQV,GAAI,EAAA,IAAA;gCAAKxB,EAAIA,EAAAA,EAAAA;0CAC7DF,aAAcN,CAAAA,KAAAA;;;;AAGlBK,oBAAAA,IAAAA,kBACCgC,GAACG,CAAAA,UAAAA,EAAAA;wBACCR,GAAKW,EAAAA,IAAAA;wBACLD,OAAQ,EAAA,OAAA;wBACRD,SAAU,EAAA,YAAA;wBACVG,KAAO,EAAA;4BAAEC,cAAgB,EAAA;AAAO,yBAAA;wBAChCC,SAAU,EAAA,OAAA;AACVC,wBAAAA,EAAAA,EAAI1C,KAAK2C,IAAI;AAEZ1C,wBAAAA,QAAAA,EAAAA,aAAAA,CAAcD,KAAK4C,KAAK;;;;0BAI/B1B,IAAC2B,CAAAA,GAAAA,EAAAA;gBAAIzB,KAAM,EAAA,MAAA;gBAAO0B,MAAO,EAAA,OAAA;gBAAQC,QAAS,EAAA,MAAA;gBAAOpB,GAAI,EAAA,MAAA;;oBAClDpB,gBAAqB,KAAA,SAAA,kBAAayB,GAACgB,CAAAA,MAAAA,CAAOC,OAAO,EAAA,EAAA,CAAA;oBACjD1C,gBAAqB,KAAA,WAAA,kBAAeyB,GAACgB,CAAAA,MAAAA,CAAOE,aAAa,EAAA,EAAA,CAAA;AACzD3C,oBAAAA,gBAAAA,KAAqB,SAAaR,IAAAA;;;;;AAI3C;AAEA;;AAEkG,qGAElG,MAAMoD,eAAAA,GAAkB,CAAC,EAAEC,SAAS,EAAqD,GAAA;AACvF,IAAA,MAAM,CAACC,eAAiBC,EAAAA,kBAAAA,CAAmB,GAAGlD,KAAAA,CAAMK,QAAQ,CAA6B,IAAA,CAAA;AAEzFL,IAAAA,KAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,MAAM0C,aAAgB,GAAA,UAAA;AACpB,YAAA,MAAMC,oBAAoB,MAAMJ,SAAAA,EAAAA;AAEhCE,YAAAA,kBAAAA,CAAmB,IAAME,iBAAAA,CAAAA;AAC3B,SAAA;AAEAD,QAAAA,aAAAA,EAAAA;KACC,EAAA;AAACH,QAAAA;AAAU,KAAA,CAAA;AAEd,IAAA,MAAMK,SAAYJ,GAAAA,eAAAA;AAElB,IAAA,IAAI,CAACI,SAAW,EAAA;QACd,qBAAOzB,GAAA,CAACgB,OAAOC,OAAO,EAAA,EAAA,CAAA;AACxB;AAEA,IAAA,qBAAOjB,GAACyB,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACV,CAAA;AAEA;;AAEkG,2GAE5FC,UAAa,GAAA,IAAA;IACjB,MAAM,EAAEzD,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMyD,OAAOhD,OAAQ,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAM+C,IAAI,CAAA;AACxD,IAAA,MAAMC,WAAcD,GAAAA,IAAAA,EAAME,SAAaF,IAAAA,IAAAA,EAAMG,YAAYH,IAAMI,EAAAA,KAAAA;IAE/D,MAAMC,aAAAA,GAAgBC,aAAa,oBAAsB,EAAA,CAACrD,QAAUA,KAAMsD,CAAAA,OAAO,CAACC,MAAM,CAAA;AAExF,IAAA,qBACEjD,IAACkD,CAAAA,IAAAA,EAAAA;;AACC,0BAAApC,GAAA,CAACqC,KAAKC,KAAK,EAAA;0BACRrE,aAAc,CAAA;oBAAEE,EAAI,EAAA,qBAAA;oBAAuBoE,cAAgB,EAAA;AAAW,iBAAA;;AAEzE,0BAAAvC,GAAA,CAACwC,QAAQC,MAAM,EAAA;AACb9E,gBAAAA,KAAAA,EAAOM,aACL,CAAA;oBAAEE,EAAI,EAAA,uBAAA;oBAAyBoE,cAAgB,EAAA;iBAC/C,EAAA;oBAAEG,IAAMd,EAAAA;AAAY,iBAAA,CAAA;AAEtBe,gBAAAA,QAAAA,EAAU1E,aAAc,CAAA;oBACtBE,EAAI,EAAA,0BAAA;oBACJoE,cAAgB,EAAA;AAClB,iBAAA;;0BAEFvC,GAAC4C,CAAAA,qBAAAA,EAAAA,EAAAA,CAAAA;0BACD5C,GAAC6C,CAAAA,mBAAAA,EAAAA,EAAAA,CAAAA;AACD,0BAAA7C,GAAA,CAACwC,QAAQM,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAA5D,IAACC,CAAAA,IAAAA,EAAAA;oBAAKG,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;oBAAUK,GAAK,EAAA,CAAA;oBAAGmD,aAAe,EAAA,EAAA;;sCACnE/C,GAACgD,CAAAA,0BAAAA,EAAAA,EAAAA,CAAAA;AACD,sCAAAhD,GAAA,CAACiD,KAAKC,IAAI,EAAA;4BAACtD,GAAK,EAAA,CAAA;sCACboC,aAAgBmB,EAAAA,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;gCACpB,qBACEpD,GAAA,CAACiD,KAAKI,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGC,CAAG,EAAA,EAAA;AACpB,oCAAA,QAAA,gBAAAvD,GAACtC,CAAAA,UAAAA,EAAAA;AACCC,wCAAAA,KAAAA,EAAOyF,OAAOzF,KAAK;AACnBC,wCAAAA,IAAAA,EAAMwF,OAAOxF,IAAI;AACjBE,wCAAAA,WAAAA,EAAasF,OAAOtF,WAAW;AAC/BE,wCAAAA,IAAAA,EAAMoF,OAAOpF,IAAI;AAEjB,wCAAA,QAAA,gBAAAgC,GAACmB,CAAAA,eAAAA,EAAAA;AAAgBC,4CAAAA,SAAAA,EAAWgC,OAAOhC;;;AAPRgC,iCAAAA,EAAAA,MAAAA,CAAOI,GAAG,CAAA;AAW7C,6BAAA;;;;;;;AAMZ;AAEA;;AAEkG,2GAE5FC,QAAW,GAAA,IAAA;IACf,MAAMpB,IAAAA,GAAOqB,aACXhC,CAAAA,UAAAA;AAEA,IAAA,UAAY,CAAC,MAAM,OAAO,6CAAA,CAAyC,EAAGiC,UAAU,CAAA;;AAIlF,IAAA,IAAI,CAACtB,IAAM,EAAA;QACT,OAAO,IAAA;AACT;AAEA,IAAA,qBAAOrC,GAACqC,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACV;;;;"}
|
|
1
|
+
{"version":3,"file":"HomePage.mjs","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (!permissions || permissions.length === 0) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n textAlign=\"right\"\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const filteredWidgets = React.useMemo(\n () =>\n getAllWidgets().filter(\n (widget) =>\n !widget.roles ||\n user?.roles?.some((userRole) => widget.roles?.find((role) => userRole.code === role))\n ),\n [getAllWidgets, user?.roles]\n );\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Grid.Root gap={5}>\n {filteredWidgets.map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","textAlign","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","HomePageCE","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","filteredWidgets","useMemo","filter","widget","roles","some","userRole","find","role","code","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","FreeTrialWelcomeModal","FreeTrialEndedModal","Content","paddingBottom","GuidedTourHomepageOverview","Grid","Root","map","Item","col","s","uid","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sources":["../../../../../admin/src/services/admin.ts"],"sourcesContent":["import {\n type TelemetryProperties,\n type Init,\n type Information,\n type GetProjectSettings,\n type UpdateProjectSettings,\n type Plugins,\n type GetLicenseLimitInformation,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\nimport { prefixFileUrlWithBackendUrl } from '../utils/urls';\n\nimport { adminApi } from './api';\n\ninterface ConfigurationLogo {\n custom?: {\n name?: string;\n url?: string;\n };\n default: string;\n}\n\nconst admin = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ProjectSettings', 'LicenseLimits', 'LicenseTrialTimeLeft'
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../../../../../admin/src/services/admin.ts"],"sourcesContent":["import {\n type TelemetryProperties,\n type Init,\n type Information,\n type GetProjectSettings,\n type UpdateProjectSettings,\n type Plugins,\n type GetLicenseLimitInformation,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\nimport { prefixFileUrlWithBackendUrl } from '../utils/urls';\n\nimport { adminApi } from './api';\n\ninterface ConfigurationLogo {\n custom?: {\n name?: string;\n url?: string;\n };\n default: string;\n}\n\nconst admin = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ProjectSettings', 'LicenseLimits', 'LicenseTrialTimeLeft'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n init: builder.query<Init.Response['data'], void>({\n query: () => ({\n url: '/admin/init',\n method: 'GET',\n }),\n transformResponse(res: Init.Response) {\n return res.data;\n },\n providesTags: ['ProjectSettings'],\n }),\n information: builder.query<Information.Response['data'], void>({\n query: () => ({\n url: '/admin/information',\n method: 'GET',\n }),\n transformResponse(res: Information.Response) {\n return res.data;\n },\n }),\n telemetryProperties: builder.query<TelemetryProperties.Response['data'], void>({\n query: () => ({\n url: '/admin/telemetry-properties',\n method: 'GET',\n config: {\n validateStatus: (status: number) => status < 500,\n },\n }),\n transformResponse(res: TelemetryProperties.Response) {\n return res.data;\n },\n }),\n projectSettings: builder.query<\n { authLogo?: ConfigurationLogo['custom']; menuLogo?: ConfigurationLogo['custom'] },\n void\n >({\n query: () => ({\n url: '/admin/project-settings',\n method: 'GET',\n }),\n providesTags: ['ProjectSettings'],\n transformResponse(data: GetProjectSettings.Response) {\n return {\n authLogo: data.authLogo\n ? {\n name: data.authLogo.name,\n url: prefixFileUrlWithBackendUrl(data.authLogo.url),\n }\n : undefined,\n menuLogo: data.menuLogo\n ? {\n name: data.menuLogo.name,\n url: prefixFileUrlWithBackendUrl(data.menuLogo.url),\n }\n : undefined,\n };\n },\n }),\n updateProjectSettings: builder.mutation<UpdateProjectSettings.Response, FormData>({\n query: (data) => ({\n url: '/admin/project-settings',\n method: 'POST',\n data,\n config: {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n }),\n invalidatesTags: ['ProjectSettings'],\n }),\n getPlugins: builder.query<Plugins.Response, void>({\n query: () => ({\n url: '/admin/plugins',\n method: 'GET',\n }),\n }),\n getLicenseLimits: builder.query<GetLicenseLimitInformation.Response, void>({\n query: () => ({\n url: '/admin/license-limit-information',\n method: 'GET',\n }),\n providesTags: ['LicenseLimits'],\n }),\n getLicenseTrialTimeLeft: builder.query<{ trialEndsAt: string }, void>({\n query: () => ({\n url: '/admin/license-trial-time-left',\n method: 'GET',\n }),\n providesTags: ['LicenseTrialTimeLeft'],\n }),\n getGuidedTourMeta: builder.query<GetGuidedTourMeta.Response, void>({\n query: () => ({\n url: '/admin/guided-tour-meta',\n method: 'GET',\n }),\n providesTags: ['GuidedTourMeta'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n useGetLicenseTrialTimeLeftQuery,\n useGetGuidedTourMetaQuery,\n} = admin;\n\nexport {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n useGetLicenseTrialTimeLeftQuery,\n useGetGuidedTourMetaQuery,\n};\n\nexport type { ConfigurationLogo };\n"],"names":["admin","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","init","query","url","method","transformResponse","res","data","providesTags","information","telemetryProperties","config","validateStatus","status","projectSettings","authLogo","name","prefixFileUrlWithBackendUrl","undefined","menuLogo","updateProjectSettings","mutation","headers","invalidatesTags","getPlugins","getLicenseLimits","getLicenseTrialTimeLeft","getGuidedTourMeta","overrideExisting","useInitQuery","useTelemetryPropertiesQuery","useInformationQuery","useProjectSettingsQuery","useUpdateProjectSettingsMutation","useGetPluginsQuery","useGetLicenseLimitsQuery","useGetLicenseTrialTimeLeftQuery","useGetGuidedTourMetaQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mjs","sources":["../../../../../admin/src/services/admin.ts"],"sourcesContent":["import {\n type TelemetryProperties,\n type Init,\n type Information,\n type GetProjectSettings,\n type UpdateProjectSettings,\n type Plugins,\n type GetLicenseLimitInformation,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\nimport { prefixFileUrlWithBackendUrl } from '../utils/urls';\n\nimport { adminApi } from './api';\n\ninterface ConfigurationLogo {\n custom?: {\n name?: string;\n url?: string;\n };\n default: string;\n}\n\nconst admin = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ProjectSettings', 'LicenseLimits', 'LicenseTrialTimeLeft'
|
|
1
|
+
{"version":3,"file":"admin.mjs","sources":["../../../../../admin/src/services/admin.ts"],"sourcesContent":["import {\n type TelemetryProperties,\n type Init,\n type Information,\n type GetProjectSettings,\n type UpdateProjectSettings,\n type Plugins,\n type GetLicenseLimitInformation,\n GetGuidedTourMeta,\n} from '../../../shared/contracts/admin';\nimport { prefixFileUrlWithBackendUrl } from '../utils/urls';\n\nimport { adminApi } from './api';\n\ninterface ConfigurationLogo {\n custom?: {\n name?: string;\n url?: string;\n };\n default: string;\n}\n\nconst admin = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ProjectSettings', 'LicenseLimits', 'LicenseTrialTimeLeft'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n init: builder.query<Init.Response['data'], void>({\n query: () => ({\n url: '/admin/init',\n method: 'GET',\n }),\n transformResponse(res: Init.Response) {\n return res.data;\n },\n providesTags: ['ProjectSettings'],\n }),\n information: builder.query<Information.Response['data'], void>({\n query: () => ({\n url: '/admin/information',\n method: 'GET',\n }),\n transformResponse(res: Information.Response) {\n return res.data;\n },\n }),\n telemetryProperties: builder.query<TelemetryProperties.Response['data'], void>({\n query: () => ({\n url: '/admin/telemetry-properties',\n method: 'GET',\n config: {\n validateStatus: (status: number) => status < 500,\n },\n }),\n transformResponse(res: TelemetryProperties.Response) {\n return res.data;\n },\n }),\n projectSettings: builder.query<\n { authLogo?: ConfigurationLogo['custom']; menuLogo?: ConfigurationLogo['custom'] },\n void\n >({\n query: () => ({\n url: '/admin/project-settings',\n method: 'GET',\n }),\n providesTags: ['ProjectSettings'],\n transformResponse(data: GetProjectSettings.Response) {\n return {\n authLogo: data.authLogo\n ? {\n name: data.authLogo.name,\n url: prefixFileUrlWithBackendUrl(data.authLogo.url),\n }\n : undefined,\n menuLogo: data.menuLogo\n ? {\n name: data.menuLogo.name,\n url: prefixFileUrlWithBackendUrl(data.menuLogo.url),\n }\n : undefined,\n };\n },\n }),\n updateProjectSettings: builder.mutation<UpdateProjectSettings.Response, FormData>({\n query: (data) => ({\n url: '/admin/project-settings',\n method: 'POST',\n data,\n config: {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n }),\n invalidatesTags: ['ProjectSettings'],\n }),\n getPlugins: builder.query<Plugins.Response, void>({\n query: () => ({\n url: '/admin/plugins',\n method: 'GET',\n }),\n }),\n getLicenseLimits: builder.query<GetLicenseLimitInformation.Response, void>({\n query: () => ({\n url: '/admin/license-limit-information',\n method: 'GET',\n }),\n providesTags: ['LicenseLimits'],\n }),\n getLicenseTrialTimeLeft: builder.query<{ trialEndsAt: string }, void>({\n query: () => ({\n url: '/admin/license-trial-time-left',\n method: 'GET',\n }),\n providesTags: ['LicenseTrialTimeLeft'],\n }),\n getGuidedTourMeta: builder.query<GetGuidedTourMeta.Response, void>({\n query: () => ({\n url: '/admin/guided-tour-meta',\n method: 'GET',\n }),\n providesTags: ['GuidedTourMeta'],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n useGetLicenseTrialTimeLeftQuery,\n useGetGuidedTourMetaQuery,\n} = admin;\n\nexport {\n useInitQuery,\n useTelemetryPropertiesQuery,\n useInformationQuery,\n useProjectSettingsQuery,\n useUpdateProjectSettingsMutation,\n useGetPluginsQuery,\n useGetLicenseLimitsQuery,\n useGetLicenseTrialTimeLeftQuery,\n useGetGuidedTourMetaQuery,\n};\n\nexport type { ConfigurationLogo };\n"],"names":["admin","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","init","query","url","method","transformResponse","res","data","providesTags","information","telemetryProperties","config","validateStatus","status","projectSettings","authLogo","name","prefixFileUrlWithBackendUrl","undefined","menuLogo","updateProjectSettings","mutation","headers","invalidatesTags","getPlugins","getLicenseLimits","getLicenseTrialTimeLeft","getGuidedTourMeta","overrideExisting","useInitQuery","useTelemetryPropertiesQuery","useInformationQuery","useProjectSettingsQuery","useUpdateProjectSettingsMutation","useGetPluginsQuery","useGetLicenseLimitsQuery","useGetLicenseTrialTimeLeftQuery","useGetGuidedTourMetaQuery"],"mappings":"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"}
|
|
@@ -14,7 +14,10 @@ var baseQuery = require('../utils/baseQuery.js');
|
|
|
14
14
|
*/ const adminApi = react.createApi({
|
|
15
15
|
reducerPath: 'adminApi',
|
|
16
16
|
baseQuery: baseQuery.fetchBaseQuery(),
|
|
17
|
-
tagTypes: [
|
|
17
|
+
tagTypes: [
|
|
18
|
+
'GuidedTourMeta',
|
|
19
|
+
'HomepageKeyStatistics'
|
|
20
|
+
],
|
|
18
21
|
endpoints: ()=>({})
|
|
19
22
|
});
|
|
20
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: [],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;AAAwB,KAAA;IACrDC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -12,7 +12,10 @@ import { fetchBaseQuery } from '../utils/baseQuery.mjs';
|
|
|
12
12
|
*/ const adminApi = createApi({
|
|
13
13
|
reducerPath: 'adminApi',
|
|
14
14
|
baseQuery: fetchBaseQuery(),
|
|
15
|
-
tagTypes: [
|
|
15
|
+
tagTypes: [
|
|
16
|
+
'GuidedTourMeta',
|
|
17
|
+
'HomepageKeyStatistics'
|
|
18
|
+
],
|
|
16
19
|
endpoints: ()=>({})
|
|
17
20
|
});
|
|
18
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: [],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;
|
|
1
|
+
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA;AAAwB,KAAA;IACrDC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -4,8 +4,7 @@ var api = require('./api.js');
|
|
|
4
4
|
|
|
5
5
|
const apiTokensService = api.adminApi.enhanceEndpoints({
|
|
6
6
|
addTagTypes: [
|
|
7
|
-
'ApiToken'
|
|
8
|
-
'GuidedTourMeta'
|
|
7
|
+
'ApiToken'
|
|
9
8
|
]
|
|
10
9
|
}).injectEndpoints({
|
|
11
10
|
endpoints: (builder)=>({
|
|
@@ -45,7 +44,8 @@ const apiTokensService = api.adminApi.enhanceEndpoints({
|
|
|
45
44
|
type: 'ApiToken',
|
|
46
45
|
id: 'LIST'
|
|
47
46
|
},
|
|
48
|
-
'GuidedTourMeta'
|
|
47
|
+
'GuidedTourMeta',
|
|
48
|
+
'HomepageKeyStatistics'
|
|
49
49
|
]
|
|
50
50
|
}),
|
|
51
51
|
deleteAPIToken: builder.mutation({
|
|
@@ -58,7 +58,8 @@ const apiTokensService = api.adminApi.enhanceEndpoints({
|
|
|
58
58
|
{
|
|
59
59
|
type: 'ApiToken',
|
|
60
60
|
id
|
|
61
|
-
}
|
|
61
|
+
},
|
|
62
|
+
'HomepageKeyStatistics'
|
|
62
63
|
]
|
|
63
64
|
}),
|
|
64
65
|
updateAPIToken: builder.mutation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'
|
|
1
|
+
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [\n { type: 'ApiToken' as const, id: 'LIST' },\n 'GuidedTourMeta',\n 'HomepageKeyStatistics',\n ],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":"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"}
|
|
@@ -2,8 +2,7 @@ import { adminApi } from './api.mjs';
|
|
|
2
2
|
|
|
3
3
|
const apiTokensService = adminApi.enhanceEndpoints({
|
|
4
4
|
addTagTypes: [
|
|
5
|
-
'ApiToken'
|
|
6
|
-
'GuidedTourMeta'
|
|
5
|
+
'ApiToken'
|
|
7
6
|
]
|
|
8
7
|
}).injectEndpoints({
|
|
9
8
|
endpoints: (builder)=>({
|
|
@@ -43,7 +42,8 @@ const apiTokensService = adminApi.enhanceEndpoints({
|
|
|
43
42
|
type: 'ApiToken',
|
|
44
43
|
id: 'LIST'
|
|
45
44
|
},
|
|
46
|
-
'GuidedTourMeta'
|
|
45
|
+
'GuidedTourMeta',
|
|
46
|
+
'HomepageKeyStatistics'
|
|
47
47
|
]
|
|
48
48
|
}),
|
|
49
49
|
deleteAPIToken: builder.mutation({
|
|
@@ -56,7 +56,8 @@ const apiTokensService = adminApi.enhanceEndpoints({
|
|
|
56
56
|
{
|
|
57
57
|
type: 'ApiToken',
|
|
58
58
|
id
|
|
59
|
-
}
|
|
59
|
+
},
|
|
60
|
+
'HomepageKeyStatistics'
|
|
60
61
|
]
|
|
61
62
|
}),
|
|
62
63
|
updateAPIToken: builder.mutation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens.mjs","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'
|
|
1
|
+
{"version":3,"file":"apiTokens.mjs","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [\n { type: 'ApiToken' as const, id: 'LIST' },\n 'GuidedTourMeta',\n 'HomepageKeyStatistics',\n ],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var api = require('./api.js');
|
|
4
|
+
|
|
5
|
+
const homepageService = api.adminApi.enhanceEndpoints({
|
|
6
|
+
addTagTypes: [
|
|
7
|
+
'CountDocuments'
|
|
8
|
+
]
|
|
9
|
+
}).injectEndpoints({
|
|
10
|
+
endpoints: (builder)=>({
|
|
11
|
+
getKeyStatistics: builder.query({
|
|
12
|
+
query: ()=>'/admin/homepage/key-statistics',
|
|
13
|
+
transformResponse: (response)=>response.data,
|
|
14
|
+
providesTags: (_, _err)=>[
|
|
15
|
+
'HomepageKeyStatistics'
|
|
16
|
+
]
|
|
17
|
+
}),
|
|
18
|
+
getCountDocuments: builder.query({
|
|
19
|
+
query: ()=>'/content-manager/homepage/count-documents',
|
|
20
|
+
transformResponse: (response)=>response.data,
|
|
21
|
+
providesTags: (_, _err)=>[
|
|
22
|
+
'CountDocuments'
|
|
23
|
+
]
|
|
24
|
+
})
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;
|
|
28
|
+
|
|
29
|
+
exports.useGetCountDocumentsQuery = useGetCountDocumentsQuery;
|
|
30
|
+
exports.useGetKeyStatisticsQuery = useGetKeyStatisticsQuery;
|
|
31
|
+
//# sourceMappingURL=homepage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n }),\n });\n\nconst { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;\n\nexport { useGetKeyStatisticsQuery, useGetCountDocumentsQuery };\n"],"names":["homepageService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getKeyStatistics","query","transformResponse","response","data","providesTags","_","_err","getCountDocuments","useGetKeyStatisticsQuery","useGetCountDocumentsQuery"],"mappings":";;;;AAIA,MAAMA,eAAAA,GAAkBC,YACrBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAiB;AACjC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,gBAAkBD,EAAAA,OAAAA,CAAQE,KAAK,CAAmD;AAChFA,gBAAAA,KAAAA,EAAO,IAAM,gCAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAiDA,GAAAA,QAAAA,CAASC,IAAI;gBAClFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAwB;AACtD,aAAA,CAAA;YACAC,iBAAmBT,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,2CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAkDA,GAAAA,QAAAA,CAASC,IAAI;gBACnFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAiB;AAC/C,aAAA;SACF;AACF,CAAA,CAAA;AAEF,MAAM,EAAEE,wBAAwB,EAAEC,yBAAyB,EAAE,GAAGjB;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { adminApi } from './api.mjs';
|
|
2
|
+
|
|
3
|
+
const homepageService = adminApi.enhanceEndpoints({
|
|
4
|
+
addTagTypes: [
|
|
5
|
+
'CountDocuments'
|
|
6
|
+
]
|
|
7
|
+
}).injectEndpoints({
|
|
8
|
+
endpoints: (builder)=>({
|
|
9
|
+
getKeyStatistics: builder.query({
|
|
10
|
+
query: ()=>'/admin/homepage/key-statistics',
|
|
11
|
+
transformResponse: (response)=>response.data,
|
|
12
|
+
providesTags: (_, _err)=>[
|
|
13
|
+
'HomepageKeyStatistics'
|
|
14
|
+
]
|
|
15
|
+
}),
|
|
16
|
+
getCountDocuments: builder.query({
|
|
17
|
+
query: ()=>'/content-manager/homepage/count-documents',
|
|
18
|
+
transformResponse: (response)=>response.data,
|
|
19
|
+
providesTags: (_, _err)=>[
|
|
20
|
+
'CountDocuments'
|
|
21
|
+
]
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;
|
|
26
|
+
|
|
27
|
+
export { useGetCountDocumentsQuery, useGetKeyStatisticsQuery };
|
|
28
|
+
//# sourceMappingURL=homepage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n }),\n });\n\nconst { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;\n\nexport { useGetKeyStatisticsQuery, useGetCountDocumentsQuery };\n"],"names":["homepageService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getKeyStatistics","query","transformResponse","response","data","providesTags","_","_err","getCountDocuments","useGetKeyStatisticsQuery","useGetCountDocumentsQuery"],"mappings":";;AAIA,MAAMA,eAAAA,GAAkBC,QACrBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAiB;AACjC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,gBAAkBD,EAAAA,OAAAA,CAAQE,KAAK,CAAmD;AAChFA,gBAAAA,KAAAA,EAAO,IAAM,gCAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAiDA,GAAAA,QAAAA,CAASC,IAAI;gBAClFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAwB;AACtD,aAAA,CAAA;YACAC,iBAAmBT,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,2CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAkDA,GAAAA,QAAAA,CAASC,IAAI;gBACnFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAiB;AAC/C,aAAA;SACF;AACF,CAAA,CAAA;AAEF,MAAM,EAAEE,wBAAwB,EAAEC,yBAAyB,EAAE,GAAGjB;;;;"}
|
|
@@ -25,7 +25,8 @@ const usersService = api.adminApi.enhanceEndpoints({
|
|
|
25
25
|
{
|
|
26
26
|
type: 'User',
|
|
27
27
|
id: 'LIST'
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
|
+
'HomepageKeyStatistics'
|
|
29
30
|
]
|
|
30
31
|
}),
|
|
31
32
|
updateUser: builder.mutation({
|
|
@@ -105,7 +106,8 @@ const usersService = api.adminApi.enhanceEndpoints({
|
|
|
105
106
|
{
|
|
106
107
|
type: 'User',
|
|
107
108
|
id: 'LIST'
|
|
108
|
-
}
|
|
109
|
+
},
|
|
110
|
+
'HomepageKeyStatistics'
|
|
109
111
|
]
|
|
110
112
|
}),
|
|
111
113
|
/**
|