@strapi/admin 4.1.6-alpha.0 → 4.1.6-alpha.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 (344) 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/DynamicTable/CellContent/RelationMultiple/index.js +135 -0
  11. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +32 -0
  12. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +62 -0
  13. package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +37 -0
  14. package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +52 -27
  15. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js +29 -0
  16. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/isSingleRelation.js +3 -0
  17. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +1 -1
  18. package/admin/src/content-manager/components/SelectMany/index.js +1 -1
  19. package/admin/src/content-manager/components/SelectOne/index.js +1 -1
  20. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +3 -1
  21. package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +4 -2
  22. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +23 -2
  23. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +1 -1
  24. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +1 -1
  25. package/admin/src/content-manager/pages/EditSettingsView/index.js +2 -2
  26. package/admin/src/content-manager/pages/EditView/Header/index.js +1 -1
  27. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +1 -1
  28. package/admin/src/content-manager/pages/ListSettingsView/index.js +2 -2
  29. package/admin/src/content-manager/pages/ListView/actions.js +2 -1
  30. package/admin/src/content-manager/pages/ListView/index.js +2 -5
  31. package/admin/src/content-manager/pages/ListView/reducer.js +55 -21
  32. package/admin/src/content-manager/pages/ListViewLayoutManager/index.js +1 -1
  33. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  34. package/admin/src/contexts/ThemeToggle/index.js +5 -0
  35. package/admin/src/contexts/index.js +1 -0
  36. package/admin/src/hooks/index.js +1 -0
  37. package/admin/src/hooks/useMenu/reducer.js +3 -3
  38. package/admin/src/hooks/useReleaseNotification/index.js +1 -1
  39. package/admin/src/hooks/useSettingsMenu/init.js +2 -2
  40. package/admin/src/hooks/useThemeToggle/index.js +10 -0
  41. package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -1
  42. package/admin/src/pages/Admin/Onboarding/index.js +2 -2
  43. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  44. package/admin/src/pages/AuthPage/components/Register/index.js +6 -6
  45. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -3
  46. package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
  47. package/admin/src/pages/InstalledPluginsPage/Plugins.js +3 -3
  48. package/admin/src/pages/InstalledPluginsPage/index.js +1 -1
  49. package/admin/src/pages/MarketplacePage/components/PluginCard/InstallPluginButton.js +66 -0
  50. package/admin/src/pages/MarketplacePage/components/PluginCard/index.js +13 -36
  51. package/admin/src/pages/MarketplacePage/index.js +18 -2
  52. package/admin/src/pages/ProfilePage/index.js +79 -15
  53. package/admin/src/pages/ProfilePage/utils/api.js +4 -2
  54. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +1 -1
  55. package/admin/src/pages/SettingsPage/index.js +1 -1
  56. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +1 -1
  57. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -3
  58. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +1 -1
  59. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +1 -1
  60. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +1 -1
  61. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +3 -3
  62. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -2
  63. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -6
  64. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +5 -5
  65. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +1 -1
  66. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +1 -1
  67. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +1 -1
  68. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/stepper.js +1 -1
  69. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +1 -1
  70. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +3 -3
  71. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +7 -7
  72. package/admin/src/pages/UseCasePage/index.js +2 -2
  73. package/admin/src/translations/ar.json +0 -6
  74. package/admin/src/translations/cs.json +0 -8
  75. package/admin/src/translations/de.json +0 -26
  76. package/admin/src/translations/dk.json +0 -53
  77. package/admin/src/translations/en.json +87 -102
  78. package/admin/src/translations/es.json +0 -53
  79. package/admin/src/translations/fr.json +0 -56
  80. package/admin/src/translations/he.json +0 -24
  81. package/admin/src/translations/hu.json +0 -53
  82. package/admin/src/translations/id.json +0 -21
  83. package/admin/src/translations/it.json +0 -22
  84. package/admin/src/translations/ja.json +0 -53
  85. package/admin/src/translations/ko.json +0 -56
  86. package/admin/src/translations/ms.json +0 -12
  87. package/admin/src/translations/nl.json +0 -53
  88. package/admin/src/translations/no.json +0 -22
  89. package/admin/src/translations/pl.json +0 -26
  90. package/admin/src/translations/pt-BR.json +0 -53
  91. package/admin/src/translations/pt.json +0 -13
  92. package/admin/src/translations/ru.json +0 -25
  93. package/admin/src/translations/sk.json +0 -21
  94. package/admin/src/translations/sv.json +0 -6
  95. package/admin/src/translations/th.json +0 -21
  96. package/admin/src/translations/tr.json +0 -13
  97. package/admin/src/translations/uk.json +0 -12
  98. package/admin/src/translations/vi.json +1 -10
  99. package/admin/src/translations/zh-Hans.json +0 -53
  100. package/admin/src/translations/zh.json +0 -56
  101. package/build/4362.d8299f0c.chunk.js +1 -0
  102. package/build/{6250.836851ca.chunk.js → 6404.3c2d0a81.chunk.js} +1 -1
  103. package/build/849.82c29ba7.chunk.js +1 -0
  104. package/build/9260.4233fae2.chunk.js +2 -0
  105. package/build/{9260.fa40c7bd.chunk.js.LICENSE.txt → 9260.4233fae2.chunk.js.LICENSE.txt} +0 -0
  106. package/build/Admin-authenticatedApp.cf7104f9.chunk.js +1 -0
  107. package/build/Admin_homePage.4a3aa22e.chunk.js +1 -0
  108. package/build/Admin_marketplace.4748c8f6.chunk.js +1 -0
  109. package/build/Admin_pluginsPage.89a96d29.chunk.js +1 -0
  110. package/build/Admin_profilePage.7869a07a.chunk.js +1 -0
  111. package/build/Admin_settingsPage.2763454c.chunk.js +1 -0
  112. package/build/admin-edit-roles-page.fbcc195d.chunk.js +1 -0
  113. package/build/admin-edit-users.91e8f5e4.chunk.js +1 -0
  114. package/build/admin-users.0a6acd73.chunk.js +1 -0
  115. package/build/api-tokens-create-page.76e13a35.chunk.js +1 -0
  116. package/build/api-tokens-edit-page.b3d48a7f.chunk.js +1 -0
  117. package/build/api-tokens-list-page.4e822ac8.chunk.js +1 -0
  118. package/build/ar-json.cc19c13c.chunk.js +1 -0
  119. package/build/content-manager.2f6a2082.chunk.js +1 -0
  120. package/build/{content-type-builder-translation-ar-json.f1fedc12.chunk.js → content-type-builder-translation-ar-json.ab0a0caa.chunk.js} +1 -1
  121. package/build/{content-type-builder-translation-cs-json.b593aef5.chunk.js → content-type-builder-translation-cs-json.e3913c9f.chunk.js} +1 -1
  122. package/build/content-type-builder-translation-de-json.5eb3135d.chunk.js +1 -0
  123. package/build/content-type-builder-translation-dk-json.52805572.chunk.js +1 -0
  124. package/build/content-type-builder-translation-en-json.e51b2ec3.chunk.js +1 -0
  125. package/build/{content-type-builder-translation-es-json.e42614fd.chunk.js → content-type-builder-translation-es-json.5a362abf.chunk.js} +1 -1
  126. package/build/content-type-builder-translation-fr-json.afd4a12f.chunk.js +1 -0
  127. package/build/content-type-builder-translation-id-json.4a21dfab.chunk.js +1 -0
  128. package/build/content-type-builder-translation-it-json.4fa203b1.chunk.js +1 -0
  129. package/build/{content-type-builder-translation-ja-json.1459fb88.chunk.js → content-type-builder-translation-ja-json.cbb3b88a.chunk.js} +1 -1
  130. package/build/content-type-builder-translation-ko-json.7daf86c3.chunk.js +1 -0
  131. package/build/{content-type-builder-translation-ms-json.3dd46b39.chunk.js → content-type-builder-translation-ms-json.3755f8c8.chunk.js} +1 -1
  132. package/build/{content-type-builder-translation-nl-json.877dff80.chunk.js → content-type-builder-translation-nl-json.6f8d924b.chunk.js} +1 -1
  133. package/build/{content-type-builder-translation-pl-json.95b2b33d.chunk.js → content-type-builder-translation-pl-json.fc0b0c20.chunk.js} +1 -1
  134. package/build/{content-type-builder-translation-pt-BR-json.d311d056.chunk.js → content-type-builder-translation-pt-BR-json.86b192fa.chunk.js} +1 -1
  135. package/build/{content-type-builder-translation-pt-json.4893266f.chunk.js → content-type-builder-translation-pt-json.b584f79f.chunk.js} +1 -1
  136. package/build/content-type-builder-translation-ru-json.7648049a.chunk.js +1 -0
  137. package/build/{content-type-builder-translation-sk-json.eb4930b0.chunk.js → content-type-builder-translation-sk-json.c12a8dec.chunk.js} +1 -1
  138. package/build/content-type-builder-translation-th-json.668cd5f5.chunk.js +1 -0
  139. package/build/{content-type-builder-translation-tr-json.696283a5.chunk.js → content-type-builder-translation-tr-json.0f52e1e8.chunk.js} +1 -1
  140. package/build/content-type-builder-translation-uk-json.4bf80448.chunk.js +1 -0
  141. package/build/{content-type-builder-translation-zh-Hans-json.c70a6a4a.chunk.js → content-type-builder-translation-zh-Hans-json.76e58138.chunk.js} +1 -1
  142. package/build/{content-type-builder-translation-zh-json.6fe1861a.chunk.js → content-type-builder-translation-zh-json.0bec81f1.chunk.js} +1 -1
  143. package/build/content-type-builder.19ae7eef.chunk.js +1 -0
  144. package/build/cs-json.ce6f2e52.chunk.js +1 -0
  145. package/build/de-json.2087d61e.chunk.js +1 -0
  146. package/build/dk-json.fb9ee45a.chunk.js +1 -0
  147. package/build/{email-settings-page.27ee4a98.chunk.js → email-settings-page.40ee2bda.chunk.js} +1 -1
  148. package/build/en-json.c55e5344.chunk.js +1 -0
  149. package/build/es-json.8f4d89e2.chunk.js +1 -0
  150. package/build/fr-json.2a0b93ed.chunk.js +1 -0
  151. package/build/he-json.917d416c.chunk.js +1 -0
  152. package/build/hu-json.bee23c51.chunk.js +1 -0
  153. package/build/{i18n-settings-page.c4018651.chunk.js → i18n-settings-page.1f6be747.chunk.js} +1 -1
  154. package/build/i18n-translation-de-json.96ae1f68.chunk.js +1 -0
  155. package/build/id-json.fef679cb.chunk.js +1 -0
  156. package/build/index.html +1 -1
  157. package/build/it-json.937b2108.chunk.js +1 -0
  158. package/build/ja-json.b4818378.chunk.js +1 -0
  159. package/build/ko-json.8294a7fc.chunk.js +1 -0
  160. package/build/{main.a8c2970b.js → main.06e1a4bf.js} +2 -2
  161. package/build/{main.a8c2970b.js.LICENSE.txt → main.06e1a4bf.js.LICENSE.txt} +0 -0
  162. package/build/ms-json.f46167ef.chunk.js +1 -0
  163. package/build/nl-json.86eae27d.chunk.js +1 -0
  164. package/build/no-json.17ecda5d.chunk.js +1 -0
  165. package/build/pl-json.0db77f2c.chunk.js +1 -0
  166. package/build/pt-BR-json.4c90cb2d.chunk.js +1 -0
  167. package/build/pt-json.ef0efd89.chunk.js +1 -0
  168. package/build/ru-json.da33236d.chunk.js +1 -0
  169. package/build/{runtime~main.4dafb29d.js → runtime~main.b090a1bb.js} +1 -1
  170. package/build/sk-json.797e898f.chunk.js +1 -0
  171. package/build/sso-settings-page.c5dda65d.chunk.js +1 -0
  172. package/build/sv-json.5bbe6a4f.chunk.js +1 -0
  173. package/build/th-json.c1393c06.chunk.js +1 -0
  174. package/build/tr-json.57cde8b0.chunk.js +1 -0
  175. package/build/uk-json.c6df66d2.chunk.js +1 -0
  176. package/build/{upload-settings.4401f36d.chunk.js → upload-settings.9d3231f4.chunk.js} +1 -1
  177. package/build/upload-translation-de-json.55a7e43a.chunk.js +1 -0
  178. package/build/upload-translation-dk-json.b74134c8.chunk.js +1 -0
  179. package/build/upload-translation-en-json.c4e56528.chunk.js +1 -0
  180. package/build/upload-translation-es-json.15a3015f.chunk.js +1 -0
  181. package/build/upload-translation-fr-json.b12f7247.chunk.js +1 -0
  182. package/build/upload-translation-he-json.bee013d1.chunk.js +1 -0
  183. package/build/upload-translation-it-json.43ec0a8d.chunk.js +1 -0
  184. package/build/upload-translation-ja-json.03f1af04.chunk.js +1 -0
  185. package/build/upload-translation-ko-json.08ad9013.chunk.js +1 -0
  186. package/build/upload-translation-ms-json.30974c82.chunk.js +1 -0
  187. package/build/upload-translation-pl-json.3740abed.chunk.js +1 -0
  188. package/build/upload-translation-pt-BR-json.c7656183.chunk.js +1 -0
  189. package/build/upload-translation-ru-json.0dd4f526.chunk.js +1 -0
  190. package/build/upload-translation-sk-json.55cacd22.chunk.js +1 -0
  191. package/build/upload-translation-th-json.f7aa9392.chunk.js +1 -0
  192. package/build/upload-translation-uk-json.696a16f3.chunk.js +1 -0
  193. package/build/upload-translation-zh-Hans-json.de7bc63f.chunk.js +1 -0
  194. package/build/upload-translation-zh-json.bbc1ed41.chunk.js +1 -0
  195. package/build/{upload.5a2dded7.chunk.js → upload.8edef1ea.chunk.js} +1 -1
  196. package/build/{users-advanced-settings-page.8905d8d8.chunk.js → users-advanced-settings-page.48c437f0.chunk.js} +1 -1
  197. package/build/users-email-settings-page.f39866d6.chunk.js +1 -0
  198. package/build/users-permissions-translation-ar-json.667e7eee.chunk.js +1 -0
  199. package/build/users-permissions-translation-cs-json.995b5d76.chunk.js +1 -0
  200. package/build/users-permissions-translation-de-json.a5c8db9c.chunk.js +1 -0
  201. package/build/users-permissions-translation-dk-json.1fe5e07a.chunk.js +1 -0
  202. package/build/users-permissions-translation-en-json.0e0bc290.chunk.js +1 -0
  203. package/build/users-permissions-translation-es-json.05669296.chunk.js +1 -0
  204. package/build/users-permissions-translation-fr-json.3e3522c3.chunk.js +1 -0
  205. package/build/users-permissions-translation-id-json.186a3f65.chunk.js +1 -0
  206. package/build/users-permissions-translation-it-json.ee5742c4.chunk.js +1 -0
  207. package/build/users-permissions-translation-ja-json.c9cafa6e.chunk.js +1 -0
  208. package/build/users-permissions-translation-ko-json.170f89c2.chunk.js +1 -0
  209. package/build/users-permissions-translation-ms-json.3a128ff4.chunk.js +1 -0
  210. package/build/users-permissions-translation-nl-json.4146aed1.chunk.js +1 -0
  211. package/build/users-permissions-translation-pl-json.a61de7ed.chunk.js +1 -0
  212. package/build/users-permissions-translation-pt-BR-json.51b1cc15.chunk.js +1 -0
  213. package/build/users-permissions-translation-pt-json.85f0e0e1.chunk.js +1 -0
  214. package/build/users-permissions-translation-ru-json.a19b2400.chunk.js +1 -0
  215. package/build/users-permissions-translation-sk-json.27af7260.chunk.js +1 -0
  216. package/build/users-permissions-translation-sv-json.739657b9.chunk.js +1 -0
  217. package/build/users-permissions-translation-th-json.f001fff3.chunk.js +1 -0
  218. package/build/users-permissions-translation-tr-json.3aae5dda.chunk.js +1 -0
  219. package/build/users-permissions-translation-uk-json.a66c7a8c.chunk.js +1 -0
  220. package/build/users-permissions-translation-vi-json.685c65cc.chunk.js +1 -0
  221. package/build/users-permissions-translation-zh-Hans-json.2202741e.chunk.js +1 -0
  222. package/build/users-permissions-translation-zh-json.429a3190.chunk.js +1 -0
  223. package/build/users-providers-settings-page.574ed765.chunk.js +1 -0
  224. package/build/{users-roles-settings-page.a2f6277a.chunk.js → users-roles-settings-page.b836dc30.chunk.js} +1 -1
  225. package/build/vi-json.104a6f3a.chunk.js +1 -0
  226. package/build/webhook-edit-page.b791c6f9.chunk.js +1 -0
  227. package/build/{webhook-list-page.c21b5a9a.chunk.js → webhook-list-page.502d1236.chunk.js} +1 -1
  228. package/build/zh-Hans-json.9afc1adf.chunk.js +1 -0
  229. package/build/zh-json.f36abb77.chunk.js +1 -0
  230. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -1
  231. package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +2 -2
  232. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +5 -5
  233. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -6
  234. package/package.json +5 -5
  235. package/scripts/build.js +15 -1
  236. package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/PopoverContent.js +0 -87
  237. package/admin/src/content-manager/components/DynamicTable/CellContent/Relation/index.js +0 -107
  238. package/admin/src/themes/colors.js +0 -51
  239. package/admin/src/themes/fontWeights.js +0 -8
  240. package/admin/src/themes/index.js +0 -13
  241. package/admin/src/themes/sizes.js +0 -31
  242. package/build/4362.cf5b578d.chunk.js +0 -1
  243. package/build/849.98171304.chunk.js +0 -1
  244. package/build/9260.fa40c7bd.chunk.js +0 -2
  245. package/build/Admin-authenticatedApp.f7f4f112.chunk.js +0 -1
  246. package/build/Admin_homePage.fea90263.chunk.js +0 -1
  247. package/build/Admin_marketplace.89a0a014.chunk.js +0 -1
  248. package/build/Admin_pluginsPage.97a514db.chunk.js +0 -1
  249. package/build/Admin_profilePage.c497b39d.chunk.js +0 -1
  250. package/build/Admin_settingsPage.55ec1f30.chunk.js +0 -1
  251. package/build/admin-edit-roles-page.49b6f01d.chunk.js +0 -1
  252. package/build/admin-edit-users.381e4a0d.chunk.js +0 -1
  253. package/build/admin-users.2740c223.chunk.js +0 -1
  254. package/build/api-tokens-create-page.db17bb39.chunk.js +0 -1
  255. package/build/api-tokens-edit-page.c7299a77.chunk.js +0 -1
  256. package/build/api-tokens-list-page.26a05a21.chunk.js +0 -1
  257. package/build/ar-json.6a2565af.chunk.js +0 -1
  258. package/build/content-manager.94860c70.chunk.js +0 -1
  259. package/build/content-type-builder-translation-de-json.bf808f88.chunk.js +0 -1
  260. package/build/content-type-builder-translation-dk-json.28ed91d2.chunk.js +0 -1
  261. package/build/content-type-builder-translation-en-json.f19ac2e9.chunk.js +0 -1
  262. package/build/content-type-builder-translation-fr-json.bee621f7.chunk.js +0 -1
  263. package/build/content-type-builder-translation-id-json.dc5ea5d6.chunk.js +0 -1
  264. package/build/content-type-builder-translation-it-json.3c8ca035.chunk.js +0 -1
  265. package/build/content-type-builder-translation-ko-json.48ee9cec.chunk.js +0 -1
  266. package/build/content-type-builder-translation-ru-json.b76aa5ab.chunk.js +0 -1
  267. package/build/content-type-builder-translation-th-json.23555d01.chunk.js +0 -1
  268. package/build/content-type-builder-translation-uk-json.ff0523b6.chunk.js +0 -1
  269. package/build/content-type-builder.a963330a.chunk.js +0 -1
  270. package/build/cs-json.8df09876.chunk.js +0 -1
  271. package/build/de-json.6e14f607.chunk.js +0 -1
  272. package/build/dk-json.be388470.chunk.js +0 -1
  273. package/build/en-json.2bc27a3d.chunk.js +0 -1
  274. package/build/es-json.61553168.chunk.js +0 -1
  275. package/build/fr-json.a9ce0700.chunk.js +0 -1
  276. package/build/he-json.1742494e.chunk.js +0 -1
  277. package/build/hu-json.e667d285.chunk.js +0 -1
  278. package/build/i18n-translation-de-json.c5c9054f.chunk.js +0 -1
  279. package/build/id-json.d87ebb20.chunk.js +0 -1
  280. package/build/it-json.a2880b81.chunk.js +0 -1
  281. package/build/ja-json.e13f04e8.chunk.js +0 -1
  282. package/build/ko-json.2200c9c9.chunk.js +0 -1
  283. package/build/ms-json.3a062984.chunk.js +0 -1
  284. package/build/nl-json.30ce02cb.chunk.js +0 -1
  285. package/build/no-json.9af40e9d.chunk.js +0 -1
  286. package/build/pl-json.fd373053.chunk.js +0 -1
  287. package/build/pt-BR-json.30e2d716.chunk.js +0 -1
  288. package/build/pt-json.3aaf9e05.chunk.js +0 -1
  289. package/build/ru-json.78c56e1c.chunk.js +0 -1
  290. package/build/sk-json.c0bf144c.chunk.js +0 -1
  291. package/build/sso-settings-page.121dd0a6.chunk.js +0 -1
  292. package/build/sv-json.aad187b9.chunk.js +0 -1
  293. package/build/th-json.e2b4a0fb.chunk.js +0 -1
  294. package/build/tr-json.0add11cd.chunk.js +0 -1
  295. package/build/uk-json.eb78e77e.chunk.js +0 -1
  296. package/build/upload-translation-de-json.1308dce5.chunk.js +0 -1
  297. package/build/upload-translation-dk-json.0d4e855f.chunk.js +0 -1
  298. package/build/upload-translation-en-json.c334dd82.chunk.js +0 -1
  299. package/build/upload-translation-es-json.81b13eac.chunk.js +0 -1
  300. package/build/upload-translation-fr-json.1bec79ec.chunk.js +0 -1
  301. package/build/upload-translation-he-json.1d28982f.chunk.js +0 -1
  302. package/build/upload-translation-it-json.7d4bdc5a.chunk.js +0 -1
  303. package/build/upload-translation-ja-json.97fcacd8.chunk.js +0 -1
  304. package/build/upload-translation-ko-json.d7345fe1.chunk.js +0 -1
  305. package/build/upload-translation-ms-json.081effd5.chunk.js +0 -1
  306. package/build/upload-translation-pl-json.2dfe78bb.chunk.js +0 -1
  307. package/build/upload-translation-pt-BR-json.65936d7b.chunk.js +0 -1
  308. package/build/upload-translation-ru-json.2d3b6f69.chunk.js +0 -1
  309. package/build/upload-translation-sk-json.f15c7fd6.chunk.js +0 -1
  310. package/build/upload-translation-th-json.6d3c2370.chunk.js +0 -1
  311. package/build/upload-translation-uk-json.a6c38449.chunk.js +0 -1
  312. package/build/upload-translation-zh-Hans-json.f6b26c45.chunk.js +0 -1
  313. package/build/upload-translation-zh-json.06052336.chunk.js +0 -1
  314. package/build/users-email-settings-page.862eb51e.chunk.js +0 -1
  315. package/build/users-permissions-translation-ar-json.bdddd0d7.chunk.js +0 -1
  316. package/build/users-permissions-translation-cs-json.7881d3ff.chunk.js +0 -1
  317. package/build/users-permissions-translation-de-json.8d53c619.chunk.js +0 -1
  318. package/build/users-permissions-translation-dk-json.89d41c4b.chunk.js +0 -1
  319. package/build/users-permissions-translation-en-json.21b0fd2f.chunk.js +0 -1
  320. package/build/users-permissions-translation-es-json.a4f81eaa.chunk.js +0 -1
  321. package/build/users-permissions-translation-fr-json.a2172545.chunk.js +0 -1
  322. package/build/users-permissions-translation-id-json.8f17982a.chunk.js +0 -1
  323. package/build/users-permissions-translation-it-json.87952a24.chunk.js +0 -1
  324. package/build/users-permissions-translation-ja-json.5915d9ef.chunk.js +0 -1
  325. package/build/users-permissions-translation-ko-json.f1ca6cc4.chunk.js +0 -1
  326. package/build/users-permissions-translation-ms-json.2268324c.chunk.js +0 -1
  327. package/build/users-permissions-translation-nl-json.4e1231dd.chunk.js +0 -1
  328. package/build/users-permissions-translation-pl-json.107638b5.chunk.js +0 -1
  329. package/build/users-permissions-translation-pt-BR-json.8dafc053.chunk.js +0 -1
  330. package/build/users-permissions-translation-pt-json.3322464f.chunk.js +0 -1
  331. package/build/users-permissions-translation-ru-json.5709c5a0.chunk.js +0 -1
  332. package/build/users-permissions-translation-sk-json.fe7cc044.chunk.js +0 -1
  333. package/build/users-permissions-translation-sv-json.e7e1684b.chunk.js +0 -1
  334. package/build/users-permissions-translation-th-json.bb544ee3.chunk.js +0 -1
  335. package/build/users-permissions-translation-tr-json.30f3ca90.chunk.js +0 -1
  336. package/build/users-permissions-translation-uk-json.634f2569.chunk.js +0 -1
  337. package/build/users-permissions-translation-vi-json.605d88bc.chunk.js +0 -1
  338. package/build/users-permissions-translation-zh-Hans-json.85480dab.chunk.js +0 -1
  339. package/build/users-permissions-translation-zh-json.99932731.chunk.js +0 -1
  340. package/build/users-providers-settings-page.368893ed.chunk.js +0 -1
  341. package/build/vi-json.1e850069.chunk.js +0 -1
  342. package/build/webhook-edit-page.d170eda1.chunk.js +0 -1
  343. package/build/zh-Hans-json.55f6475b.chunk.js +0 -1
  344. package/build/zh-json.c3c2b225.chunk.js +0 -1
@@ -4,44 +4,64 @@ import styled from 'styled-components';
4
4
  import { Typography } from '@strapi/design-system/Typography';
5
5
  import Media from './Media';
6
6
  import MultipleMedias from './MultipleMedias';
7
- import Relation from './Relation';
7
+ import RelationMultiple from './RelationMultiple';
8
+ import RelationSingle from './RelationSingle';
9
+ import RepeatableComponent from './RepeatableComponent';
10
+ import SingleComponent from './SingleComponent';
8
11
  import CellValue from './CellValue';
12
+ import hasContent from './utils/hasContent';
13
+ import isSingleRelation from './utils/isSingleRelation';
9
14
 
10
15
  const TypographyMaxWidth = styled(Typography)`
11
16
  max-width: 300px;
12
17
  `;
13
18
 
14
19
  const CellContent = ({ content, fieldSchema, metadatas, name, queryInfos, rowId }) => {
15
- if (content === null || content === undefined) {
20
+ const { type } = fieldSchema;
21
+
22
+ if (!hasContent(type, content, metadatas, fieldSchema)) {
16
23
  return <Typography textColor="neutral800">-</Typography>;
17
24
  }
18
25
 
19
- if (fieldSchema.type === 'media' && !fieldSchema.multiple) {
20
- return <Media {...content} />;
21
- }
26
+ switch (type) {
27
+ case 'media':
28
+ if (!fieldSchema.multiple) {
29
+ return <Media {...content} />;
30
+ }
22
31
 
23
- if (fieldSchema.type === 'media' && fieldSchema.multiple) {
24
- return <MultipleMedias value={content} />;
25
- }
32
+ return <MultipleMedias value={content} />;
26
33
 
27
- if (fieldSchema.type === 'relation') {
28
- return (
29
- <Relation
30
- fieldSchema={fieldSchema}
31
- queryInfos={queryInfos}
32
- metadatas={metadatas}
33
- value={content}
34
- name={name}
35
- rowId={rowId}
36
- />
37
- );
38
- }
34
+ case 'relation': {
35
+ if (isSingleRelation(fieldSchema.relation)) {
36
+ return <RelationSingle metadatas={metadatas} value={content} />;
37
+ }
39
38
 
40
- return (
41
- <TypographyMaxWidth ellipsis textColor="neutral800">
42
- <CellValue type={fieldSchema.type} value={content} />
43
- </TypographyMaxWidth>
44
- );
39
+ return (
40
+ <RelationMultiple
41
+ fieldSchema={fieldSchema}
42
+ queryInfos={queryInfos}
43
+ metadatas={metadatas}
44
+ value={content}
45
+ name={name}
46
+ rowId={rowId}
47
+ />
48
+ );
49
+ }
50
+
51
+ case 'component':
52
+ if (fieldSchema.repeatable === true) {
53
+ return <RepeatableComponent value={content} metadatas={metadatas} />;
54
+ }
55
+
56
+ return <SingleComponent value={content} metadatas={metadatas} />;
57
+
58
+ default:
59
+ return (
60
+ <TypographyMaxWidth ellipsis textColor="neutral800">
61
+ <CellValue type={type} value={content} />
62
+ </TypographyMaxWidth>
63
+ );
64
+ }
45
65
  };
46
66
 
47
67
  CellContent.defaultProps = {
@@ -51,8 +71,13 @@ CellContent.defaultProps = {
51
71
 
52
72
  CellContent.propTypes = {
53
73
  content: PropTypes.any,
54
- fieldSchema: PropTypes.shape({ multiple: PropTypes.bool, type: PropTypes.string.isRequired })
55
- .isRequired,
74
+ fieldSchema: PropTypes.shape({
75
+ component: PropTypes.string,
76
+ multiple: PropTypes.bool,
77
+ type: PropTypes.string.isRequired,
78
+ repeatable: PropTypes.bool,
79
+ relation: PropTypes.string,
80
+ }).isRequired,
56
81
  metadatas: PropTypes.object.isRequired,
57
82
  name: PropTypes.string.isRequired,
58
83
  rowId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
@@ -0,0 +1,29 @@
1
+ import isEmpty from 'lodash/isEmpty';
2
+
3
+ import isSingleRelation from './isSingleRelation';
4
+
5
+ export default function hasContent(type, content, metadatas, fieldSchema) {
6
+ if (type === 'component') {
7
+ const {
8
+ mainField: { name: mainFieldName },
9
+ } = metadatas;
10
+
11
+ // Repeatable fields show the ID as fallback, in case the mainField
12
+ // doesn't have any content
13
+ if (fieldSchema?.repeatable) {
14
+ return content.length > 0;
15
+ }
16
+
17
+ return !isEmpty(content[mainFieldName]);
18
+ }
19
+
20
+ if (type === 'relation') {
21
+ if (isSingleRelation(fieldSchema.relation)) {
22
+ return !isEmpty(content);
23
+ }
24
+
25
+ return content.count > 0;
26
+ }
27
+
28
+ return !isEmpty(content);
29
+ }
@@ -0,0 +1,3 @@
1
+ export default function isSingleRelation(type) {
2
+ return ['oneToOne', 'manyToOne', 'oneToOneMorph'].includes(type);
3
+ }
@@ -148,7 +148,7 @@ const TableRows = ({
148
148
  onClickDelete(data.id);
149
149
  }}
150
150
  label={formatMessage(
151
- { id: 'app.component.table.delete', defaultMessage: 'Delete {target}' },
151
+ { id: 'global.delete-target', defaultMessage: 'Delete {target}' },
152
152
  { target: itemLineText }
153
153
  )}
154
154
  noBorder
@@ -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,
@@ -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;
@@ -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
  />
@@ -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
  />
@@ -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
 
@@ -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(() => {
@@ -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,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';
@@ -10,7 +10,7 @@ const initialState = {
10
10
  {
11
11
  icon: Puzzle,
12
12
  intlLabel: {
13
- id: 'app.components.LeftMenuLinkContainer.listPlugins',
13
+ id: 'global.plugins',
14
14
  defaultMessage: 'Plugins',
15
15
  },
16
16
  to: '/list-plugins',
@@ -19,7 +19,7 @@ const initialState = {
19
19
  {
20
20
  icon: ShoppingCart,
21
21
  intlLabel: {
22
- id: 'app.components.LeftMenuLinkContainer.installNewPlugin',
22
+ id: 'global.marketplace',
23
23
  defaultMessage: 'Marketplace',
24
24
  },
25
25
  to: '/marketplace',
@@ -28,7 +28,7 @@ const initialState = {
28
28
  {
29
29
  icon: Cog,
30
30
  intlLabel: {
31
- id: 'app.components.LeftMenuLinkContainer.settings',
31
+ id: 'global.settings',
32
32
  defaultMessage: 'Settings',
33
33
  },
34
34
  to: '/settings',
@@ -15,7 +15,7 @@ const useReleaseNotification = () => {
15
15
  link: {
16
16
  url: `https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`,
17
17
  label: {
18
- id: 'notification.version.update.link',
18
+ id: 'global.see-more',
19
19
  },
20
20
  },
21
21
  blockTransition: true,
@@ -25,14 +25,14 @@ 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', defaultMessage: 'Roles' },
28
+ intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },
29
29
  to: '/settings/roles',
30
30
  id: 'roles',
31
31
  isDisplayed: false,
32
32
  permissions: adminPermissions.settings.roles.main,
33
33
  },
34
34
  {
35
- intlLabel: { id: 'Settings.permissions.menu.link.users.label' },
35
+ intlLabel: { id: 'global.users' },
36
36
  // Init the search params directly
37
37
  to: '/settings/users?pageSize=10&page=1&sort=firstname',
38
38
  id: 'users',
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { ThemeToggleContext } from '../../contexts';
3
+
4
+ const useThemeToggle = () => {
5
+ const context = useContext(ThemeToggleContext);
6
+
7
+ return context;
8
+ };
9
+
10
+ export default useThemeToggle;
@@ -40,7 +40,7 @@ const UnauthenticatedLayout = ({ children }) => {
40
40
  <LocaleToggle />
41
41
  </Box>
42
42
  </Flex>
43
- <Box paddingTop={11} paddingBottom={11}>
43
+ <Box paddingTop={2} paddingBottom={11}>
44
44
  {children}
45
45
  </Box>
46
46
  </div>
@@ -21,7 +21,7 @@ const Button = styled.button`
21
21
  box-shadow: ${({ theme }) => theme.shadows.tableShadow};
22
22
  border-radius: 50%;
23
23
  svg {
24
- color: ${({ theme }) => theme.colors.neutral0};
24
+ color: ${({ theme }) => theme.colors.buttonNeutral0};
25
25
  }
26
26
  `;
27
27
 
@@ -75,7 +75,7 @@ const Onboarding = () => {
75
75
  {
76
76
  icon: 'book',
77
77
  label: formatMessage({
78
- id: 'app.components.LeftMenuFooter.documentation',
78
+ id: 'global.documentation',
79
79
  defaultMessage: 'Documentation',
80
80
  }),
81
81
  destination: 'https://docs.strapi.io',
@@ -107,7 +107,7 @@ const Login = ({ onSubmit, schema, children }) => {
107
107
  onChange={handleChange}
108
108
  value={values.password}
109
109
  label={formatMessage({
110
- id: 'Auth.form.password.label',
110
+ id: 'global.password',
111
111
  defaultMessage: 'Password',
112
112
  })}
113
113
  name="password"