@strapi/admin 4.2.0 → 4.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/admin/src/app.js +7 -4
  2. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +3 -3
  3. package/admin/src/content-manager/components/SelectMany/index.js +2 -4
  4. package/admin/src/content-manager/components/SelectWrapper/index.js +1 -13
  5. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +1 -1
  6. package/admin/src/pages/Admin/index.js +15 -5
  7. package/admin/src/pages/App/constants.js +1 -0
  8. package/admin/src/pages/App/index.js +17 -3
  9. package/admin/src/pages/App/reducer.js +22 -0
  10. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
  11. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +7 -3
  12. package/admin/src/reducers.js +4 -2
  13. package/admin/src/tsconfig.json +10 -0
  14. package/build/{9158.e48d88af.chunk.js → 1820.ca954075.chunk.js} +31 -31
  15. package/build/20.9e5a98b6.chunk.js +308 -0
  16. package/build/3531.231e0eb6.chunk.js +10 -0
  17. package/build/{9115.abdf4e3b.chunk.js → 4073.e144a91a.chunk.js} +1 -1
  18. package/build/413.d5986568.chunk.js +284 -0
  19. package/build/{7757.f6eb5e92.chunk.js → 472.d43be8bb.chunk.js} +2 -2
  20. package/build/5250.24040688.chunk.js +11 -0
  21. package/build/6229.53b33cf0.chunk.js +194 -0
  22. package/build/7418.6db737ce.chunk.js +112 -0
  23. package/build/8773.54a26ded.chunk.js +327 -0
  24. package/build/9262.25aa12a5.chunk.js +1 -0
  25. package/build/Admin-authenticatedApp.52f3c150.chunk.js +80 -0
  26. package/build/{Admin_homePage.8c00145e.chunk.js → Admin_homePage.0ac648e8.chunk.js} +1 -1
  27. package/build/{Admin_marketplace.a88d5bda.chunk.js → Admin_marketplace.71c66b49.chunk.js} +2 -2
  28. package/build/Admin_pluginsPage.788fb2f6.chunk.js +1 -0
  29. package/build/{Admin_profilePage.33cfed9b.chunk.js → Admin_profilePage.27191ed2.chunk.js} +2 -2
  30. package/build/Admin_settingsPage.021da806.chunk.js +178 -0
  31. package/build/{admin-edit-roles-page.e77a2acc.chunk.js → admin-edit-roles-page.fb374555.chunk.js} +1 -1
  32. package/build/admin-edit-users.a360deaf.chunk.js +10 -0
  33. package/build/admin-users.47d06d24.chunk.js +11 -0
  34. package/build/{api-tokens-create-page.618b3e40.chunk.js → api-tokens-create-page.698f132d.chunk.js} +1 -1
  35. package/build/{api-tokens-edit-page.8d19dfe1.chunk.js → api-tokens-edit-page.afece2fe.chunk.js} +1 -1
  36. package/build/{api-tokens-list-page.274e1c80.chunk.js → api-tokens-list-page.46d96dee.chunk.js} +1 -1
  37. package/build/{codemirror-css.98490df3.chunk.js → codemirror-css.b467b1de.chunk.js} +2 -2
  38. package/build/{codemirror-javacript.cafbda9c.chunk.js → codemirror-javacript.41bdefda.chunk.js} +1 -1
  39. package/build/codemirror-theme.cf9f9eb6.chunk.js +34 -0
  40. package/build/content-manager.afcc3624.chunk.js +1182 -0
  41. package/build/content-type-builder.e73879b9.chunk.js +141 -0
  42. package/build/{cropper-css.0055cd53.chunk.js → cropper-css.ecc0d670.chunk.js} +2 -2
  43. package/build/{email-settings-page.4ae595f6.chunk.js → email-settings-page.8871dfe8.chunk.js} +2 -2
  44. package/build/{fontawesome-css-all.b88d464e.chunk.js → fontawesome-css-all.04f33619.chunk.js} +3 -3
  45. package/build/{fontawesome-css.59dc4459.chunk.js → fontawesome-css.477ba714.chunk.js} +2 -2
  46. package/build/highlight.js.3381ffc3.chunk.js +86 -0
  47. package/build/{i18n-settings-page.bdac3c7b.chunk.js → i18n-settings-page.dfb4eb01.chunk.js} +1 -1
  48. package/build/index.html +1 -1
  49. package/build/main.ca3856ed.js +8640 -0
  50. package/build/{runtime~main.de49adfd.js → runtime~main.48a46dd2.js} +1 -1
  51. package/build/sso-settings-page.dfb0b917.chunk.js +1 -0
  52. package/build/{upload-settings.cadfd452.chunk.js → upload-settings.8d8c672a.chunk.js} +1 -1
  53. package/build/upload-translation-de-json.745613c0.chunk.js +1 -0
  54. package/build/upload-translation-dk-json.cb25dcf0.chunk.js +1 -0
  55. package/build/upload-translation-en-json.e78688a0.chunk.js +1 -0
  56. package/build/upload-translation-es-json.1f344b53.chunk.js +1 -0
  57. package/build/upload-translation-fr-json.e21c0c7a.chunk.js +1 -0
  58. package/build/upload-translation-he-json.4ce77b7b.chunk.js +1 -0
  59. package/build/upload-translation-it-json.5ce11e0b.chunk.js +1 -0
  60. package/build/upload-translation-ja-json.22afae44.chunk.js +1 -0
  61. package/build/upload-translation-ko-json.9a2c21cb.chunk.js +1 -0
  62. package/build/upload-translation-ms-json.0605d6da.chunk.js +1 -0
  63. package/build/upload-translation-pl-json.e534b676.chunk.js +1 -0
  64. package/build/upload-translation-pt-BR-json.95686cfb.chunk.js +1 -0
  65. package/build/upload-translation-ru-json.37bd1546.chunk.js +1 -0
  66. package/build/upload-translation-sk-json.b03d4904.chunk.js +1 -0
  67. package/build/upload-translation-th-json.64dd70ce.chunk.js +1 -0
  68. package/build/upload-translation-uk-json.1328cb3e.chunk.js +1 -0
  69. package/build/{upload-translation-zh-Hans-json.c9622577.chunk.js → upload-translation-zh-Hans-json.6832ff81.chunk.js} +1 -1
  70. package/build/upload-translation-zh-json.ee8fba96.chunk.js +1 -0
  71. package/build/upload.5622b777.chunk.js +7 -0
  72. package/build/{users-advanced-settings-page.646b6f29.chunk.js → users-advanced-settings-page.4af9e241.chunk.js} +1 -1
  73. package/build/users-email-settings-page.d69c0d87.chunk.js +101 -0
  74. package/build/users-providers-settings-page.fc1fda6d.chunk.js +101 -0
  75. package/build/{users-roles-settings-page.28bf6bdc.chunk.js → users-roles-settings-page.988ebc3b.chunk.js} +2 -2
  76. package/build/{webhook-edit-page.ca670f8d.chunk.js → webhook-edit-page.a7ae6e3b.chunk.js} +2 -2
  77. package/build/{webhook-list-page.7057f1e8.chunk.js → webhook-list-page.057f396c.chunk.js} +1 -1
  78. package/index.js +47 -239
  79. package/package.json +10 -5
  80. package/scripts/build.js +19 -3
  81. package/server/controllers/admin.js +21 -0
  82. package/server/policies/index.js +1 -0
  83. package/server/policies/isTelemetryEnabled.js +16 -0
  84. package/server/routes/admin.js +8 -0
  85. package/server/routes/serve-admin-panel.js +1 -1
  86. package/utils/create-cache-dir.js +131 -0
  87. package/utils/get-custom-app-config-file.js +28 -0
  88. package/utils/get-custom-webpack-config.js +38 -0
  89. package/utils/get-plugins-path.js +26 -0
  90. package/utils/index.js +13 -0
  91. package/utils/should-build-admin.js +52 -0
  92. package/utils/watch-admin-files.js +59 -0
  93. package/webpack.config.js +28 -5
  94. package/admin/src/content-manager/components/SelectWrapper/ClearIndicator.js +0 -18
  95. package/admin/src/content-manager/components/SelectWrapper/DropdownIndicator.js +0 -24
  96. package/admin/src/content-manager/components/SelectWrapper/IconBox.js +0 -20
  97. package/admin/src/content-manager/components/SelectWrapper/IndicatorSeparator.js +0 -3
  98. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +0 -92
  99. package/build/2758.9475712b.chunk.js +0 -162
  100. package/build/2912.dd031292.chunk.js +0 -253
  101. package/build/4982.c57c5675.chunk.js +0 -308
  102. package/build/7197.ed8d6752.chunk.js +0 -113
  103. package/build/7589.577cf729.chunk.js +0 -194
  104. package/build/7841.9e9cf739.chunk.js +0 -253
  105. package/build/8681.aec05472.chunk.js +0 -163
  106. package/build/9298.cb3b6bc1.chunk.js +0 -334
  107. package/build/948.d64fb515.chunk.js +0 -2
  108. package/build/Admin-authenticatedApp.e7ed0550.chunk.js +0 -80
  109. package/build/Admin_pluginsPage.e895d79f.chunk.js +0 -1
  110. package/build/Admin_settingsPage.fe33e0a2.chunk.js +0 -180
  111. package/build/admin-edit-users.4c49fe98.chunk.js +0 -11
  112. package/build/admin-users.b89adf82.chunk.js +0 -12
  113. package/build/codemirror-theme.b3c64617.chunk.js +0 -34
  114. package/build/content-manager.04b93497.chunk.js +0 -1204
  115. package/build/content-type-builder.b3139cb1.chunk.js +0 -141
  116. package/build/highlight.js.9d8ef460.chunk.js +0 -86
  117. package/build/main.3257934a.js +0 -8404
  118. package/build/sso-settings-page.0b4d2106.chunk.js +0 -1
  119. package/build/upload-translation-de-json.b642da08.chunk.js +0 -1
  120. package/build/upload-translation-dk-json.fc61df13.chunk.js +0 -1
  121. package/build/upload-translation-en-json.59269508.chunk.js +0 -1
  122. package/build/upload-translation-es-json.8ec935ef.chunk.js +0 -1
  123. package/build/upload-translation-fr-json.eb9b4f84.chunk.js +0 -1
  124. package/build/upload-translation-he-json.c226f2dc.chunk.js +0 -1
  125. package/build/upload-translation-it-json.8e58456e.chunk.js +0 -1
  126. package/build/upload-translation-ja-json.1378a2e7.chunk.js +0 -1
  127. package/build/upload-translation-ko-json.5e06e112.chunk.js +0 -1
  128. package/build/upload-translation-ms-json.dc3bf0d7.chunk.js +0 -1
  129. package/build/upload-translation-pl-json.6071e38c.chunk.js +0 -1
  130. package/build/upload-translation-pt-BR-json.7e8d9550.chunk.js +0 -1
  131. package/build/upload-translation-ru-json.da2529f3.chunk.js +0 -1
  132. package/build/upload-translation-sk-json.bfdf4f09.chunk.js +0 -1
  133. package/build/upload-translation-th-json.6a48b826.chunk.js +0 -1
  134. package/build/upload-translation-uk-json.6fb09148.chunk.js +0 -1
  135. package/build/upload-translation-zh-json.711f804b.chunk.js +0 -1
  136. package/build/upload.fbc65439.chunk.js +0 -105
  137. package/build/users-email-settings-page.8b561ea3.chunk.js +0 -1
  138. package/build/users-providers-settings-page.82141ace.chunk.js +0 -1
package/admin/src/app.js CHANGED
@@ -1,6 +1,9 @@
1
+ const config = {
2
+ locales: ['fr'],
3
+ };
4
+ const bootstrap = () => {};
5
+
1
6
  export default {
2
- config: {
3
- locales: ['fr'],
4
- },
5
- bootstrap() {},
7
+ config,
8
+ bootstrap,
6
9
  };
@@ -15,12 +15,12 @@ import {
15
15
  useOverlayBlocker,
16
16
  useTracking,
17
17
  getYupInnerErrors,
18
+ getAPIInnerErrors,
18
19
  } from '@strapi/helper-plugin';
19
20
 
20
21
  import { getTrad, removeKeyInObject } from '../../utils';
21
22
  import reducer, { initialState } from './reducer';
22
23
  import { cleanData, createYupSchema } from './utils';
23
- import { getAPIInnerError } from './utils/getAPIInnerError';
24
24
 
25
25
  const EditViewDataManagerProvider = ({
26
26
  allLayoutData,
@@ -316,7 +316,7 @@ const EditViewDataManagerProvider = ({
316
316
  } catch (err) {
317
317
  errors = {
318
318
  ...errors,
319
- ...getAPIInnerError(err),
319
+ ...getAPIInnerErrors(err),
320
320
  };
321
321
  }
322
322
 
@@ -352,7 +352,7 @@ const EditViewDataManagerProvider = ({
352
352
  } catch (err) {
353
353
  errors = {
354
354
  ...errors,
355
- ...getAPIInnerError(err),
355
+ ...getAPIInnerErrors(err),
356
356
  };
357
357
  }
358
358
 
@@ -2,7 +2,8 @@ import React, { memo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useIntl } from 'react-intl';
4
4
  import isEmpty from 'lodash/isEmpty';
5
- import Select, { createFilter } from 'react-select';
5
+ import { createFilter } from 'react-select';
6
+ import { ReactSelect as Select } from '@strapi/helper-plugin';
6
7
  import { Box } from '@strapi/design-system/Box';
7
8
  import { Stack } from '@strapi/design-system/Stack';
8
9
  import { Typography } from '@strapi/design-system/Typography';
@@ -24,7 +25,6 @@ function SelectMany({
24
25
  options,
25
26
  placeholder,
26
27
  searchToPersist,
27
- styles,
28
28
  targetModel,
29
29
  value,
30
30
  description,
@@ -72,7 +72,6 @@ function SelectMany({
72
72
  placeholder={formatMessage(
73
73
  placeholder || { id: 'global.select', defaultMessage: 'Select...' }
74
74
  )}
75
- styles={styles}
76
75
  value={[]}
77
76
  />
78
77
  <Box paddingTop={3} style={{ overflow: 'auto' }}>
@@ -138,7 +137,6 @@ SelectMany.propTypes = {
138
137
  defaultMessage: PropTypes.string.isRequired,
139
138
  }),
140
139
  searchToPersist: PropTypes.string,
141
- styles: PropTypes.object.isRequired,
142
140
  targetModel: PropTypes.string.isRequired,
143
141
  value: PropTypes.array,
144
142
  description: PropTypes.string,
@@ -2,7 +2,7 @@ import React, { useCallback, useState, useEffect, useMemo, memo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useIntl } from 'react-intl';
4
4
  import { useLocation } from 'react-router-dom';
5
- import { useTheme } from 'styled-components';
5
+ import { Stack } from '@strapi/design-system/Stack';
6
6
  import findIndex from 'lodash/findIndex';
7
7
  import get from 'lodash/get';
8
8
  import isArray from 'lodash/isArray';
@@ -16,18 +16,13 @@ import {
16
16
  } from '@strapi/helper-plugin';
17
17
  import { stringify } from 'qs';
18
18
  import axios from 'axios';
19
- import { Stack } from '@strapi/design-system/Stack';
20
19
  import { axiosInstance } from '../../../core/utils';
21
20
  import { getTrad } from '../../utils';
22
21
  import Label from './Label';
23
22
  import SelectOne from '../SelectOne';
24
23
  import SelectMany from '../SelectMany';
25
- import ClearIndicator from './ClearIndicator';
26
- import DropdownIndicator from './DropdownIndicator';
27
- import IndicatorSeparator from './IndicatorSeparator';
28
24
  import Option from './Option';
29
25
  import { connect, select } from './utils';
30
- import getSelectStyles from './utils/getSelectStyles';
31
26
 
32
27
  const initialPaginationState = {
33
28
  contains: '',
@@ -77,7 +72,6 @@ function SelectWrapper({
77
72
  onRemoveRelation,
78
73
  } = useCMEditViewDataManager();
79
74
  const { pathname } = useLocation();
80
- const theme = useTheme();
81
75
 
82
76
  const value = get(modifiedData, name, null);
83
77
  const [state, setState] = useState(initialPaginationState);
@@ -278,8 +272,6 @@ function SelectWrapper({
278
272
  return <NotAllowedInput intlLabel={intlLabel} labelAction={labelAction} />;
279
273
  }
280
274
 
281
- const styles = getSelectStyles(theme);
282
-
283
275
  return (
284
276
  <Stack spacing={1}>
285
277
  <Label
@@ -293,9 +285,6 @@ function SelectWrapper({
293
285
  <Component
294
286
  addRelation={handleAddRelation}
295
287
  components={{
296
- ClearIndicator,
297
- DropdownIndicator,
298
- IndicatorSeparator,
299
288
  Option,
300
289
  }}
301
290
  displayNavigationLink={shouldDisplayRelationLink}
@@ -315,7 +304,6 @@ function SelectWrapper({
315
304
  onRemove={onRemoveRelation}
316
305
  placeholder={placeholder}
317
306
  searchToPersist={searchToPersist}
318
- styles={styles}
319
307
  targetModel={targetModel}
320
308
  value={value}
321
309
  description={description}
@@ -2,7 +2,7 @@ import { useQuery } from 'react-query';
2
2
  import { useNotification } from '@strapi/helper-plugin';
3
3
  import { fetchMarketplacePlugins } from './utils/api';
4
4
 
5
- const useFetchMarketplaceProviders = (notifyLoad) => {
5
+ const useFetchMarketplaceProviders = notifyLoad => {
6
6
  const toggleNotification = useNotification();
7
7
 
8
8
  return useQuery('list-marketplace-providers', () => fetchMarketplacePlugins(), {
@@ -6,16 +6,17 @@
6
6
 
7
7
  import React, { Suspense, useEffect, useMemo, lazy } from 'react';
8
8
  import { Switch, Route } from 'react-router-dom';
9
- // Components from @strapi/helper-plugin
10
9
  import { useTracking, LoadingIndicatorPage, useStrapiApp } from '@strapi/helper-plugin';
10
+ import { useDispatch, useSelector } from 'react-redux';
11
11
  import { DndProvider } from 'react-dnd';
12
12
  import { HTML5Backend } from 'react-dnd-html5-backend';
13
+ import GuidedTourModal from '../../components/GuidedTour/Modal';
13
14
  import LeftMenu from '../../components/LeftMenu';
14
15
  import AppLayout from '../../layouts/AppLayout';
15
16
  import { useMenu } from '../../hooks';
16
- import Onboarding from './Onboarding';
17
17
  import { createRoute } from '../../utils';
18
- import GuidedTourModal from '../../components/GuidedTour/Modal';
18
+ import { SET_APP_RUNTIME_STATUS } from '../App/constants';
19
+ import Onboarding from './Onboarding';
19
20
 
20
21
  const CM = lazy(() =>
21
22
  import(/* webpackChunkName: "content-manager" */ '../../content-manager/pages/App')
@@ -40,11 +41,20 @@ const SettingsPage = lazy(() =>
40
41
  // Simple hook easier for testing
41
42
  const useTrackUsage = () => {
42
43
  const { trackUsage } = useTracking();
44
+ const dispatch = useDispatch();
45
+ const appStatus = useSelector(state => state.admin_app.status);
43
46
 
44
47
  useEffect(() => {
45
- trackUsage('didAccessAuthenticatedAdministration');
48
+ // Make sure the event is only send once after accessing the admin panel
49
+ // and not at runtime for example when regenerating the permissions with the ctb
50
+ // or with i18n
51
+ if (appStatus === 'init') {
52
+ trackUsage('didAccessAuthenticatedAdministration');
53
+
54
+ dispatch({ type: SET_APP_RUNTIME_STATUS });
55
+ }
46
56
  // eslint-disable-next-line react-hooks/exhaustive-deps
47
- }, []);
57
+ }, [appStatus]);
48
58
  };
49
59
 
50
60
  const Admin = () => {
@@ -0,0 +1 @@
1
+ export const SET_APP_RUNTIME_STATUS = 'StrapiAdmin/APP/SET_APP_RUNTIME_STATUS';
@@ -14,6 +14,7 @@ import {
14
14
  TrackingContext,
15
15
  prefixFileUrlWithBackendUrl,
16
16
  } from '@strapi/helper-plugin';
17
+ import axios from 'axios';
17
18
  import { SkipToContent } from '@strapi/design-system/Main';
18
19
  import { useIntl } from 'react-intl';
19
20
  import PrivateRoute from '../../components/PrivateRoute';
@@ -41,6 +42,8 @@ function App() {
41
42
  );
42
43
  }, []);
43
44
 
45
+ const [telemetryProperties, setTelemetryProperties] = useState(null);
46
+
44
47
  useEffect(() => {
45
48
  const currentToken = auth.getToken();
46
49
 
@@ -69,12 +72,20 @@ function App() {
69
72
  const getData = async () => {
70
73
  try {
71
74
  const {
72
- data: { hasAdmin, uuid, menuLogo },
73
- } = await request('/admin/init', { method: 'GET' });
75
+ data: {
76
+ data: { hasAdmin, uuid, menuLogo },
77
+ },
78
+ } = await axios.get(`${strapi.backendURL}/admin/init`);
74
79
 
75
80
  updateProjectSettings({ menuLogo: prefixFileUrlWithBackendUrl(menuLogo) });
76
81
 
77
82
  if (uuid) {
83
+ const {
84
+ data: { data: properties },
85
+ } = await axios.get(`${strapi.backendURL}/admin/telemetry-properties`);
86
+
87
+ setTelemetryProperties(properties);
88
+
78
89
  try {
79
90
  const deviceId = await getUID();
80
91
 
@@ -84,6 +95,9 @@ function App() {
84
95
  event: 'didInitializeAdministration',
85
96
  uuid,
86
97
  deviceId,
98
+ properties: {
99
+ ...properties,
100
+ },
87
101
  }),
88
102
  headers: {
89
103
  'Content-Type': 'application/json',
@@ -115,7 +129,7 @@ function App() {
115
129
  return (
116
130
  <Suspense fallback={<LoadingIndicatorPage />}>
117
131
  <SkipToContent>{formatMessage({ id: 'skipToContent' })}</SkipToContent>
118
- <TrackingContext.Provider value={uuid}>
132
+ <TrackingContext.Provider value={{ uuid, telemetryProperties }}>
119
133
  <Switch>
120
134
  {authRoutes}
121
135
  <Route
@@ -0,0 +1,22 @@
1
+ import produce from 'immer';
2
+ import { SET_APP_RUNTIME_STATUS } from './constants';
3
+
4
+ const initialState = {
5
+ status: 'init',
6
+ };
7
+
8
+ const reducer = (state = initialState, action) =>
9
+ /* eslint-disable-next-line consistent-return */
10
+ produce(state, draftState => {
11
+ switch (action.type) {
12
+ case SET_APP_RUNTIME_STATUS: {
13
+ draftState.status = 'runtime';
14
+ break;
15
+ }
16
+ default:
17
+ return draftState;
18
+ }
19
+ });
20
+
21
+ export { initialState };
22
+ export default reducer;
@@ -12,7 +12,7 @@ const NpmPackagesGrid = ({
12
12
  }) => {
13
13
  return (
14
14
  <Grid gap={4}>
15
- {npmPackages.map((npmPackage) => (
15
+ {npmPackages.map(npmPackage => (
16
16
  <GridItem col={4} s={6} xs={12} style={{ height: '100%' }} key={npmPackage.id}>
17
17
  <NpmPackageCard
18
18
  npmPackage={npmPackage}
@@ -18,8 +18,7 @@ const FromUrlForm = ({ goTo, next, onClose, setLocalImage }) => {
18
18
  setLogoUrl(e.target.value);
19
19
  };
20
20
 
21
- const handleSubmit = async e => {
22
- e.preventDefault();
21
+ const handleSubmit = async () => {
23
22
  try {
24
23
  const file = await urlToFile(logoUrl);
25
24
  const asset = await parseFileMetadatas(file);
@@ -36,7 +35,12 @@ const FromUrlForm = ({ goTo, next, onClose, setLocalImage }) => {
36
35
  };
37
36
 
38
37
  return (
39
- <form onSubmit={handleSubmit}>
38
+ <form
39
+ onSubmit={e => {
40
+ e.preventDefault();
41
+ handleSubmit();
42
+ }}
43
+ >
40
44
  <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>
41
45
  <TextInput
42
46
  label={formatMessage({
@@ -1,12 +1,13 @@
1
+ import appReducer from './pages/App/reducer';
1
2
  import rbacProviderReducer from './components/RBACProvider/reducer';
2
- import appReducer from './content-manager/pages/App/reducer';
3
+ import cmAppReducer from './content-manager/pages/App/reducer';
3
4
  import editViewLayoutManagerReducer from './content-manager/pages/EditViewLayoutManager/reducer';
4
5
  import listViewReducer from './content-manager/pages/ListView/reducer';
5
6
  import rbacManagerReducer from './content-manager/hooks/useSyncRbac/reducer';
6
7
  import editViewCrudReducer from './content-manager/sharedReducers/crudReducer/reducer';
7
8
 
8
9
  const contentManagerReducers = {
9
- 'content-manager_app': appReducer,
10
+ 'content-manager_app': cmAppReducer,
10
11
  'content-manager_listView': listViewReducer,
11
12
  'content-manager_rbacManager': rbacManagerReducer,
12
13
  'content-manager_editViewLayoutManager': editViewLayoutManagerReducer,
@@ -14,6 +15,7 @@ const contentManagerReducers = {
14
15
  };
15
16
 
16
17
  const reducers = {
18
+ admin_app: appReducer,
17
19
  rbacProvider: rbacProviderReducer,
18
20
  ...contentManagerReducers,
19
21
  };
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "@strapi/typescript-utils/tsconfigs/admin",
3
+
4
+ "include": [
5
+ "./",
6
+ "../../../**/admin/src/**/*",
7
+ "../../../../plugins/documentation/admin/src/**/*"
8
+ ],
9
+ "exclude": ["node_modules", "**/*.test.js", "*.js"]
10
+ }