@strapi/admin 4.1.6-alpha.0 → 4.1.7

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 (364) hide show
  1. package/admin/src/StrapiApp.js +40 -42
  2. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -1
  3. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +1 -1
  4. package/admin/src/components/GuidedTour/Homepage/index.js +2 -2
  5. package/admin/src/components/GuidedTour/Modal/components/Modal.js +1 -1
  6. package/admin/src/components/LeftMenu/index.js +2 -2
  7. package/admin/src/components/Providers/index.js +65 -32
  8. package/admin/src/components/Theme/index.js +11 -12
  9. package/admin/src/components/ThemeToggleProvider/index.js +66 -0
  10. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +17 -3
  11. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +135 -0
  12. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +32 -0
  13. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +62 -0
  14. package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +37 -0
  15. package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +52 -27
  16. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js +60 -0
  17. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/isSingleRelation.js +3 -0
  18. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +1 -1
  19. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +42 -42
  20. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/getAPIInnerError.js +18 -0
  21. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/handleAPIError.js +15 -0
  22. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/index.js +0 -1
  23. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +21 -19
  24. package/admin/src/content-manager/components/InputUID/index.js +1 -5
  25. package/admin/src/content-manager/components/Inputs/index.js +8 -10
  26. package/admin/src/content-manager/components/RepeatableComponent/index.js +1 -4
  27. package/admin/src/content-manager/components/SelectMany/index.js +1 -1
  28. package/admin/src/content-manager/components/SelectOne/index.js +1 -1
  29. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +3 -1
  30. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +15 -3
  31. package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +4 -2
  32. package/admin/src/content-manager/components/Wysiwyg/index.js +3 -4
  33. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +23 -2
  34. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +1 -1
  35. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +1 -1
  36. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +6 -1
  37. package/admin/src/content-manager/pages/EditSettingsView/index.js +2 -2
  38. package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +7 -1
  39. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +1 -4
  40. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +1 -4
  41. package/admin/src/content-manager/pages/EditView/Header/index.js +1 -1
  42. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +1 -1
  43. package/admin/src/content-manager/pages/ListSettingsView/index.js +2 -2
  44. package/admin/src/content-manager/pages/ListView/actions.js +2 -1
  45. package/admin/src/content-manager/pages/ListView/index.js +2 -5
  46. package/admin/src/content-manager/pages/ListView/reducer.js +55 -21
  47. package/admin/src/content-manager/pages/ListView/selectors.js +3 -6
  48. package/admin/src/content-manager/pages/ListViewLayoutManager/index.js +1 -1
  49. package/admin/src/content-manager/testUtils/data.js +5 -1
  50. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  51. package/admin/src/content-manager/utils/isFieldTypeNumber.js +3 -0
  52. package/admin/src/contexts/ThemeToggle/index.js +5 -0
  53. package/admin/src/contexts/index.js +1 -0
  54. package/admin/src/hooks/index.js +1 -0
  55. package/admin/src/hooks/useMenu/reducer.js +3 -3
  56. package/admin/src/hooks/useReleaseNotification/index.js +1 -1
  57. package/admin/src/hooks/useSettingsMenu/init.js +2 -2
  58. package/admin/src/hooks/useThemeToggle/index.js +10 -0
  59. package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -1
  60. package/admin/src/pages/Admin/Onboarding/index.js +2 -2
  61. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  62. package/admin/src/pages/AuthPage/components/Register/index.js +6 -6
  63. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -3
  64. package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
  65. package/admin/src/pages/InstalledPluginsPage/Plugins.js +3 -3
  66. package/admin/src/pages/InstalledPluginsPage/index.js +1 -1
  67. package/admin/src/pages/MarketplacePage/components/PluginCard/InstallPluginButton.js +66 -0
  68. package/admin/src/pages/MarketplacePage/components/PluginCard/index.js +13 -36
  69. package/admin/src/pages/MarketplacePage/index.js +18 -2
  70. package/admin/src/pages/ProfilePage/index.js +79 -15
  71. package/admin/src/pages/ProfilePage/utils/api.js +4 -2
  72. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +1 -1
  73. package/admin/src/pages/SettingsPage/index.js +1 -1
  74. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +1 -1
  75. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -3
  76. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +1 -1
  77. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +1 -1
  78. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +1 -1
  79. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +3 -3
  80. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -2
  81. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -6
  82. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +5 -5
  83. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +1 -1
  84. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +1 -1
  85. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +1 -1
  86. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/stepper.js +1 -1
  87. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +1 -1
  88. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +3 -3
  89. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +7 -7
  90. package/admin/src/pages/UseCasePage/index.js +2 -2
  91. package/admin/src/translations/ar.json +0 -6
  92. package/admin/src/translations/cs.json +0 -8
  93. package/admin/src/translations/de.json +0 -26
  94. package/admin/src/translations/dk.json +0 -53
  95. package/admin/src/translations/en.json +88 -101
  96. package/admin/src/translations/es.json +0 -53
  97. package/admin/src/translations/fr.json +0 -56
  98. package/admin/src/translations/he.json +0 -24
  99. package/admin/src/translations/hu.json +0 -53
  100. package/admin/src/translations/id.json +0 -21
  101. package/admin/src/translations/it.json +0 -22
  102. package/admin/src/translations/ja.json +0 -53
  103. package/admin/src/translations/ko.json +0 -56
  104. package/admin/src/translations/ms.json +0 -12
  105. package/admin/src/translations/nl.json +0 -53
  106. package/admin/src/translations/no.json +0 -22
  107. package/admin/src/translations/pl.json +0 -26
  108. package/admin/src/translations/pt-BR.json +0 -53
  109. package/admin/src/translations/pt.json +0 -13
  110. package/admin/src/translations/ru.json +0 -25
  111. package/admin/src/translations/sk.json +0 -21
  112. package/admin/src/translations/sv.json +0 -6
  113. package/admin/src/translations/th.json +0 -21
  114. package/admin/src/translations/tr.json +0 -13
  115. package/admin/src/translations/uk.json +0 -12
  116. package/admin/src/translations/vi.json +1 -10
  117. package/admin/src/translations/zh-Hans.json +0 -53
  118. package/admin/src/translations/zh.json +0 -56
  119. package/build/4362.d8299f0c.chunk.js +1 -0
  120. package/build/{6250.836851ca.chunk.js → 6404.3c2d0a81.chunk.js} +1 -1
  121. package/build/849.82c29ba7.chunk.js +1 -0
  122. package/build/9260.4233fae2.chunk.js +2 -0
  123. package/build/{9260.fa40c7bd.chunk.js.LICENSE.txt → 9260.4233fae2.chunk.js.LICENSE.txt} +0 -0
  124. package/build/Admin-authenticatedApp.61248de6.chunk.js +1 -0
  125. package/build/Admin_homePage.4a3aa22e.chunk.js +1 -0
  126. package/build/Admin_marketplace.4748c8f6.chunk.js +1 -0
  127. package/build/Admin_pluginsPage.89a96d29.chunk.js +1 -0
  128. package/build/Admin_profilePage.7869a07a.chunk.js +1 -0
  129. package/build/Admin_settingsPage.2763454c.chunk.js +1 -0
  130. package/build/admin-edit-roles-page.fbcc195d.chunk.js +1 -0
  131. package/build/admin-edit-users.91e8f5e4.chunk.js +1 -0
  132. package/build/admin-users.0a6acd73.chunk.js +1 -0
  133. package/build/api-tokens-create-page.76e13a35.chunk.js +1 -0
  134. package/build/api-tokens-edit-page.b3d48a7f.chunk.js +1 -0
  135. package/build/api-tokens-list-page.4e822ac8.chunk.js +1 -0
  136. package/build/ar-json.cc19c13c.chunk.js +1 -0
  137. package/build/content-manager.abde723b.chunk.js +1 -0
  138. package/build/{content-type-builder-translation-ar-json.f1fedc12.chunk.js → content-type-builder-translation-ar-json.ab0a0caa.chunk.js} +1 -1
  139. package/build/{content-type-builder-translation-cs-json.b593aef5.chunk.js → content-type-builder-translation-cs-json.e3913c9f.chunk.js} +1 -1
  140. package/build/content-type-builder-translation-de-json.5eb3135d.chunk.js +1 -0
  141. package/build/content-type-builder-translation-dk-json.52805572.chunk.js +1 -0
  142. package/build/content-type-builder-translation-en-json.e51b2ec3.chunk.js +1 -0
  143. package/build/{content-type-builder-translation-es-json.e42614fd.chunk.js → content-type-builder-translation-es-json.5a362abf.chunk.js} +1 -1
  144. package/build/content-type-builder-translation-fr-json.afd4a12f.chunk.js +1 -0
  145. package/build/content-type-builder-translation-id-json.4a21dfab.chunk.js +1 -0
  146. package/build/content-type-builder-translation-it-json.4fa203b1.chunk.js +1 -0
  147. package/build/{content-type-builder-translation-ja-json.1459fb88.chunk.js → content-type-builder-translation-ja-json.cbb3b88a.chunk.js} +1 -1
  148. package/build/content-type-builder-translation-ko-json.7daf86c3.chunk.js +1 -0
  149. package/build/{content-type-builder-translation-ms-json.3dd46b39.chunk.js → content-type-builder-translation-ms-json.3755f8c8.chunk.js} +1 -1
  150. package/build/{content-type-builder-translation-nl-json.877dff80.chunk.js → content-type-builder-translation-nl-json.6f8d924b.chunk.js} +1 -1
  151. package/build/{content-type-builder-translation-pl-json.95b2b33d.chunk.js → content-type-builder-translation-pl-json.fc0b0c20.chunk.js} +1 -1
  152. package/build/{content-type-builder-translation-pt-BR-json.d311d056.chunk.js → content-type-builder-translation-pt-BR-json.86b192fa.chunk.js} +1 -1
  153. package/build/{content-type-builder-translation-pt-json.4893266f.chunk.js → content-type-builder-translation-pt-json.b584f79f.chunk.js} +1 -1
  154. package/build/content-type-builder-translation-ru-json.7648049a.chunk.js +1 -0
  155. package/build/{content-type-builder-translation-sk-json.eb4930b0.chunk.js → content-type-builder-translation-sk-json.c12a8dec.chunk.js} +1 -1
  156. package/build/content-type-builder-translation-th-json.668cd5f5.chunk.js +1 -0
  157. package/build/{content-type-builder-translation-tr-json.696283a5.chunk.js → content-type-builder-translation-tr-json.0f52e1e8.chunk.js} +1 -1
  158. package/build/content-type-builder-translation-uk-json.4bf80448.chunk.js +1 -0
  159. package/build/{content-type-builder-translation-zh-Hans-json.c70a6a4a.chunk.js → content-type-builder-translation-zh-Hans-json.76e58138.chunk.js} +1 -1
  160. package/build/{content-type-builder-translation-zh-json.6fe1861a.chunk.js → content-type-builder-translation-zh-json.0bec81f1.chunk.js} +1 -1
  161. package/build/content-type-builder.19ae7eef.chunk.js +1 -0
  162. package/build/cs-json.ce6f2e52.chunk.js +1 -0
  163. package/build/de-json.2087d61e.chunk.js +1 -0
  164. package/build/dk-json.fb9ee45a.chunk.js +1 -0
  165. package/build/{email-settings-page.27ee4a98.chunk.js → email-settings-page.40ee2bda.chunk.js} +1 -1
  166. package/build/en-json.94e6ed8a.chunk.js +1 -0
  167. package/build/es-json.8f4d89e2.chunk.js +1 -0
  168. package/build/fr-json.2a0b93ed.chunk.js +1 -0
  169. package/build/he-json.917d416c.chunk.js +1 -0
  170. package/build/hu-json.bee23c51.chunk.js +1 -0
  171. package/build/{i18n-settings-page.c4018651.chunk.js → i18n-settings-page.1f6be747.chunk.js} +1 -1
  172. package/build/i18n-translation-de-json.96ae1f68.chunk.js +1 -0
  173. package/build/id-json.fef679cb.chunk.js +1 -0
  174. package/build/index.html +1 -1
  175. package/build/it-json.937b2108.chunk.js +1 -0
  176. package/build/ja-json.b4818378.chunk.js +1 -0
  177. package/build/ko-json.8294a7fc.chunk.js +1 -0
  178. package/build/{main.a8c2970b.js → main.cd1c939f.js} +2 -2
  179. package/build/{main.a8c2970b.js.LICENSE.txt → main.cd1c939f.js.LICENSE.txt} +0 -0
  180. package/build/ms-json.f46167ef.chunk.js +1 -0
  181. package/build/nl-json.86eae27d.chunk.js +1 -0
  182. package/build/no-json.17ecda5d.chunk.js +1 -0
  183. package/build/pl-json.0db77f2c.chunk.js +1 -0
  184. package/build/pt-BR-json.4c90cb2d.chunk.js +1 -0
  185. package/build/pt-json.ef0efd89.chunk.js +1 -0
  186. package/build/ru-json.da33236d.chunk.js +1 -0
  187. package/build/{runtime~main.4dafb29d.js → runtime~main.c5ab8a8f.js} +1 -1
  188. package/build/sk-json.797e898f.chunk.js +1 -0
  189. package/build/sso-settings-page.c5dda65d.chunk.js +1 -0
  190. package/build/sv-json.5bbe6a4f.chunk.js +1 -0
  191. package/build/th-json.c1393c06.chunk.js +1 -0
  192. package/build/tr-json.57cde8b0.chunk.js +1 -0
  193. package/build/uk-json.c6df66d2.chunk.js +1 -0
  194. package/build/{upload-settings.4401f36d.chunk.js → upload-settings.9d3231f4.chunk.js} +1 -1
  195. package/build/upload-translation-de-json.55a7e43a.chunk.js +1 -0
  196. package/build/upload-translation-dk-json.b74134c8.chunk.js +1 -0
  197. package/build/upload-translation-en-json.c4e56528.chunk.js +1 -0
  198. package/build/upload-translation-es-json.15a3015f.chunk.js +1 -0
  199. package/build/upload-translation-fr-json.b12f7247.chunk.js +1 -0
  200. package/build/upload-translation-he-json.bee013d1.chunk.js +1 -0
  201. package/build/upload-translation-it-json.43ec0a8d.chunk.js +1 -0
  202. package/build/upload-translation-ja-json.03f1af04.chunk.js +1 -0
  203. package/build/upload-translation-ko-json.08ad9013.chunk.js +1 -0
  204. package/build/upload-translation-ms-json.30974c82.chunk.js +1 -0
  205. package/build/upload-translation-pl-json.3740abed.chunk.js +1 -0
  206. package/build/upload-translation-pt-BR-json.c7656183.chunk.js +1 -0
  207. package/build/upload-translation-ru-json.0dd4f526.chunk.js +1 -0
  208. package/build/upload-translation-sk-json.55cacd22.chunk.js +1 -0
  209. package/build/upload-translation-th-json.f7aa9392.chunk.js +1 -0
  210. package/build/upload-translation-uk-json.696a16f3.chunk.js +1 -0
  211. package/build/upload-translation-zh-Hans-json.de7bc63f.chunk.js +1 -0
  212. package/build/upload-translation-zh-json.bbc1ed41.chunk.js +1 -0
  213. package/build/{upload.5a2dded7.chunk.js → upload.8edef1ea.chunk.js} +1 -1
  214. package/build/{users-advanced-settings-page.8905d8d8.chunk.js → users-advanced-settings-page.48c437f0.chunk.js} +1 -1
  215. package/build/users-email-settings-page.f39866d6.chunk.js +1 -0
  216. package/build/users-permissions-translation-ar-json.667e7eee.chunk.js +1 -0
  217. package/build/users-permissions-translation-cs-json.995b5d76.chunk.js +1 -0
  218. package/build/users-permissions-translation-de-json.a5c8db9c.chunk.js +1 -0
  219. package/build/users-permissions-translation-dk-json.1fe5e07a.chunk.js +1 -0
  220. package/build/users-permissions-translation-en-json.0e0bc290.chunk.js +1 -0
  221. package/build/users-permissions-translation-es-json.05669296.chunk.js +1 -0
  222. package/build/users-permissions-translation-fr-json.3e3522c3.chunk.js +1 -0
  223. package/build/users-permissions-translation-id-json.186a3f65.chunk.js +1 -0
  224. package/build/users-permissions-translation-it-json.ee5742c4.chunk.js +1 -0
  225. package/build/users-permissions-translation-ja-json.c9cafa6e.chunk.js +1 -0
  226. package/build/users-permissions-translation-ko-json.170f89c2.chunk.js +1 -0
  227. package/build/users-permissions-translation-ms-json.3a128ff4.chunk.js +1 -0
  228. package/build/users-permissions-translation-nl-json.4146aed1.chunk.js +1 -0
  229. package/build/users-permissions-translation-pl-json.a61de7ed.chunk.js +1 -0
  230. package/build/users-permissions-translation-pt-BR-json.51b1cc15.chunk.js +1 -0
  231. package/build/users-permissions-translation-pt-json.85f0e0e1.chunk.js +1 -0
  232. package/build/users-permissions-translation-ru-json.a19b2400.chunk.js +1 -0
  233. package/build/users-permissions-translation-sk-json.27af7260.chunk.js +1 -0
  234. package/build/users-permissions-translation-sv-json.739657b9.chunk.js +1 -0
  235. package/build/users-permissions-translation-th-json.f001fff3.chunk.js +1 -0
  236. package/build/users-permissions-translation-tr-json.3aae5dda.chunk.js +1 -0
  237. package/build/users-permissions-translation-uk-json.a66c7a8c.chunk.js +1 -0
  238. package/build/users-permissions-translation-vi-json.685c65cc.chunk.js +1 -0
  239. package/build/users-permissions-translation-zh-Hans-json.2202741e.chunk.js +1 -0
  240. package/build/users-permissions-translation-zh-json.429a3190.chunk.js +1 -0
  241. package/build/users-providers-settings-page.574ed765.chunk.js +1 -0
  242. package/build/{users-roles-settings-page.a2f6277a.chunk.js → users-roles-settings-page.b836dc30.chunk.js} +1 -1
  243. package/build/vi-json.104a6f3a.chunk.js +1 -0
  244. package/build/webhook-edit-page.b791c6f9.chunk.js +1 -0
  245. package/build/{webhook-list-page.c21b5a9a.chunk.js → webhook-list-page.502d1236.chunk.js} +1 -1
  246. package/build/zh-Hans-json.9afc1adf.chunk.js +1 -0
  247. package/build/zh-json.f36abb77.chunk.js +1 -0
  248. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -1
  249. package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +2 -2
  250. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +5 -5
  251. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -6
  252. package/package.json +5 -5
  253. package/scripts/build.js +15 -1
  254. package/server/validation/permission.js +5 -1
  255. package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/PopoverContent.js +0 -87
  256. package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/index.js +0 -107
  257. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/getYupInnerErrors.js +0 -17
  258. package/admin/src/themes/colors.js +0 -51
  259. package/admin/src/themes/fontWeights.js +0 -8
  260. package/admin/src/themes/index.js +0 -13
  261. package/admin/src/themes/sizes.js +0 -31
  262. package/build/4362.cf5b578d.chunk.js +0 -1
  263. package/build/849.98171304.chunk.js +0 -1
  264. package/build/9260.fa40c7bd.chunk.js +0 -2
  265. package/build/Admin-authenticatedApp.f7f4f112.chunk.js +0 -1
  266. package/build/Admin_homePage.fea90263.chunk.js +0 -1
  267. package/build/Admin_marketplace.89a0a014.chunk.js +0 -1
  268. package/build/Admin_pluginsPage.97a514db.chunk.js +0 -1
  269. package/build/Admin_profilePage.c497b39d.chunk.js +0 -1
  270. package/build/Admin_settingsPage.55ec1f30.chunk.js +0 -1
  271. package/build/admin-edit-roles-page.49b6f01d.chunk.js +0 -1
  272. package/build/admin-edit-users.381e4a0d.chunk.js +0 -1
  273. package/build/admin-users.2740c223.chunk.js +0 -1
  274. package/build/api-tokens-create-page.db17bb39.chunk.js +0 -1
  275. package/build/api-tokens-edit-page.c7299a77.chunk.js +0 -1
  276. package/build/api-tokens-list-page.26a05a21.chunk.js +0 -1
  277. package/build/ar-json.6a2565af.chunk.js +0 -1
  278. package/build/content-manager.94860c70.chunk.js +0 -1
  279. package/build/content-type-builder-translation-de-json.bf808f88.chunk.js +0 -1
  280. package/build/content-type-builder-translation-dk-json.28ed91d2.chunk.js +0 -1
  281. package/build/content-type-builder-translation-en-json.f19ac2e9.chunk.js +0 -1
  282. package/build/content-type-builder-translation-fr-json.bee621f7.chunk.js +0 -1
  283. package/build/content-type-builder-translation-id-json.dc5ea5d6.chunk.js +0 -1
  284. package/build/content-type-builder-translation-it-json.3c8ca035.chunk.js +0 -1
  285. package/build/content-type-builder-translation-ko-json.48ee9cec.chunk.js +0 -1
  286. package/build/content-type-builder-translation-ru-json.b76aa5ab.chunk.js +0 -1
  287. package/build/content-type-builder-translation-th-json.23555d01.chunk.js +0 -1
  288. package/build/content-type-builder-translation-uk-json.ff0523b6.chunk.js +0 -1
  289. package/build/content-type-builder.a963330a.chunk.js +0 -1
  290. package/build/cs-json.8df09876.chunk.js +0 -1
  291. package/build/de-json.6e14f607.chunk.js +0 -1
  292. package/build/dk-json.be388470.chunk.js +0 -1
  293. package/build/en-json.2bc27a3d.chunk.js +0 -1
  294. package/build/es-json.61553168.chunk.js +0 -1
  295. package/build/fr-json.a9ce0700.chunk.js +0 -1
  296. package/build/he-json.1742494e.chunk.js +0 -1
  297. package/build/hu-json.e667d285.chunk.js +0 -1
  298. package/build/i18n-translation-de-json.c5c9054f.chunk.js +0 -1
  299. package/build/id-json.d87ebb20.chunk.js +0 -1
  300. package/build/it-json.a2880b81.chunk.js +0 -1
  301. package/build/ja-json.e13f04e8.chunk.js +0 -1
  302. package/build/ko-json.2200c9c9.chunk.js +0 -1
  303. package/build/ms-json.3a062984.chunk.js +0 -1
  304. package/build/nl-json.30ce02cb.chunk.js +0 -1
  305. package/build/no-json.9af40e9d.chunk.js +0 -1
  306. package/build/pl-json.fd373053.chunk.js +0 -1
  307. package/build/pt-BR-json.30e2d716.chunk.js +0 -1
  308. package/build/pt-json.3aaf9e05.chunk.js +0 -1
  309. package/build/ru-json.78c56e1c.chunk.js +0 -1
  310. package/build/sk-json.c0bf144c.chunk.js +0 -1
  311. package/build/sso-settings-page.121dd0a6.chunk.js +0 -1
  312. package/build/sv-json.aad187b9.chunk.js +0 -1
  313. package/build/th-json.e2b4a0fb.chunk.js +0 -1
  314. package/build/tr-json.0add11cd.chunk.js +0 -1
  315. package/build/uk-json.eb78e77e.chunk.js +0 -1
  316. package/build/upload-translation-de-json.1308dce5.chunk.js +0 -1
  317. package/build/upload-translation-dk-json.0d4e855f.chunk.js +0 -1
  318. package/build/upload-translation-en-json.c334dd82.chunk.js +0 -1
  319. package/build/upload-translation-es-json.81b13eac.chunk.js +0 -1
  320. package/build/upload-translation-fr-json.1bec79ec.chunk.js +0 -1
  321. package/build/upload-translation-he-json.1d28982f.chunk.js +0 -1
  322. package/build/upload-translation-it-json.7d4bdc5a.chunk.js +0 -1
  323. package/build/upload-translation-ja-json.97fcacd8.chunk.js +0 -1
  324. package/build/upload-translation-ko-json.d7345fe1.chunk.js +0 -1
  325. package/build/upload-translation-ms-json.081effd5.chunk.js +0 -1
  326. package/build/upload-translation-pl-json.2dfe78bb.chunk.js +0 -1
  327. package/build/upload-translation-pt-BR-json.65936d7b.chunk.js +0 -1
  328. package/build/upload-translation-ru-json.2d3b6f69.chunk.js +0 -1
  329. package/build/upload-translation-sk-json.f15c7fd6.chunk.js +0 -1
  330. package/build/upload-translation-th-json.6d3c2370.chunk.js +0 -1
  331. package/build/upload-translation-uk-json.a6c38449.chunk.js +0 -1
  332. package/build/upload-translation-zh-Hans-json.f6b26c45.chunk.js +0 -1
  333. package/build/upload-translation-zh-json.06052336.chunk.js +0 -1
  334. package/build/users-email-settings-page.862eb51e.chunk.js +0 -1
  335. package/build/users-permissions-translation-ar-json.bdddd0d7.chunk.js +0 -1
  336. package/build/users-permissions-translation-cs-json.7881d3ff.chunk.js +0 -1
  337. package/build/users-permissions-translation-de-json.8d53c619.chunk.js +0 -1
  338. package/build/users-permissions-translation-dk-json.89d41c4b.chunk.js +0 -1
  339. package/build/users-permissions-translation-en-json.21b0fd2f.chunk.js +0 -1
  340. package/build/users-permissions-translation-es-json.a4f81eaa.chunk.js +0 -1
  341. package/build/users-permissions-translation-fr-json.a2172545.chunk.js +0 -1
  342. package/build/users-permissions-translation-id-json.8f17982a.chunk.js +0 -1
  343. package/build/users-permissions-translation-it-json.87952a24.chunk.js +0 -1
  344. package/build/users-permissions-translation-ja-json.5915d9ef.chunk.js +0 -1
  345. package/build/users-permissions-translation-ko-json.f1ca6cc4.chunk.js +0 -1
  346. package/build/users-permissions-translation-ms-json.2268324c.chunk.js +0 -1
  347. package/build/users-permissions-translation-nl-json.4e1231dd.chunk.js +0 -1
  348. package/build/users-permissions-translation-pl-json.107638b5.chunk.js +0 -1
  349. package/build/users-permissions-translation-pt-BR-json.8dafc053.chunk.js +0 -1
  350. package/build/users-permissions-translation-pt-json.3322464f.chunk.js +0 -1
  351. package/build/users-permissions-translation-ru-json.5709c5a0.chunk.js +0 -1
  352. package/build/users-permissions-translation-sk-json.fe7cc044.chunk.js +0 -1
  353. package/build/users-permissions-translation-sv-json.e7e1684b.chunk.js +0 -1
  354. package/build/users-permissions-translation-th-json.bb544ee3.chunk.js +0 -1
  355. package/build/users-permissions-translation-tr-json.30f3ca90.chunk.js +0 -1
  356. package/build/users-permissions-translation-uk-json.634f2569.chunk.js +0 -1
  357. package/build/users-permissions-translation-vi-json.605d88bc.chunk.js +0 -1
  358. package/build/users-permissions-translation-zh-Hans-json.85480dab.chunk.js +0 -1
  359. package/build/users-permissions-translation-zh-json.99932731.chunk.js +0 -1
  360. package/build/users-providers-settings-page.368893ed.chunk.js +0 -1
  361. package/build/vi-json.1e850069.chunk.js +0 -1
  362. package/build/webhook-edit-page.d170eda1.chunk.js +0 -1
  363. package/build/zh-Hans-json.55f6475b.chunk.js +0 -1
  364. package/build/zh-json.c3c2b225.chunk.js +0 -1
@@ -42,10 +42,7 @@ function Inputs({
42
42
 
43
43
  const disabled = useMemo(() => !get(metadatas, 'editable', true), [metadatas]);
44
44
  const type = fieldSchema.type;
45
-
46
- const errorId = useMemo(() => {
47
- return get(formErrors, [keys, 'id'], null);
48
- }, [formErrors, keys]);
45
+ const error = get(formErrors, [keys], null);
49
46
 
50
47
  const fieldName = useMemo(() => {
51
48
  return getFieldName(keys);
@@ -160,10 +157,10 @@ function Inputs({
160
157
  return disabled;
161
158
  }, [disabled, isCreatingEntry, isUserAllowedToEditField, isUserAllowedToReadField]);
162
159
 
163
- const options = useMemo(() => generateOptions(fieldSchema.enum || [], isRequired), [
164
- fieldSchema,
165
- isRequired,
166
- ]);
160
+ const options = useMemo(
161
+ () => generateOptions(fieldSchema.enum || [], isRequired),
162
+ [fieldSchema, isRequired]
163
+ );
167
164
 
168
165
  const { label, description, placeholder, visible } = metadatas;
169
166
 
@@ -177,7 +174,7 @@ function Inputs({
177
174
  description={description ? { id: description, defaultMessage: description } : null}
178
175
  intlLabel={{ id: label, defaultMessage: label }}
179
176
  labelAction={labelAction}
180
- error={errorId}
177
+ error={error && formatMessage(error)}
181
178
  name={keys}
182
179
  required={isRequired}
183
180
  />
@@ -215,6 +212,7 @@ function Inputs({
215
212
  }
216
213
  queryInfos={queryInfos}
217
214
  value={value}
215
+ error={error && formatMessage(error)}
218
216
  />
219
217
  );
220
218
  }
@@ -228,7 +226,7 @@ function Inputs({
228
226
  isNullable={inputType === 'bool' && [null, undefined].includes(fieldSchema.default)}
229
227
  description={description ? { id: description, defaultMessage: description } : null}
230
228
  disabled={shouldDisableField}
231
- error={errorId}
229
+ error={error}
232
230
  labelAction={labelAction}
233
231
  contentTypeUID={currentContentTypeLayout.uid}
234
232
  customInputs={{
@@ -207,9 +207,6 @@ RepeatableComponent.propTypes = {
207
207
 
208
208
  const Memoized = memo(RepeatableComponent);
209
209
 
210
- export default connect(
211
- Memoized,
212
- select
213
- );
210
+ export default connect(Memoized, select);
214
211
 
215
212
  export { RepeatableComponent };
@@ -70,7 +70,7 @@ function SelectMany({
70
70
  onMenuOpen={onMenuOpen}
71
71
  onMenuScrollToBottom={onMenuScrollToBottom}
72
72
  placeholder={formatMessage(
73
- placeholder || { id: 'components.Select.placeholder', defaultMessage: 'Select...' }
73
+ placeholder || { id: 'global.select', defaultMessage: 'Select...' }
74
74
  )}
75
75
  styles={styles}
76
76
  value={[]}
@@ -46,7 +46,7 @@ function SelectOne({
46
46
  onMenuOpen={onMenuOpen}
47
47
  onMenuScrollToBottom={onMenuScrollToBottom}
48
48
  placeholder={formatMessage(
49
- placeholder || { id: 'components.Select.placeholder', defaultMessage: 'Select...' }
49
+ placeholder || { id: 'global.select', defaultMessage: 'Select...' }
50
50
  )}
51
51
  styles={styles}
52
52
  value={isNull(value) ? null : { label: get(value, [mainField.name], ''), value }}
@@ -49,6 +49,8 @@ const getSelectStyles = theme => {
49
49
  ...base,
50
50
  width: '100%',
51
51
  marginTop: theme.spaces[1],
52
+ backgroundColor: theme.colors.neutral0,
53
+ color: theme.colors.neutral800,
52
54
  borderRadius: '4px !important',
53
55
  borderTopLeftRadius: '4px !important',
54
56
  borderTopRightRadius: '4px !important',
@@ -76,7 +78,7 @@ const getSelectStyles = theme => {
76
78
  return { ...base, lineHeight: theme.spaces[5], backgroundColor, borderRadius: 4 };
77
79
  },
78
80
  placeholder: base => ({ ...base, marginLeft: 0 }),
79
- singleValue: base => ({ ...base, marginLeft: 0 }),
81
+ singleValue: base => ({ ...base, marginLeft: 0, color: theme.colors.neutral800 }),
80
82
  valueContainer: base => ({
81
83
  ...base,
82
84
  padding: 0,
@@ -144,8 +144,6 @@ const SingleTypeFormWrapper = ({ allLayoutData, children, slug }) => {
144
144
  const displayErrors = useCallback(
145
145
  err => {
146
146
  const errorPayload = err.response.payload;
147
- console.error(errorPayload);
148
-
149
147
  let errorMessage = get(errorPayload, ['message'], 'Bad Request');
150
148
 
151
149
  // TODO handle errors correctly when back-end ready
@@ -178,10 +176,12 @@ const SingleTypeFormWrapper = ({ allLayoutData, children, slug }) => {
178
176
  } catch (err) {
179
177
  trackUsageRef.current('didNotDeleteEntry', { error: err, ...trackerProperty });
180
178
 
179
+ displayErrors(err);
180
+
181
181
  return Promise.reject(err);
182
182
  }
183
183
  },
184
- [slug, toggleNotification, searchToSend]
184
+ [slug, displayErrors, toggleNotification, searchToSend]
185
185
  );
186
186
 
187
187
  const onDeleteSucceeded = useCallback(() => {
@@ -211,12 +211,16 @@ const SingleTypeFormWrapper = ({ allLayoutData, children, slug }) => {
211
211
  setIsCreatingEntry(false);
212
212
 
213
213
  dispatch(setStatus('resolved'));
214
+
215
+ return Promise.resolve(data);
214
216
  } catch (err) {
215
217
  trackUsageRef.current('didNotCreateEntry', { error: err, trackerProperty });
216
218
 
217
219
  displayErrors(err);
218
220
 
219
221
  dispatch(setStatus('resolved'));
222
+
223
+ return Promise.reject(err);
220
224
  }
221
225
  },
222
226
  [cleanReceivedData, displayErrors, slug, dispatch, rawQuery, toggleNotification, setCurrentStep]
@@ -239,10 +243,14 @@ const SingleTypeFormWrapper = ({ allLayoutData, children, slug }) => {
239
243
  dispatch(submitSucceeded(cleanReceivedData(data)));
240
244
 
241
245
  dispatch(setStatus('resolved'));
246
+
247
+ return Promise.resolve(data);
242
248
  } catch (err) {
243
249
  displayErrors(err);
244
250
 
245
251
  dispatch(setStatus('resolved'));
252
+
253
+ return Promise.reject(err);
246
254
  }
247
255
  }, [cleanReceivedData, displayErrors, slug, searchToSend, dispatch, toggleNotification]);
248
256
 
@@ -267,12 +275,16 @@ const SingleTypeFormWrapper = ({ allLayoutData, children, slug }) => {
267
275
  dispatch(submitSucceeded(cleanReceivedData(data)));
268
276
 
269
277
  dispatch(setStatus('resolved'));
278
+
279
+ return Promise.resolve(data);
270
280
  } catch (err) {
271
281
  displayErrors(err);
272
282
 
273
283
  trackUsageRef.current('didNotEditEntry', { error: err, trackerProperty });
274
284
 
275
285
  dispatch(setStatus('resolved'));
286
+
287
+ return Promise.reject(err);
276
288
  }
277
289
  },
278
290
  [cleanReceivedData, displayErrors, slug, dispatch, rawQuery, toggleNotification]
@@ -29,7 +29,8 @@ export const EditorStylesContainer = styled.div`
29
29
 
30
30
  .CodeMirror-scrollbar-filler,
31
31
  .CodeMirror-gutter-filler {
32
- background-color: white; /* The little square between H and V scrollbars */
32
+ /* The little square between H and V scrollbars */
33
+ background-color: ${({ theme }) => `${theme.colors.neutral0}`};
33
34
  }
34
35
 
35
36
  /* GUTTER */
@@ -158,7 +159,7 @@ export const EditorStylesContainer = styled.div`
158
159
  .CodeMirror {
159
160
  position: relative;
160
161
  overflow: hidden;
161
- background: white;
162
+ background: ${({ theme }) => `${theme.colors.neutral0}`};
162
163
  }
163
164
 
164
165
  .CodeMirror-scroll {
@@ -292,6 +293,7 @@ export const EditorStylesContainer = styled.div`
292
293
  .CodeMirror-cursor {
293
294
  position: absolute;
294
295
  pointer-events: none;
296
+ border-color: ${({ theme }) => `${theme.colors.neutral800}`};
295
297
  }
296
298
  .CodeMirror-measure pre {
297
299
  position: static;
@@ -118,7 +118,6 @@ const Wysiwyg = ({
118
118
  )
119
119
  : '';
120
120
 
121
- const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';
122
121
  const label = intlLabel.id
123
122
  ? formatMessage(
124
123
  { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },
@@ -157,7 +156,7 @@ const Wysiwyg = ({
157
156
  disabled={disabled}
158
157
  isExpandMode={isExpandMode}
159
158
  editorRef={editorRef}
160
- error={errorMessage}
159
+ error={error}
161
160
  isPreviewMode={isPreviewMode}
162
161
  name={name}
163
162
  onChange={onChange}
@@ -171,10 +170,10 @@ const Wysiwyg = ({
171
170
  <Hint description={description} name={name} error={error} />
172
171
  </Stack>
173
172
 
174
- {errorMessage && (
173
+ {error && (
175
174
  <Box paddingTop={1}>
176
175
  <Typography variant="pi" textColor="danger600" data-strapi-field-error>
177
- {errorMessage}
176
+ {error}
178
177
  </Typography>
179
178
  </Box>
180
179
  )}
@@ -40,7 +40,7 @@ const formatLayouts = (initialData, models) => {
40
40
  const formattedCTEditLayout = formatLayoutWithMetas(data.contentType, null, models);
41
41
  const ctUid = data.contentType.uid;
42
42
  const formattedEditRelationsLayout = formatEditRelationsLayoutWithMetas(data.contentType, models);
43
- const formattedListLayout = formatListLayoutWithMetas(data.contentType, models);
43
+ const formattedListLayout = formatListLayoutWithMetas(data.contentType, data.components);
44
44
 
45
45
  set(data, ['contentType', 'layouts', 'edit'], formattedCTEditLayout);
46
46
  set(data, ['contentType', 'layouts', 'editRelations'], formattedEditRelationsLayout);
@@ -146,7 +146,7 @@ const formatLayoutWithMetas = (contentTypeConfiguration, ctUid, models) => {
146
146
  return formatted;
147
147
  };
148
148
 
149
- const formatListLayoutWithMetas = contentTypeConfiguration => {
149
+ const formatListLayoutWithMetas = (contentTypeConfiguration, components) => {
150
150
  const formatted = contentTypeConfiguration.layouts.list.reduce((acc, current) => {
151
151
  const fieldSchema = get(contentTypeConfiguration, ['attributes', current], {});
152
152
  const metadatas = get(contentTypeConfiguration, ['metadatas', current, 'list'], {});
@@ -164,6 +164,27 @@ const formatListLayoutWithMetas = contentTypeConfiguration => {
164
164
  return acc;
165
165
  }
166
166
 
167
+ if (type === 'component') {
168
+ const component = components[fieldSchema.component];
169
+ const mainFieldName = component.settings.mainField;
170
+ const mainFieldAttribute = component.attributes[mainFieldName];
171
+
172
+ acc.push({
173
+ key: `__${current}_key__`,
174
+ name: current,
175
+ fieldSchema,
176
+ metadatas: {
177
+ ...metadatas,
178
+ mainField: {
179
+ ...mainFieldAttribute,
180
+ name: mainFieldName,
181
+ },
182
+ },
183
+ });
184
+
185
+ return acc;
186
+ }
187
+
167
188
  acc.push({ key: `__${current}_key__`, name: current, fieldSchema, metadatas });
168
189
 
169
190
  return acc;
@@ -44,7 +44,7 @@ const FieldButtonContent = ({ attribute, onEditField, onDeleteField, children })
44
44
  <CustomIconButton
45
45
  label={formatMessage(
46
46
  {
47
- id: getTrad('app.component.table.delete'),
47
+ id: 'global.delete-target',
48
48
  defaultMessage: `Delete {target}`,
49
49
  },
50
50
  {
@@ -72,7 +72,7 @@ const FormModal = ({ onToggle, onMetaChange, onSizeChange, onSubmit, type }) =>
72
72
  }
73
73
  endActions={
74
74
  <Button type="submit">
75
- {formatMessage({ id: 'form.button.finish', defaultMessage: 'Finish' })}
75
+ {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}
76
76
  </Button>
77
77
  }
78
78
  />
@@ -11,7 +11,12 @@ import { makeSelectModelAndComponentSchemas } from '../../App/selectors';
11
11
  import getTrad from '../../../utils/getTrad';
12
12
  import GenericInput from './GenericInput';
13
13
 
14
- const FIELD_SIZES = [[4, '33%'], [6, '50%'], [8, '66%'], [12, '100%']];
14
+ const FIELD_SIZES = [
15
+ [4, '33%'],
16
+ [6, '50%'],
17
+ [8, '66%'],
18
+ [12, '100%'],
19
+ ];
15
20
 
16
21
  const NON_RESIZABLE_FIELD_TYPES = ['dynamiczone', 'component', 'json', 'richtext'];
17
22
 
@@ -250,7 +250,7 @@ const EditSettingsView = ({ mainLayout, components, isContentTypeView, slug, upd
250
250
  to="/"
251
251
  >
252
252
  {formatMessage({
253
- id: 'app.components.go-back',
253
+ id: 'global.back',
254
254
  defaultMessage: 'Back',
255
255
  })}
256
256
  </Link>
@@ -261,7 +261,7 @@ const EditSettingsView = ({ mainLayout, components, isContentTypeView, slug, upd
261
261
  startIcon={<Check />}
262
262
  type="submit"
263
263
  >
264
- {formatMessage({ id: 'form.button.save', defaultMessage: 'Save' })}
264
+ {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}
265
265
  </Button>
266
266
  }
267
267
  />
@@ -28,7 +28,13 @@ const formatLayout = arr => {
28
28
 
29
29
  return acc2;
30
30
  }, []);
31
- const rowId = acc.length === 0 ? 0 : Math.max.apply(Math, acc.map(o => o.rowId)) + 1;
31
+ const rowId =
32
+ acc.length === 0
33
+ ? 0
34
+ : Math.max.apply(
35
+ Math,
36
+ acc.map(o => o.rowId)
37
+ ) + 1;
32
38
 
33
39
  const currentRowSize = getRowSize(currentRow);
34
40
 
@@ -71,7 +71,4 @@ DeleteLink.propTypes = {
71
71
 
72
72
  const Memoized = memo(DeleteLink, isEqual);
73
73
 
74
- export default connect(
75
- Memoized,
76
- select
77
- );
74
+ export default connect(Memoized, select);
@@ -88,8 +88,5 @@ DraftAndPublishBadge.propTypes = {
88
88
  isPublished: PropTypes.bool.isRequired,
89
89
  };
90
90
 
91
- export default connect(
92
- DraftAndPublishBadge,
93
- select
94
- );
91
+ export default connect(DraftAndPublishBadge, select);
95
92
  export { DraftAndPublishBadge };
@@ -172,7 +172,7 @@ const Header = ({
172
172
  to="/"
173
173
  >
174
174
  {formatMessage({
175
- id: 'app.components.HeaderLayout.link.go-back',
175
+ id: 'global.back',
176
176
  defaultMessage: 'Back',
177
177
  })}
178
178
  </Link>
@@ -113,7 +113,7 @@ const EditFieldForm = ({
113
113
  }
114
114
  endActions={
115
115
  <Button type="submit">
116
- {formatMessage({ id: 'form.button.finish', defaultMessage: 'Finish' })}
116
+ {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}
117
117
  </Button>
118
118
  }
119
119
  />
@@ -191,7 +191,7 @@ const ListSettingsView = ({ layout, slug }) => {
191
191
  <HeaderLayout
192
192
  navigationAction={
193
193
  <Link startIcon={<ArrowLeft />} to={goBackUrl} id="go-back">
194
- {formatMessage({ id: 'app.components.go-back', defaultMessage: 'Back' })}
194
+ {formatMessage({ id: 'global.back', defaultMessage: 'Back' })}
195
195
  </Link>
196
196
  }
197
197
  primaryAction={
@@ -201,7 +201,7 @@ const ListSettingsView = ({ layout, slug }) => {
201
201
  disabled={isEqual(modifiedData, initialData)}
202
202
  type="submit"
203
203
  >
204
- {formatMessage({ id: 'form.button.save', defaultMessage: 'Save' })}
204
+ {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}
205
205
  </Button>
206
206
  }
207
207
  subtitle={formatMessage({
@@ -21,11 +21,12 @@ export function resetProps() {
21
21
  return { type: RESET_PROPS };
22
22
  }
23
23
 
24
- export const setLayout = contentType => {
24
+ export const setLayout = ({ components, contentType }) => {
25
25
  const { layouts } = contentType;
26
26
 
27
27
  return {
28
28
  contentType,
29
+ components,
29
30
  displayedHeaders: layouts.list,
30
31
  type: SET_LIST_LAYOUT,
31
32
  };
@@ -267,7 +267,7 @@ function ListView({
267
267
  navigationAction={
268
268
  <Link startIcon={<ArrowLeft />} to="/content-manager/">
269
269
  {formatMessage({
270
- id: 'app.components.HeaderLayout.link.go-back',
270
+ id: 'global.back',
271
271
  defaultMessage: 'Back',
272
272
  })}
273
273
  </Link>
@@ -388,9 +388,6 @@ export function mapDispatchToProps(dispatch) {
388
388
  dispatch
389
389
  );
390
390
  }
391
- const withConnect = connect(
392
- mapStateToProps,
393
- mapDispatchToProps
394
- );
391
+ const withConnect = connect(mapStateToProps, mapDispatchToProps);
395
392
 
396
393
  export default compose(withConnect)(memo(ListView, isEqual));
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import produce from 'immer';
7
+ import get from 'lodash/get';
7
8
  import {
8
9
  GET_DATA,
9
10
  GET_DATA_SUCCEEDED,
@@ -17,6 +18,7 @@ export const initialState = {
17
18
  data: [],
18
19
  isLoading: true,
19
20
  contentType: {},
21
+ components: [],
20
22
  initialDisplayedHeaders: [],
21
23
  displayedHeaders: [],
22
24
  pagination: {
@@ -26,21 +28,22 @@ export const initialState = {
26
28
 
27
29
  const listViewReducer = (state = initialState, action) =>
28
30
  // eslint-disable-next-line consistent-return
29
- produce(state, drafState => {
31
+ produce(state, draftState => {
30
32
  switch (action.type) {
31
33
  case GET_DATA: {
32
34
  return {
33
35
  ...initialState,
34
36
  contentType: state.contentType,
37
+ components: state.components,
35
38
  initialDisplayedHeaders: state.initialDisplayedHeaders,
36
39
  displayedHeaders: state.displayedHeaders,
37
40
  };
38
41
  }
39
42
 
40
43
  case GET_DATA_SUCCEEDED: {
41
- drafState.pagination = action.pagination;
42
- drafState.data = action.data;
43
- drafState.isLoading = false;
44
+ draftState.pagination = action.pagination;
45
+ draftState.data = action.data;
46
+ draftState.isLoading = false;
44
47
  break;
45
48
  }
46
49
 
@@ -59,19 +62,49 @@ const listViewReducer = (state = initialState, action) =>
59
62
  key: `__${name}_key__`,
60
63
  };
61
64
 
62
- if (attributes[name].type === 'relation') {
63
- drafState.displayedHeaders.push({
64
- ...header,
65
- queryInfos: {
66
- defaultParams: {},
67
- endPoint: `collection-types/${uid}`,
68
- },
69
- });
70
- } else {
71
- drafState.displayedHeaders.push(header);
65
+ switch (attributes[name].type) {
66
+ case 'component': {
67
+ const componentName = attributes[name].component;
68
+ const mainFieldName = get(
69
+ state,
70
+ ['components', componentName, 'settings', 'mainField'],
71
+ null
72
+ );
73
+ const mainFieldAttribute = get(state, [
74
+ 'components',
75
+ componentName,
76
+ 'attributes',
77
+ mainFieldName,
78
+ ]);
79
+
80
+ draftState.displayedHeaders.push({
81
+ ...header,
82
+ metadatas: {
83
+ ...metas,
84
+ mainField: {
85
+ ...mainFieldAttribute,
86
+ name: mainFieldName,
87
+ },
88
+ },
89
+ });
90
+ break;
91
+ }
92
+
93
+ case 'relation':
94
+ draftState.displayedHeaders.push({
95
+ ...header,
96
+ queryInfos: {
97
+ defaultParams: {},
98
+ endPoint: `collection-types/${uid}`,
99
+ },
100
+ });
101
+ break;
102
+
103
+ default:
104
+ draftState.displayedHeaders.push(header);
72
105
  }
73
106
  } else {
74
- drafState.displayedHeaders = state.displayedHeaders.filter(
107
+ draftState.displayedHeaders = state.displayedHeaders.filter(
75
108
  header => header.name !== name
76
109
  );
77
110
  }
@@ -79,23 +112,24 @@ const listViewReducer = (state = initialState, action) =>
79
112
  break;
80
113
  }
81
114
  case ON_RESET_LIST_HEADERS: {
82
- drafState.displayedHeaders = state.initialDisplayedHeaders;
115
+ draftState.displayedHeaders = state.initialDisplayedHeaders;
83
116
  break;
84
117
  }
85
118
  case RESET_PROPS: {
86
119
  return initialState;
87
120
  }
88
121
  case SET_LIST_LAYOUT: {
89
- const { contentType, displayedHeaders } = action;
122
+ const { contentType, components, displayedHeaders } = action;
90
123
 
91
- drafState.contentType = contentType;
92
- drafState.displayedHeaders = displayedHeaders;
93
- drafState.initialDisplayedHeaders = displayedHeaders;
124
+ draftState.contentType = contentType;
125
+ draftState.components = components;
126
+ draftState.displayedHeaders = displayedHeaders;
127
+ draftState.initialDisplayedHeaders = displayedHeaders;
94
128
 
95
129
  break;
96
130
  }
97
131
  default:
98
- return drafState;
132
+ return draftState;
99
133
  }
100
134
  });
101
135
 
@@ -15,12 +15,9 @@ const listViewDomain = () => state => state['content-manager_listView'] || initi
15
15
  */
16
16
 
17
17
  const makeSelectListView = () =>
18
- createSelector(
19
- listViewDomain(),
20
- substate => {
21
- return substate;
22
- }
23
- );
18
+ createSelector(listViewDomain(), substate => {
19
+ return substate;
20
+ });
24
21
 
25
22
  const selectDisplayedHeaders = state => {
26
23
  const { displayedHeaders } = state['content-manager_listView'];
@@ -21,7 +21,7 @@ const ListViewLayout = ({ layout, ...props }) => {
21
21
  }, [rawQuery, replace, redirectionLink]);
22
22
 
23
23
  useEffect(() => {
24
- dispatch(setLayout(layout.contentType));
24
+ dispatch(setLayout(layout));
25
25
  }, [dispatch, layout]);
26
26
 
27
27
  useEffect(() => {
@@ -140,7 +140,11 @@ const testData = {
140
140
  id: 1,
141
141
  name: 'name',
142
142
  subcomponotrepeatable: { id: 4, name: 'name' },
143
- subrepeatable: [{ id: 1, name: 'name' }, { id: 2, name: 'name' }, { id: 3, name: 'name' }],
143
+ subrepeatable: [
144
+ { id: 1, name: 'name' },
145
+ { id: 2, name: 'name' },
146
+ { id: 3, name: 'name' },
147
+ ],
144
148
  },
145
149
  repeatable: [
146
150
  {
@@ -7,7 +7,7 @@ const checkIfAttributeIsDisplayable = attribute => {
7
7
  return !toLower(attribute.relationType).includes('morph');
8
8
  }
9
9
 
10
- return !['json', 'component', 'dynamiczone', 'richtext', 'password'].includes(type) && !!type;
10
+ return !['json', 'dynamiczone', 'richtext', 'password'].includes(type) && !!type;
11
11
  };
12
12
 
13
13
  export default checkIfAttributeIsDisplayable;
@@ -0,0 +1,3 @@
1
+ export default function isFieldTypeNumber(type) {
2
+ return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);
3
+ }
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+
3
+ const ThemeToggleContext = createContext({});
4
+
5
+ export default ThemeToggleContext;
@@ -1,3 +1,4 @@
1
1
  export { default as AdminContext } from './Admin';
2
2
  export { default as ConfigurationsContext } from './Configurations';
3
3
  export { default as PermissionsDataManagerContext } from './PermisssionsDataManagerContext';
4
+ export { default as ThemeToggleContext } from './ThemeToggle';
@@ -8,3 +8,4 @@ export { default as useSettingsMenu } from './useSettingsMenu';
8
8
  export { default as useSettingsForm } from './useSettingsForm';
9
9
  export { default as usePermissionsDataManager } from './usePermissionsDataManager';
10
10
  export { default as useReleaseNotification } from './useReleaseNotification';
11
+ export { default as useThemeToggle } from './useThemeToggle';