@strapi/admin 4.1.3 → 4.1.4-alpha.2

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 (180) hide show
  1. package/admin/src/assets/images/icon_made-by-strapi.svg +5 -0
  2. package/admin/src/components/AuthenticatedApp/index.js +9 -2
  3. package/admin/src/components/AuthenticatedApp/utils/api.js +20 -1
  4. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +2 -2
  5. package/admin/src/components/GuidedTour/Homepage/index.js +1 -1
  6. package/admin/src/components/GuidedTour/Modal/components/Content.js +1 -1
  7. package/admin/src/components/GuidedTour/Modal/components/Modal.js +1 -1
  8. package/admin/src/components/LeftMenu/index.js +1 -1
  9. package/admin/src/components/Notifications/index.js +1 -1
  10. package/admin/src/components/UpgradePlanModal/index.js +2 -2
  11. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +4 -4
  12. package/admin/src/content-manager/components/ComponentInitializer/index.js +1 -1
  13. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +1 -1
  14. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +1 -1
  15. package/admin/src/content-manager/components/DynamicZone/components/Component/index.js +2 -2
  16. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  17. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/index.js +5 -2
  18. package/admin/src/content-manager/components/DynamicZone/index.js +2 -5
  19. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +1 -6
  20. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +0 -9
  21. package/admin/src/content-manager/components/FieldComponent/index.js +2 -5
  22. package/admin/src/content-manager/components/InputJSON/index.js +2 -5
  23. package/admin/src/content-manager/components/InputUID/index.js +1 -2
  24. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -1
  25. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/DraggingSibling.js +2 -2
  26. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +4 -7
  27. package/admin/src/content-manager/components/SelectMany/index.js +2 -2
  28. package/admin/src/content-manager/components/SelectOne/index.js +1 -1
  29. package/admin/src/content-manager/components/SelectWrapper/index.js +2 -5
  30. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +4 -4
  31. package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +1 -1
  32. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +2 -2
  33. package/admin/src/content-manager/components/Wysiwyg/index.js +2 -2
  34. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +2 -2
  35. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +1 -1
  36. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFields.js +2 -2
  37. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -1
  38. package/admin/src/content-manager/pages/EditView/Header/index.js +4 -7
  39. package/admin/src/content-manager/pages/EditView/Informations/index.js +1 -1
  40. package/admin/src/content-manager/pages/EditView/index.js +5 -193
  41. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +1 -1
  42. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +1 -1
  43. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +1 -1
  44. package/admin/src/hooks/index.js +0 -1
  45. package/admin/src/hooks/useFetchInstalledPlugins/index.js +23 -0
  46. package/admin/src/{pages/InstalledPluginsPage → hooks/useFetchInstalledPlugins}/utils/api.js +2 -4
  47. package/admin/src/hooks/useFetchMarketplacePlugins/index.js +23 -0
  48. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +17 -0
  49. package/admin/src/hooks/useSettingsMenu/init.js +2 -2
  50. package/admin/src/pages/Admin/index.js +1 -3
  51. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  52. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  53. package/admin/src/pages/AuthPage/components/Register/index.js +219 -214
  54. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +1 -1
  55. package/admin/src/pages/AuthPage/index.js +7 -1
  56. package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
  57. package/admin/src/pages/HomePage/HomeHeader.js +1 -1
  58. package/admin/src/pages/HomePage/SocialLinks.js +2 -2
  59. package/admin/src/pages/InstalledPluginsPage/Plugins.js +6 -15
  60. package/admin/src/pages/MarketplacePage/components/EmptyPluginSearch/EmptyPluginGrid.js +27 -0
  61. package/admin/src/pages/MarketplacePage/components/EmptyPluginSearch/index.js +30 -0
  62. package/admin/src/pages/MarketplacePage/components/PluginCard/index.js +186 -0
  63. package/admin/src/pages/MarketplacePage/index.js +199 -107
  64. package/admin/src/pages/MarketplacePage/utils/api.js +9 -0
  65. package/admin/src/pages/ProfilePage/index.js +5 -5
  66. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +4 -1
  67. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +2 -2
  68. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +1 -1
  69. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +1 -1
  70. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +2 -2
  71. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +1 -1
  72. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +1 -1
  73. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -2
  74. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +3 -3
  75. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +2 -2
  76. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -1
  77. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +1 -1
  78. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +4 -4
  79. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +3 -3
  80. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +1 -1
  81. package/admin/src/pages/UseCasePage/index.js +1 -1
  82. package/admin/src/translations/en.json +16 -13
  83. package/build/{1094.1087a368.chunk.js → 1094.e1db3a1a.chunk.js} +1 -1
  84. package/build/1454.f065d92a.chunk.js +2 -0
  85. package/build/{1454.c0f0c2df.chunk.js.LICENSE.txt → 1454.f065d92a.chunk.js.LICENSE.txt} +0 -0
  86. package/build/1856.a30bd09b.chunk.js +1 -0
  87. package/build/2481.4eae9408.chunk.js +1 -0
  88. package/build/{2912.38fb9bd1.chunk.js → 2912.c5f76e65.chunk.js} +1 -1
  89. package/build/4362.5c92d240.chunk.js +1 -0
  90. package/build/4715.8a2db02a.chunk.js +1 -0
  91. package/build/{4800.18e59c83.chunk.js → 4800.f4a1384a.chunk.js} +1 -1
  92. package/build/497.3fcf6196.chunk.js +1 -0
  93. package/build/4982.601f6196.chunk.js +1 -0
  94. package/build/6250.836851ca.chunk.js +1 -0
  95. package/build/{7841.ef9bcee9.chunk.js → 7841.490dbbf1.chunk.js} +1 -1
  96. package/build/{8042.9b85175a.chunk.js → 8042.1d66811a.chunk.js} +2 -2
  97. package/build/{8042.9b85175a.chunk.js.LICENSE.txt → 8042.1d66811a.chunk.js.LICENSE.txt} +0 -0
  98. package/build/849.17f011e8.chunk.js +1 -0
  99. package/build/90f49a385afb000fb1d4.svg +5 -0
  100. package/build/{2736.53cd9bba.chunk.js → 9260.fa40c7bd.chunk.js} +2 -2
  101. package/build/{2736.53cd9bba.chunk.js.LICENSE.txt → 9260.fa40c7bd.chunk.js.LICENSE.txt} +0 -0
  102. package/build/9853.6ff595fa.chunk.js +1 -0
  103. package/build/{9988.b4229043.chunk.js → 9988.fe838ba6.chunk.js} +2 -2
  104. package/build/{9988.b4229043.chunk.js.LICENSE.txt → 9988.fe838ba6.chunk.js.LICENSE.txt} +0 -0
  105. package/build/Admin-authenticatedApp.6d27d55a.chunk.js +1 -0
  106. package/build/Admin_homePage.964ff5d7.chunk.js +1 -0
  107. package/build/Admin_marketplace.89a0a014.chunk.js +1 -0
  108. package/build/Admin_pluginsPage.97a514db.chunk.js +1 -0
  109. package/build/Admin_profilePage.c497b39d.chunk.js +1 -0
  110. package/build/Admin_settingsPage.55ec1f30.chunk.js +1 -0
  111. package/build/admin-edit-roles-page.49b6f01d.chunk.js +1 -0
  112. package/build/admin-edit-users.381e4a0d.chunk.js +1 -0
  113. package/build/admin-users.2740c223.chunk.js +1 -0
  114. package/build/{api-tokens-create-page.0981141a.chunk.js → api-tokens-create-page.db17bb39.chunk.js} +1 -1
  115. package/build/{api-tokens-edit-page.3faf1af1.chunk.js → api-tokens-edit-page.c7299a77.chunk.js} +1 -1
  116. package/build/content-manager.e1189026.chunk.js +1 -0
  117. package/build/content-type-builder.de5d18ad.chunk.js +1 -0
  118. package/build/{email-settings-page.4338588d.chunk.js → email-settings-page.27ee4a98.chunk.js} +1 -1
  119. package/build/en-json.086acf41.chunk.js +1 -0
  120. package/build/i18n-settings-page.c4018651.chunk.js +1 -0
  121. package/build/i18n-translation-de-json.c5c9054f.chunk.js +1 -0
  122. package/build/index.html +1 -1
  123. package/build/main.7fa5bc38.js +2 -0
  124. package/build/{main.2667673b.js.LICENSE.txt → main.7fa5bc38.js.LICENSE.txt} +0 -0
  125. package/build/runtime~main.7bb09ab1.js +1 -0
  126. package/build/{sso-settings-page.c073b6d7.chunk.js → sso-settings-page.121dd0a6.chunk.js} +1 -1
  127. package/build/{upload-settings.8e7cbc3b.chunk.js → upload-settings.4401f36d.chunk.js} +1 -1
  128. package/build/{upload.803ab265.chunk.js → upload.5a2dded7.chunk.js} +1 -1
  129. package/build/{users-advanced-settings-page.7694d3c9.chunk.js → users-advanced-settings-page.8905d8d8.chunk.js} +1 -1
  130. package/build/users-permissions-translation-en-json.21b0fd2f.chunk.js +1 -0
  131. package/build/users-providers-settings-page.368893ed.chunk.js +1 -0
  132. package/build/users-roles-settings-page.a2f6277a.chunk.js +1 -0
  133. package/build/webhook-edit-page.d170eda1.chunk.js +1 -0
  134. package/build/{webhook-list-page.5c8f2a91.chunk.js → webhook-list-page.c21b5a9a.chunk.js} +1 -1
  135. package/ee/admin/pages/AuthPage/components/Login/index.js +1 -1
  136. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  137. package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +1 -1
  138. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +3 -3
  139. package/package.json +7 -7
  140. package/server/controllers/admin.js +12 -1
  141. package/server/routes/serve-admin-panel.js +18 -6
  142. package/.env +0 -0
  143. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/isValidJSONString.js +0 -15
  144. package/admin/src/hooks/useFetchPluginsFromMarketPlace/index.js +0 -49
  145. package/admin/src/pages/MarketplacePage/MarketplaceBanner/Wrapper.js +0 -28
  146. package/admin/src/pages/MarketplacePage/MarketplaceBanner/index.js +0 -37
  147. package/admin/src/pages/MarketplacePage/PluginCard/Wrapper.js +0 -148
  148. package/admin/src/pages/MarketplacePage/PluginCard/index.js +0 -185
  149. package/admin/src/pages/MarketplacePage/Wrapper.js +0 -5
  150. package/admin/src/pages/MarketplacePage/assets/marketplace-coming-soon.png +0 -0
  151. package/build/01a600d9e6e0dea21e33.png +0 -0
  152. package/build/1454.c0f0c2df.chunk.js +0 -2
  153. package/build/1856.a06395b4.chunk.js +0 -1
  154. package/build/2481.7d15bd79.chunk.js +0 -1
  155. package/build/4362.70618acb.chunk.js +0 -1
  156. package/build/4715.31ca1967.chunk.js +0 -1
  157. package/build/497.8f30da61.chunk.js +0 -1
  158. package/build/4982.da4adb38.chunk.js +0 -1
  159. package/build/6250.dc6d7a58.chunk.js +0 -1
  160. package/build/849.9075d399.chunk.js +0 -1
  161. package/build/9853.b75be3f0.chunk.js +0 -1
  162. package/build/Admin-authenticatedApp.872a6e3b.chunk.js +0 -1
  163. package/build/Admin_homePage.e4779166.chunk.js +0 -1
  164. package/build/Admin_marketplace.e8654056.chunk.js +0 -1
  165. package/build/Admin_pluginsPage.7d1bd7ce.chunk.js +0 -1
  166. package/build/Admin_profilePage.67dd744c.chunk.js +0 -1
  167. package/build/Admin_settingsPage.2d0d2cca.chunk.js +0 -1
  168. package/build/admin-edit-roles-page.2d1b6461.chunk.js +0 -1
  169. package/build/admin-edit-users.e736db15.chunk.js +0 -1
  170. package/build/admin-users.5f79c031.chunk.js +0 -1
  171. package/build/content-manager.141d110d.chunk.js +0 -1
  172. package/build/content-type-builder.5544bc9f.chunk.js +0 -1
  173. package/build/en-json.5aa9e5ec.chunk.js +0 -1
  174. package/build/i18n-settings-page.51e37957.chunk.js +0 -1
  175. package/build/main.2667673b.js +0 -2
  176. package/build/runtime~main.4b356df3.js +0 -1
  177. package/build/users-permissions-translation-en-json.1993655e.chunk.js +0 -1
  178. package/build/users-providers-settings-page.f3e86700.chunk.js +0 -1
  179. package/build/users-roles-settings-page.b67e2b4d.chunk.js +0 -1
  180. package/build/webhook-edit-page.b2e22743.chunk.js +0 -1
@@ -71,7 +71,7 @@ const Header = ({
71
71
 
72
72
  if (isCreatingEntry && canCreate) {
73
73
  primaryAction = (
74
- <Stack horizontal size={2}>
74
+ <Stack horizontal spacing={2}>
75
75
  {hasDraftAndPublish && (
76
76
  <Button disabled startIcon={<Check />} variant="secondary">
77
77
  {formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' })}
@@ -187,7 +187,7 @@ const Header = ({
187
187
  isOpen={showWarningUnpublish}
188
188
  >
189
189
  <DialogBody icon={<ExclamationMarkCircle />}>
190
- <Stack size={2}>
190
+ <Stack spacing={2}>
191
191
  <Flex justifyContent="center" style={{ textAlign: 'center' }}>
192
192
  <Typography id="confirm-description">
193
193
  {formatMessage(
@@ -242,7 +242,7 @@ const Header = ({
242
242
  isOpen={showWarningDraftRelation}
243
243
  >
244
244
  <DialogBody icon={<ExclamationMarkCircle />}>
245
- <Stack size={2}>
245
+ <Stack spacing={2}>
246
246
  <Flex justifyContent="center" style={{ textAlign: 'center' }}>
247
247
  <Typography id="confirm-description">
248
248
  {draftRelationsCountRef.current}
@@ -314,8 +314,5 @@ Header.propTypes = {
314
314
 
315
315
  const Memoized = memo(Header, isEqualFastCompare);
316
316
 
317
- export default connect(
318
- Memoized,
319
- select
320
- );
317
+ export default connect(Memoized, select);
321
318
  export { Header };
@@ -44,7 +44,7 @@ const Informations = () => {
44
44
  <Box paddingTop={2} paddingBottom={6}>
45
45
  <Divider />
46
46
  </Box>
47
- <Stack size={4}>
47
+ <Stack spacing={4}>
48
48
  <Flex justifyContent="space-between">
49
49
  <Typography fontWeight="bold">
50
50
  {formatMessage({
@@ -137,7 +137,7 @@ const EditView = ({
137
137
  <ContentLayout>
138
138
  <Grid gap={4}>
139
139
  <GridItem col={9} s={12}>
140
- <Stack size={6}>
140
+ <Stack spacing={6}>
141
141
  {formattedContentTypeLayout.map((row, index) => {
142
142
  if (isDynamicZone(row)) {
143
143
  const {
@@ -174,7 +174,7 @@ const EditView = ({
174
174
  paddingBottom={6}
175
175
  borderColor="neutral150"
176
176
  >
177
- <Stack size={6}>
177
+ <Stack spacing={6}>
178
178
  {row.map((grid, gridIndex) => {
179
179
  return (
180
180
  <Grid gap={4} key={gridIndex}>
@@ -232,7 +232,7 @@ const EditView = ({
232
232
  </Stack>
233
233
  </GridItem>
234
234
  <GridItem col={3} s={12}>
235
- <Stack size={2}>
235
+ <Stack spacing={2}>
236
236
  <DraftAndPublishBadge />
237
237
  <Box
238
238
  as="aside"
@@ -275,7 +275,7 @@ const EditView = ({
275
275
  <Box paddingTop={2} paddingBottom={6}>
276
276
  <Divider />
277
277
  </Box>
278
- <Stack size={4}>
278
+ <Stack spacing={4}>
279
279
  {relationsLayout.map(
280
280
  ({ name, fieldSchema, labelAction, metadatas, queryInfos }) => {
281
281
  return (
@@ -308,7 +308,7 @@ const EditView = ({
308
308
  </Box>
309
309
  )}
310
310
  <Box as="aside" aria-labelledby="links">
311
- <Stack size={2}>
311
+ <Stack spacing={2}>
312
312
  <InjectionZone area="contentManager.editView.right-links" slug={slug} />
313
313
  {slug !== 'strapi::administrator' && (
314
314
  <CheckPermissions permissions={ctbPermissions}>
@@ -364,194 +364,6 @@ const EditView = ({
364
364
  }}
365
365
  </DataManagementWrapper>
366
366
  );
367
-
368
- // return (
369
- // <DataManagementWrapper allLayoutData={layout} slug={slug} id={id} origin={origin}>
370
- // {({
371
- // componentsDataStructure,
372
- // contentTypeDataStructure,
373
- // data,
374
- // isCreatingEntry,
375
- // isLoadingForData,
376
- // onDelete,
377
- // onDeleteSucceeded,
378
- // onPost,
379
- // onPublish,
380
- // onPut,
381
- // onUnpublish,
382
- // redirectionLink,
383
- // status,
384
- // }) => {
385
- // return (
386
- // <EditViewDataManagerProvider
387
- // allowedActions={allowedActions}
388
- // allLayoutData={layout}
389
- // createActionAllowedFields={createActionAllowedFields}
390
- // componentsDataStructure={componentsDataStructure}
391
- // contentTypeDataStructure={contentTypeDataStructure}
392
- // from={redirectionLink}
393
- // initialValues={data}
394
- // isCreatingEntry={isCreatingEntry}
395
- // isLoadingForData={isLoadingForData}
396
- // isSingleType={isSingleType}
397
- // onPost={onPost}
398
- // onPublish={onPublish}
399
- // onPut={onPut}
400
- // onUnpublish={onUnpublish}
401
- // readActionAllowedFields={readActionAllowedFields}
402
- // redirectToPreviousPage={goBack}
403
- // slug={slug}
404
- // status={status}
405
- // updateActionAllowedFields={updateActionAllowedFields}
406
- // >
407
- // <Container className="container-fluid">
408
- // <Header allowedActions={allowedActions} />
409
- // <div className="row" style={{ paddingTop: 3 }}>
410
- // <div className="col-md-12 col-lg-9" style={{ marginBottom: 13 }}>
411
- // {formattedContentTypeLayout.map((block, blockIndex) => {
412
- // if (isDynamicZone(block)) {
413
- // const {
414
- // 0: {
415
- // 0: { name, fieldSchema, metadatas, labelIcon },
416
- // },
417
- // } = block;
418
- // const baselineAlignementSize = blockIndex === 0 ? '3px' : '0';
419
-
420
- // return (
421
- // <BaselineAlignment key={blockIndex} top size={baselineAlignementSize}>
422
- // <DynamicZone
423
- // name={name}
424
- // fieldSchema={fieldSchema}
425
- // labelIcon={labelIcon}
426
- // metadatas={metadatas}
427
- // />
428
- // </BaselineAlignment>
429
- // );
430
- // }
431
-
432
- // return (
433
- // <FormWrapper key={blockIndex}>
434
- // {block.map((fieldsBlock, fieldsBlockIndex) => {
435
- // return (
436
- // <div className="row" key={fieldsBlockIndex}>
437
- // {fieldsBlock.map(
438
- // ({ name, size, fieldSchema, labelIcon, metadatas }, fieldIndex) => {
439
- // const isComponent = fieldSchema.type === 'component';
440
-
441
- // if (isComponent) {
442
- // const { component, max, min, repeatable = false } = fieldSchema;
443
- // const componentUid = fieldSchema.component;
444
-
445
- // return (
446
- // <FieldComponent
447
- // key={componentUid}
448
- // componentUid={component}
449
- // labelIcon={labelIcon}
450
- // isRepeatable={repeatable}
451
- // label={metadatas.label}
452
- // max={max}
453
- // min={min}
454
- // name={name}
455
- // />
456
- // );
457
- // }
458
-
459
- // return (
460
- // <div className={`col-${size}`} key={name}>
461
- // <Inputs
462
- // autoFocus={
463
- // blockIndex === 0 &&
464
- // fieldsBlockIndex === 0 &&
465
- // fieldIndex === 0
466
- // }
467
- // fieldSchema={fieldSchema}
468
- // keys={name}
469
- // labelIcon={labelIcon}
470
- // metadatas={metadatas}
471
- // />
472
- // </div>
473
- // );
474
- // }
475
- // )}
476
- // </div>
477
- // );
478
- // })}
479
- // </FormWrapper>
480
- // );
481
- // })}
482
- // </div>
483
- // <div className="col-md-12 col-lg-3">
484
- // <InformationCard />
485
- // <Padded size="smd" top />
486
- // {currentContentTypeLayoutData.layouts.editRelations.length > 0 && (
487
- // <SubWrapper style={{ padding: '0 20px 1px', marginBottom: '25px' }}>
488
- // <div style={{ paddingTop: '22px' }}>
489
- // {currentContentTypeLayoutData.layouts.editRelations.map(
490
- // ({ name, fieldSchema, labelIcon, metadatas, queryInfos }) => {
491
- // return (
492
- // <SelectWrapper
493
- // {...fieldSchema}
494
- // {...metadatas}
495
- // key={name}
496
- // labelIcon={labelIcon}
497
- // name={name}
498
- // relationsType={fieldSchema.relationType}
499
- // queryInfos={queryInfos}
500
- // />
501
- // );
502
- // }
503
- // )}
504
- // </div>
505
- // </SubWrapper>
506
- // )}
507
- // <LinkWrapper>
508
- // <ul>
509
- // <CheckPermissions permissions={configurationPermissions}>
510
- // <LiLink
511
- // message={{
512
- // id: 'app.links.configure-view',
513
- // }}
514
- // icon="layout"
515
- // url={configurationsURL}
516
- // onClick={() => {
517
- // // trackUsage('willEditContentTypeLayoutFromEditView');
518
- // }}
519
- // />
520
- // </CheckPermissions>
521
- // {slug !== 'strapi::administrator' && (
522
- // <CheckPermissions permissions={ctbPermissions}>
523
- // <LiLink
524
- // message={{
525
- // id: getTrad('containers.Edit.Link.Fields'),
526
- // }}
527
- // onClick={() => {
528
- // trackUsage('willEditEditLayout');
529
- // }}
530
- // icon="fa-cog"
531
- // url={`/plugins/content-type-builder/content-types/${slug}`}
532
- // />
533
- // </CheckPermissions>
534
- // )}
535
- // {/* TODO add DOCUMENTATION */}
536
- // <InjectionZone area="contentManager.editView.right-links" slug={slug} />
537
-
538
- // {allowedActions.canDelete && (
539
- // <DeleteLink
540
- // isCreatingEntry={isCreatingEntry}
541
- // onDelete={onDelete}
542
- // onDeleteSucceeded={onDeleteSucceeded}
543
- // />
544
- // )}
545
- // </ul>
546
- // </LinkWrapper>
547
- // </div>
548
- // </div>
549
- // </Container>
550
- // </EditViewDataManagerProvider>
551
- // );
552
- // }}
553
- // </DataManagementWrapper>
554
- // );
555
367
  };
556
368
 
557
369
  EditView.defaultProps = {
@@ -66,7 +66,7 @@ const CardPreview = ({ labelField, transparent, isSibling }) => {
66
66
  transparent={transparent}
67
67
  isSibling={isSibling}
68
68
  >
69
- <Stack horizontal size={3}>
69
+ <Stack horizontal spacing={3}>
70
70
  <DragButton alignItems="center">
71
71
  <Drag />
72
72
  </DragButton>
@@ -193,7 +193,7 @@ const DraggableCard = ({
193
193
  onClick={handleClickEditRow}
194
194
  isDragging={isDragging}
195
195
  >
196
- <Stack horizontal size={3}>
196
+ <Stack horizontal spacing={3}>
197
197
  <DragButton
198
198
  as="span"
199
199
  aria-label={formatMessage(
@@ -75,7 +75,7 @@ const SortDisplayedFields = ({
75
75
  hasRadius
76
76
  >
77
77
  <ScrollableContainer size="1" paddingBottom={4} ref={scrollableContainerRef}>
78
- <Stack horizontal size={3}>
78
+ <Stack horizontal spacing={3}>
79
79
  {displayedFields.map((field, index) => (
80
80
  <DraggableCard
81
81
  key={field}
@@ -1,7 +1,6 @@
1
1
  export { default as useConfigurations } from './useConfigurations';
2
2
  export { default as useModels } from './useModels';
3
3
  export { default as useFetchPermissionsLayout } from './useFetchPermissionsLayout';
4
- export { default as useFetchPluginsFromMarketPlace } from './useFetchPluginsFromMarketPlace';
5
4
  export { default as useFetchRole } from './useFetchRole';
6
5
  export { default as useMenu } from './useMenu';
7
6
  export { default as useRolesList } from './useRolesList';
@@ -0,0 +1,23 @@
1
+ import { useQuery } from 'react-query';
2
+ import { useNotification } from '@strapi/helper-plugin';
3
+ import { fetchInstalledPlugins } from './utils/api';
4
+
5
+ const useFetchInstalledPlugins = notifyLoad => {
6
+ const toggleNotification = useNotification();
7
+
8
+ return useQuery('list-installed-plugins', () => fetchInstalledPlugins(), {
9
+ onSuccess: () => {
10
+ if (notifyLoad) {
11
+ notifyLoad();
12
+ }
13
+ },
14
+ onError: () => {
15
+ toggleNotification({
16
+ type: 'warning',
17
+ message: { id: 'notification.error', defaultMessage: 'An error occured' },
18
+ });
19
+ },
20
+ });
21
+ };
22
+
23
+ export default useFetchInstalledPlugins;
@@ -1,11 +1,9 @@
1
1
  import { axiosInstance } from '../../../core/utils';
2
2
 
3
- const fetchPlugins = async notify => {
3
+ const fetchInstalledPlugins = async () => {
4
4
  const { data } = await axiosInstance.get('/admin/plugins');
5
5
 
6
- notify();
7
-
8
6
  return data;
9
7
  };
10
8
 
11
- export { fetchPlugins };
9
+ export { fetchInstalledPlugins };
@@ -0,0 +1,23 @@
1
+ import { useQuery } from 'react-query';
2
+ import { useNotification } from '@strapi/helper-plugin';
3
+ import { fetchMarketplacePlugins } from './utils/api';
4
+
5
+ const useFetchMarketplacePlugins = notifyLoad => {
6
+ const toggleNotification = useNotification();
7
+
8
+ return useQuery('list-marketplace-plugins', () => fetchMarketplacePlugins(), {
9
+ onSuccess: () => {
10
+ if (notifyLoad) {
11
+ notifyLoad();
12
+ }
13
+ },
14
+ onError: () => {
15
+ toggleNotification({
16
+ type: 'warning',
17
+ message: { id: 'notification.error', defaultMessage: 'An error occured' },
18
+ });
19
+ },
20
+ });
21
+ };
22
+
23
+ export default useFetchMarketplacePlugins;
@@ -0,0 +1,17 @@
1
+ import axios from 'axios';
2
+
3
+ const MARKETPLACE_API_URL = 'https://market-api.strapi.io';
4
+
5
+ const fetchMarketplacePlugins = async () => {
6
+ const { data: response } = await axios.get(`${MARKETPLACE_API_URL}/plugins`);
7
+
8
+ // Only keep v4 plugins
9
+ const filteredResponse = {
10
+ ...response,
11
+ data: response.data.filter(plugin => plugin.attributes.strapiCompatibility === 'v4'),
12
+ };
13
+
14
+ return filteredResponse;
15
+ };
16
+
17
+ export { fetchMarketplacePlugins };
@@ -10,7 +10,7 @@ const init = (initialState, { settings, shouldUpdateStrapi }) => {
10
10
  // Sort the links by name
11
11
  const sortedGlobalLinks = sortLinks([...pluginsGlobalLinks, ...globalLinks]).map(link => ({
12
12
  ...link,
13
- hasNotification: link.id === 'application-infos' && shouldUpdateStrapi,
13
+ hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,
14
14
  }));
15
15
 
16
16
  const otherSections = Object.values(omit(settings, 'global'));
@@ -25,7 +25,7 @@ const init = (initialState, { settings, shouldUpdateStrapi }) => {
25
25
  intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },
26
26
  links: [
27
27
  {
28
- intlLabel: { id: 'Settings.permissions.menu.link.roles.label' },
28
+ intlLabel: { id: 'Settings.permissions.menu.link.roles.label', defaultMessage: 'Roles' },
29
29
  to: '/settings/roles',
30
30
  id: 'roles',
31
31
  isDisplayed: false,
@@ -12,7 +12,7 @@ import { DndProvider } from 'react-dnd';
12
12
  import { HTML5Backend } from 'react-dnd-html5-backend';
13
13
  import LeftMenu from '../../components/LeftMenu';
14
14
  import AppLayout from '../../layouts/AppLayout';
15
- import { useMenu, useReleaseNotification } from '../../hooks';
15
+ import { useMenu } from '../../hooks';
16
16
  import Onboarding from './Onboarding';
17
17
  import { createRoute } from '../../utils';
18
18
  import GuidedTourModal from '../../components/GuidedTour/Modal';
@@ -48,8 +48,6 @@ const useTrackUsage = () => {
48
48
  };
49
49
 
50
50
  const Admin = () => {
51
- // Show a notification when the current version of Strapi is not the latest one
52
- useReleaseNotification();
53
51
  useTrackUsage();
54
52
  const { isLoading, generalSectionLinks, pluginsSectionLinks } = useMenu();
55
53
  const { menu } = useStrapiApp();
@@ -60,7 +60,7 @@ const ForgotPassword = ({ onSubmit, schema }) => {
60
60
  )}
61
61
  </Column>
62
62
 
63
- <Stack size={6}>
63
+ <Stack spacing={6}>
64
64
  <TextInput
65
65
  error={
66
66
  errors.email
@@ -75,7 +75,7 @@ const Login = ({ onSubmit, schema, children }) => {
75
75
  )}
76
76
  </Column>
77
77
 
78
- <Stack size={6}>
78
+ <Stack spacing={6}>
79
79
  <TextInput
80
80
  error={
81
81
  errors.email