@plone/volto 18.0.0-alpha.14 → 18.0.0-alpha.16

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 (177) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/jest-setup-afterenv.js +2 -0
  3. package/package.json +32 -29
  4. package/src/components/index.js +9 -8
  5. package/src/components/manage/Add/Add.jsx +9 -11
  6. package/src/components/manage/Add/Add.test.jsx +11 -13
  7. package/src/components/manage/Aliases/Aliases.jsx +6 -6
  8. package/src/components/manage/Aliases/Aliases.test.jsx +7 -7
  9. package/src/components/manage/BlockChooser/BlockChooser.test.jsx +0 -1
  10. package/src/components/manage/BlockChooser/BlockChooserButton.jsx +6 -6
  11. package/src/components/manage/BlockChooser/BlockChooserSearch.test.jsx +0 -1
  12. package/src/components/manage/Blocks/Block/Settings.test.jsx +0 -1
  13. package/src/components/manage/Blocks/Container/NewBlockAddButton.jsx +20 -19
  14. package/src/components/manage/Blocks/Image/Edit.jsx +12 -12
  15. package/src/components/manage/Blocks/Image/ImageSidebar.jsx +3 -3
  16. package/src/components/manage/Blocks/Image/View.jsx +14 -14
  17. package/src/components/manage/Blocks/Image/View.test.jsx +0 -1
  18. package/src/components/manage/Blocks/Listing/withQuerystringResults.jsx +6 -6
  19. package/src/components/manage/Blocks/Search/SelectStyling.jsx +2 -2
  20. package/src/components/manage/Blocks/Search/components/CheckboxFacet.jsx +2 -2
  21. package/src/components/manage/Blocks/Search/components/Facets.jsx +2 -2
  22. package/src/components/manage/Blocks/Search/components/SelectStyling.jsx +4 -4
  23. package/src/components/manage/Blocks/Table/Edit.jsx +7 -6
  24. package/src/components/manage/Contents/Contents.jsx +9 -9
  25. package/src/components/manage/Contents/Contents.test.jsx +7 -7
  26. package/src/components/manage/Contents/ContentsPropertiesModal.test.jsx +4 -4
  27. package/src/components/manage/Controlpanels/AddonsControlpanel.jsx +6 -6
  28. package/src/components/manage/Controlpanels/AddonsControlpanel.test.jsx +6 -7
  29. package/src/components/manage/Controlpanels/Aliases.jsx +6 -6
  30. package/src/components/manage/Controlpanels/Aliases.test.jsx +6 -7
  31. package/src/components/manage/Controlpanels/ContentType.jsx +6 -6
  32. package/src/components/manage/Controlpanels/ContentType.test.jsx +7 -7
  33. package/src/components/manage/Controlpanels/ContentTypeLayout.jsx +93 -85
  34. package/src/components/manage/Controlpanels/ContentTypeLayout.test.jsx +7 -7
  35. package/src/components/manage/Controlpanels/ContentTypeSchema.jsx +6 -6
  36. package/src/components/manage/Controlpanels/ContentTypes.jsx +6 -6
  37. package/src/components/manage/Controlpanels/ContentTypes.test.jsx +7 -7
  38. package/src/components/manage/Controlpanels/Controlpanel.jsx +6 -6
  39. package/src/components/manage/Controlpanels/Controlpanel.test.jsx +7 -7
  40. package/src/components/manage/Controlpanels/Controlpanels.jsx +6 -6
  41. package/src/components/manage/Controlpanels/Controlpanels.test.jsx +10 -10
  42. package/src/components/manage/Controlpanels/DatabaseInformation.jsx +6 -6
  43. package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +10 -10
  44. package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.test.jsx +7 -7
  45. package/src/components/manage/Controlpanels/ModerateComments.jsx +6 -6
  46. package/src/components/manage/Controlpanels/ModerateComments.test.jsx +7 -7
  47. package/src/components/manage/Controlpanels/Relations/Relations.jsx +13 -7
  48. package/src/components/manage/Controlpanels/Rules/AddRule.jsx +6 -6
  49. package/src/components/manage/Controlpanels/Rules/AddRule.test.jsx +6 -7
  50. package/src/components/manage/Controlpanels/Rules/ConfigureRule.jsx +6 -6
  51. package/src/components/manage/Controlpanels/Rules/ConfigureRule.test.jsx +6 -7
  52. package/src/components/manage/Controlpanels/Rules/EditRule.jsx +6 -6
  53. package/src/components/manage/Controlpanels/Rules/EditRule.test.jsx +6 -7
  54. package/src/components/manage/Controlpanels/Rules/Rules.jsx +6 -6
  55. package/src/components/manage/Controlpanels/Rules/Rules.test.jsx +6 -7
  56. package/src/components/manage/Controlpanels/Rules/components/{VariableModal.test.jsx → VariableModal.test.jsx.removed} +6 -7
  57. package/src/components/manage/Controlpanels/UndoControlpanel.jsx +6 -6
  58. package/src/components/manage/Controlpanels/UndoControlpanel.test.jsx +7 -7
  59. package/src/components/manage/Controlpanels/UpgradeControlPanel.jsx +6 -6
  60. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.jsx +14 -8
  61. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.test.jsx +7 -7
  62. package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +8 -8
  63. package/src/components/manage/Controlpanels/Users/UsersControlpanel.test.jsx +7 -7
  64. package/src/components/manage/Delete/Delete.jsx +6 -6
  65. package/src/components/manage/Delete/Delete.test.jsx +10 -10
  66. package/src/components/manage/Diff/Diff.jsx +6 -6
  67. package/src/components/manage/Diff/Diff.test.jsx +2 -3
  68. package/src/components/manage/Display/Display.jsx +2 -2
  69. package/src/components/manage/Edit/Edit.jsx +10 -11
  70. package/src/components/manage/Edit/Edit.test.jsx +14 -10
  71. package/src/components/manage/Form/BlockDataForm.test.jsx +0 -1
  72. package/src/components/manage/Form/Form.jsx +16 -8
  73. package/src/components/manage/Form/ModalForm.test.jsx +0 -1
  74. package/src/components/manage/History/History.jsx +6 -6
  75. package/src/components/manage/History/History.test.jsx +14 -13
  76. package/src/components/manage/LinksToItem/LinksToItem.jsx +78 -49
  77. package/src/components/manage/LinksToItem/LinksToItem.test.jsx +7 -7
  78. package/src/components/manage/Multilingual/ManageTranslations.jsx +13 -7
  79. package/src/components/manage/Multilingual/ManageTranslations.test.jsx +6 -7
  80. package/src/components/manage/Preferences/ChangePassword.jsx +6 -6
  81. package/src/components/manage/Preferences/ChangePassword.test.jsx +6 -7
  82. package/src/components/manage/Preferences/PersonalInformation.test.jsx +1 -3
  83. package/src/components/manage/Preferences/PersonalPreferences.test.jsx +1 -3
  84. package/src/components/manage/Rules/Rules.jsx +6 -6
  85. package/src/components/manage/Rules/Rules.test.jsx +7 -7
  86. package/src/components/manage/Sharing/Sharing.jsx +6 -6
  87. package/src/components/manage/Sharing/Sharing.test.jsx +7 -7
  88. package/src/components/manage/Sidebar/ObjectBrowser.jsx +1 -1
  89. package/src/components/manage/Sidebar/ObjectBrowserBody.jsx +10 -10
  90. package/src/components/manage/Sidebar/Sidebar.jsx +2 -0
  91. package/src/components/manage/Sidebar/SidebarPopup.jsx +28 -21
  92. package/src/components/manage/Sidebar/SidebarPortal.jsx +7 -6
  93. package/src/components/manage/Widgets/ArrayWidget.jsx +21 -21
  94. package/src/components/manage/Widgets/FileWidget.jsx +3 -3
  95. package/src/components/manage/Widgets/ObjectBrowserWidget.test.jsx +4 -4
  96. package/src/components/manage/Widgets/ObjectListWidget.test.js +0 -1
  97. package/src/components/manage/Widgets/ObjectWidget.test.jsx +0 -1
  98. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +2 -2
  99. package/src/components/manage/Widgets/ReferenceWidget.jsx +2 -2
  100. package/src/components/manage/Widgets/SchemaWidget.test.jsx +4 -4
  101. package/src/components/manage/Widgets/SchemaWidgetFieldset.test.jsx +5 -5
  102. package/src/components/manage/Widgets/SelectAutoComplete.jsx +6 -6
  103. package/src/components/manage/Widgets/SelectStyling.jsx +4 -4
  104. package/src/components/manage/Widgets/SelectUtils.js +2 -2
  105. package/src/components/manage/Widgets/UrlWidget.test.jsx +4 -4
  106. package/src/components/manage/Widgets/VocabularyTermsWidget.test.jsx +4 -4
  107. package/src/components/manage/Workflow/Workflow.jsx +2 -2
  108. package/src/components/theme/Comments/Comments.jsx +7 -8
  109. package/src/components/theme/Component/Component.test.jsx +0 -1
  110. package/src/components/theme/ContactForm/ContactForm.jsx +6 -6
  111. package/src/components/theme/ContactForm/ContactForm.test.jsx +12 -10
  112. package/src/components/theme/Footer/Footer.test.jsx +0 -1
  113. package/src/components/theme/Logout/Logout.test.jsx +8 -5
  114. package/src/components/theme/Search/Search.jsx +6 -6
  115. package/src/components/theme/Search/Search.test.jsx +13 -10
  116. package/src/components/theme/SlotRenderer/SlotRenderer.test.jsx +0 -1
  117. package/src/components/theme/View/View.jsx +6 -6
  118. package/src/components/theme/View/View.test.jsx +25 -18
  119. package/src/components/theme/Widgets/BooleanWidget.jsx +2 -2
  120. package/src/config/Loadables.jsx +10 -10
  121. package/src/config/Views.jsx +2 -2
  122. package/src/config/Widgets.jsx +7 -6
  123. package/src/helpers/AsyncConnect/AsyncConnect.test.js +0 -2
  124. package/src/helpers/Blocks/Blocks.js +20 -20
  125. package/src/helpers/Html/Html.jsx +2 -2
  126. package/src/helpers/Utils/Date.js +6 -6
  127. package/src/helpers/Utils/UseDetectClickOutside.stories.jsx +8 -8
  128. package/src/helpers/Utils/Utils.js +2 -2
  129. package/src/start-client.jsx +3 -3
  130. package/src/store.js +1 -1
  131. package/types/components/manage/Add/Add.d.ts +1 -4
  132. package/types/components/manage/Aliases/Aliases.d.ts +1 -4
  133. package/types/components/manage/Blocks/Block/Edit.d.ts +1 -3
  134. package/types/components/manage/Blocks/HeroImageLeft/Edit.d.ts +1 -4
  135. package/types/components/manage/Blocks/Image/Edit.d.ts +1 -4
  136. package/types/components/manage/Contents/Contents.d.ts +2 -7
  137. package/types/components/manage/Contents/ContentsUploadModal.d.ts +1 -4
  138. package/types/components/manage/Controlpanels/AddonsControlpanel.d.ts +1 -4
  139. package/types/components/manage/Controlpanels/Aliases.d.ts +1 -4
  140. package/types/components/manage/Controlpanels/ContentType.d.ts +1 -4
  141. package/types/components/manage/Controlpanels/ContentTypeLayout.d.ts +1 -4
  142. package/types/components/manage/Controlpanels/ContentTypeSchema.d.ts +1 -4
  143. package/types/components/manage/Controlpanels/ContentTypes.d.ts +1 -4
  144. package/types/components/manage/Controlpanels/DatabaseInformation.d.ts +1 -4
  145. package/types/components/manage/Controlpanels/Groups/GroupsControlpanel.d.ts +1 -4
  146. package/types/components/manage/Controlpanels/ModerateComments.d.ts +1 -4
  147. package/types/components/manage/Controlpanels/Rules/AddRule.d.ts +1 -4
  148. package/types/components/manage/Controlpanels/Rules/ConfigureRule.d.ts +1 -4
  149. package/types/components/manage/Controlpanels/Rules/EditRule.d.ts +1 -4
  150. package/types/components/manage/Controlpanels/Rules/Rules.d.ts +1 -4
  151. package/types/components/manage/Controlpanels/Rules/components/VariableModal.d.ts +1 -4
  152. package/types/components/manage/Controlpanels/UndoControlpanel.d.ts +1 -4
  153. package/types/components/manage/Controlpanels/UpgradeControlPanel.d.ts +1 -4
  154. package/types/components/manage/Controlpanels/Users/RenderUsers.d.ts +1 -4
  155. package/types/components/manage/Controlpanels/Users/UsersControlpanel.d.ts +1 -4
  156. package/types/components/manage/Display/Display.d.ts +1 -4
  157. package/types/components/manage/Edit/Edit.d.ts +2 -7
  158. package/types/components/manage/Form/BlocksToolbar.d.ts +1 -3
  159. package/types/components/manage/History/History.d.ts +1 -4
  160. package/types/components/manage/Preferences/PersonalPreferences.d.ts +1 -4
  161. package/types/components/manage/Rules/Rules.d.ts +1 -4
  162. package/types/components/manage/Sidebar/ObjectBrowserBody.d.ts +1 -4
  163. package/types/components/manage/Toolbar/Toolbar.d.ts +1 -4
  164. package/types/components/manage/Widgets/ArrayWidget.d.ts +1 -3
  165. package/types/components/manage/Widgets/IdWidget.d.ts +1 -4
  166. package/types/components/manage/Widgets/QueryWidget.d.ts +1 -3
  167. package/types/components/manage/Widgets/ReferenceWidget.d.ts +1 -4
  168. package/types/components/manage/Widgets/SchemaWidget.d.ts +1 -4
  169. package/types/components/manage/Widgets/SelectAutoComplete.d.ts +1 -3
  170. package/types/components/manage/Widgets/TokenWidget.d.ts +1 -4
  171. package/types/components/manage/Widgets/WysiwygWidget.d.ts +1 -4
  172. package/types/components/theme/Search/Search.d.ts +2 -7
  173. package/types/components/theme/Sitemap/Sitemap.d.ts +2 -6
  174. package/types/components/theme/View/View.d.ts +1 -4
  175. package/types/config/Widgets.d.ts +1 -3
  176. package/src/components/manage/Multilingual/CreateTranslation.test.jsx +0 -46
  177. package/src/helpers/Utils/usePagination.test.js +0 -115
package/CHANGELOG.md CHANGED
@@ -17,6 +17,23 @@ myst:
17
17
 
18
18
  <!-- towncrier release notes start -->
19
19
 
20
+ ## 18.0.0-alpha.16 (2024-03-02)
21
+
22
+ ### Internal
23
+
24
+ - Update dependencies
25
+ Fix prettier due to new version @sneridagh [#5815](https://github.com/plone/volto/issues/5815)
26
+
27
+ ### Documentation
28
+
29
+ - Linkcheck thinks `README.md` is `http://README.md`. Bad linkcheck, no more 🍺 for you. @stevepiercy [#5816](https://github.com/plone/volto/issues/5816)
30
+
31
+ ## 18.0.0-alpha.15 (2024-03-01)
32
+
33
+ ### Breaking
34
+
35
+ - Upgrade Volto core to use React 18.2.0 @sneridagh [#3221](https://github.com/plone/volto/issues/3221)
36
+
20
37
  ## 18.0.0-alpha.14 (2024-03-01)
21
38
 
22
39
  ### Breaking
@@ -0,0 +1,2 @@
1
+ // Jest-crap setup after env T_T
2
+ import '@testing-library/jest-dom';
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  }
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "18.0.0-alpha.14",
12
+ "version": "18.0.0-alpha.16",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "git@github.com:plone/volto.git"
@@ -80,6 +80,9 @@
80
80
  "./test-setup-config.js"
81
81
  ],
82
82
  "globalSetup": "./global-test-setup.js",
83
+ "setupFilesAfterEnv": [
84
+ "<rootDir>/jest-setup-afterenv.js"
85
+ ],
83
86
  "globals": {
84
87
  "__DEV__": true
85
88
  },
@@ -156,6 +159,7 @@
156
159
  "@loadable/component": "5.14.1",
157
160
  "@loadable/server": "5.14.0",
158
161
  "@loadable/webpack-plugin": "5.15.2",
162
+ "@redux-devtools/extension": "^3.3.0",
159
163
  "@types/react": "^18.2.57",
160
164
  "@types/react-dom": "^18.2.19",
161
165
  "autoprefixer": "10.4.8",
@@ -186,13 +190,13 @@
186
190
  "draft-js-plugins-utils": "2.0.3",
187
191
  "draftjs-filters": "2.3.0",
188
192
  "eslint": "8.49.0",
189
- "eslint-config-prettier": "9.0.0",
193
+ "eslint-config-prettier": "9.1.0",
190
194
  "eslint-config-react-app": "7.0.1",
191
195
  "eslint-import-resolver-alias": "1.1.2",
192
196
  "eslint-import-resolver-babel-plugin-root-import": "1.1.1",
193
- "eslint-plugin-import": "2.28.1",
197
+ "eslint-plugin-import": "2.29.1",
194
198
  "eslint-plugin-jsx-a11y": "^6.7.1",
195
- "eslint-plugin-prettier": "5.0.0",
199
+ "eslint-plugin-prettier": "5.1.3",
196
200
  "eslint-plugin-react": "7.33.2",
197
201
  "eslint-plugin-react-hooks": "4.6.0",
198
202
  "express": "4.17.3",
@@ -232,7 +236,7 @@
232
236
  "postcss-overrides": "3.1.4",
233
237
  "postcss-scss": "4.0.6",
234
238
  "prepend-http": "2",
235
- "prettier": "3.0.3",
239
+ "prettier": "3.2.5",
236
240
  "pretty-bytes": "5.3.0",
237
241
  "prismjs": "1.27.0",
238
242
  "process": "^0.11.10",
@@ -243,7 +247,7 @@
243
247
  "razzle-dev-utils": "4.2.18",
244
248
  "razzle-plugin-scss": "4.2.18",
245
249
  "rc-time-picker": "3.7.3",
246
- "react": "17.0.2",
250
+ "react": "18.2.0",
247
251
  "react-anchor-link-smooth-scroll": "1.0.12",
248
252
  "react-animate-height": "2.0.17",
249
253
  "react-beautiful-dnd": "13.0.0",
@@ -252,17 +256,16 @@
252
256
  "react-detect-click-outside": "1.1.1",
253
257
  "react-dnd": "5.0.0",
254
258
  "react-dnd-html5-backend": "5.0.1",
255
- "react-dom": "17.0.2",
259
+ "react-dom": "18.2.0",
256
260
  "react-dropzone": "11.1.0",
257
261
  "react-fast-compare": "2.0.4",
258
262
  "react-image-gallery": "1.2.7",
259
263
  "react-intersection-observer": "9.1.0",
260
264
  "react-intl": "3.8.0",
261
- "react-intl-redux": "2.2.0",
265
+ "react-intl-redux": "2.3.0",
262
266
  "react-medium-image-zoom": "3.0.15",
263
267
  "react-popper": "^2.3.0",
264
- "react-portal": "4.2.1",
265
- "react-redux": "7.2.4",
268
+ "react-redux": "8.1.2",
266
269
  "react-router": "5.2.0",
267
270
  "react-router-config": "5.1.1",
268
271
  "react-router-dom": "5.2.0",
@@ -270,21 +273,20 @@
270
273
  "react-select": "4.3.1",
271
274
  "react-select-async-paginate": "0.5.3",
272
275
  "react-share": "2.3.1",
273
- "react-side-effect": "2.1.0",
276
+ "react-side-effect": "2.1.2",
274
277
  "react-simple-code-editor": "0.7.1",
275
278
  "react-sortable-hoc": "2.0.0",
276
- "react-test-renderer": "17.0.2",
279
+ "react-test-renderer": "18.2.0",
277
280
  "react-toastify": "5.4.1",
278
281
  "react-transition-group": "4.4.5",
279
282
  "react-virtualized": "9.22.3",
280
283
  "redraft": "0.10.2",
281
- "redux": "4.1.0",
282
- "redux-actions": "2.6.5",
284
+ "redux": "4.2.1",
285
+ "redux-actions": "3.0.0",
283
286
  "redux-connect": "10.0.0",
284
- "redux-devtools-extension": "2.13.8",
285
- "redux-localstorage-simple": "2.3.1",
287
+ "redux-localstorage-simple": "2.5.1",
286
288
  "redux-mock-store": "1.5.4",
287
- "redux-thunk": "2.3.0",
289
+ "redux-thunk": "2.4.2",
288
290
  "rrule": "2.7.1",
289
291
  "semantic-ui-less": "2.4.1",
290
292
  "semantic-ui-react": "2.1.5",
@@ -294,9 +296,9 @@
294
296
  "slate-react": "0.98.4",
295
297
  "start-server-and-test": "1.14.0",
296
298
  "style-loader": "3.3.1",
297
- "stylelint": "15.10.3",
298
- "stylelint-config-idiomatic-order": "9.0.0",
299
- "stylelint-prettier": "4.0.2",
299
+ "stylelint": "16.2.1",
300
+ "stylelint-config-idiomatic-order": "10.0.0",
301
+ "stylelint-prettier": "5.0.0",
300
302
  "superagent": "3.8.2",
301
303
  "svg-loader": "0.0.2",
302
304
  "svgo-loader": "3.0.3",
@@ -313,10 +315,9 @@
313
315
  "webpack-dev-server": "4.11.1",
314
316
  "webpack-node-externals": "3.0.0",
315
317
  "xmlrpc": "1.3.2",
316
- "yarnhook": "0.5.1",
317
- "@plone/registry": "1.4.0",
318
- "@plone/volto-slate": "18.0.0-alpha.7",
319
- "@plone/scripts": "3.3.2"
318
+ "@plone/registry": "1.5.1",
319
+ "@plone/volto-slate": "18.0.0-alpha.9",
320
+ "@plone/scripts": "3.4.0"
320
321
  },
321
322
  "devDependencies": {
322
323
  "@jest/globals": "^29.7.0",
@@ -330,13 +331,15 @@
330
331
  "@storybook/manager-webpack5": "^6.5.15",
331
332
  "@storybook/react": "^6.5.15",
332
333
  "@testing-library/cypress": "9.0.0",
333
- "@testing-library/jest-dom": "5.16.4",
334
- "@testing-library/react": "12.1.5",
334
+ "@testing-library/jest-dom": "6.4.1",
335
+ "@testing-library/react": "14.2.0",
335
336
  "@testing-library/react-hooks": "8.0.1",
336
337
  "@types/jest": "^29.5.8",
337
338
  "@types/lodash": "^4.14.201",
339
+ "@types/react": "^18",
340
+ "@types/react-dom": "^18",
338
341
  "@types/react-router-dom": "^5.3.3",
339
- "@types/react-test-renderer": "18.0.1",
342
+ "@types/react-test-renderer": "18.0.7",
340
343
  "@types/uuid": "^9.0.2",
341
344
  "@typescript-eslint/eslint-plugin": "6.7.0",
342
345
  "@typescript-eslint/parser": "6.7.0",
@@ -353,7 +356,7 @@
353
356
  "jsonwebtoken": "9.0.0",
354
357
  "react-docgen-typescript-plugin": "^1.0.5",
355
358
  "react-error-overlay": "6.0.9",
356
- "react-is": "^16.13.1",
359
+ "react-is": "^18.2.0",
357
360
  "release-it": "^16.2.1",
358
361
  "semver": "^7.5.4",
359
362
  "tmp": "0.2.1",
@@ -363,7 +366,7 @@
363
366
  "use-trace-update": "1.3.2",
364
367
  "wait-on": "6.0.0",
365
368
  "why": "0.6.2",
366
- "@plone/types": "1.0.0-alpha.4",
369
+ "@plone/types": "1.0.0-alpha.5",
367
370
  "@plone/volto-coresandbox": "1.0.0"
368
371
  },
369
372
  "volta": {
@@ -64,8 +64,8 @@ export { default as FileView } from '@plone/volto/components/theme/View/FileView
64
64
  export { default as ImageView } from '@plone/volto/components/theme/View/ImageView';
65
65
  export { default as NewsItemView } from '@plone/volto/components/theme/View/NewsItemView';
66
66
 
67
- export const EventView = loadable(() =>
68
- import('@plone/volto/components/theme/View/EventView'),
67
+ export const EventView = loadable(
68
+ () => import('@plone/volto/components/theme/View/EventView'),
69
69
  );
70
70
 
71
71
  export { default as ListingView } from '@plone/volto/components/theme/View/ListingView';
@@ -152,13 +152,14 @@ export { default as FormFieldWrapper } from '@plone/volto/components/manage/Widg
152
152
  export { default as ArrayWidget } from '@plone/volto/components/manage/Widgets/ArrayWidget';
153
153
  export { default as CheckboxWidget } from '@plone/volto/components/manage/Widgets/CheckboxWidget';
154
154
 
155
- export const DatetimeWidget = loadable(() =>
156
- import('@plone/volto/components/manage/Widgets/DatetimeWidget'),
155
+ export const DatetimeWidget = loadable(
156
+ () => import('@plone/volto/components/manage/Widgets/DatetimeWidget'),
157
157
  );
158
- export const RecurrenceWidget = loadable(() =>
159
- import(
160
- '@plone/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget'
161
- ),
158
+ export const RecurrenceWidget = loadable(
159
+ () =>
160
+ import(
161
+ '@plone/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget'
162
+ ),
162
163
  );
163
164
 
164
165
  export { default as FileWidget } from '@plone/volto/components/manage/Widgets/FileWidget';
@@ -11,7 +11,7 @@ import { compose } from 'redux';
11
11
  import { keys, isEmpty } from 'lodash';
12
12
  import { defineMessages, injectIntl } from 'react-intl';
13
13
  import { Button, Grid, Menu } from 'semantic-ui-react';
14
- import { Portal } from 'react-portal';
14
+ import { createPortal } from 'react-dom';
15
15
  import { v4 as uuid } from 'uuid';
16
16
  import qs from 'query-string';
17
17
  import { toast } from 'react-toastify';
@@ -366,8 +366,8 @@ class Add extends Component {
366
366
  }}
367
367
  global
368
368
  />
369
- {this.state.isClient && (
370
- <Portal node={document.getElementById('toolbar')}>
369
+ {this.state.isClient &&
370
+ createPortal(
371
371
  <Toolbar
372
372
  pathname={this.props.pathname}
373
373
  hideDefaultViewButtons
@@ -400,14 +400,12 @@ class Add extends Component {
400
400
  </Button>
401
401
  </>
402
402
  }
403
- />
404
- </Portal>
405
- )}
406
- {visual && this.state.isClient && (
407
- <Portal node={document.getElementById('sidebar')}>
408
- <Sidebar />
409
- </Portal>
410
- )}
403
+ />,
404
+ document.getElementById('toolbar'),
405
+ )}
406
+ {visual &&
407
+ this.state.isClient &&
408
+ createPortal(<Sidebar />, document.getElementById('sidebar'))}
411
409
  </div>
412
410
  );
413
411
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import renderer from 'react-test-renderer';
2
+ import { render } from '@testing-library/react';
3
3
  import configureStore from 'redux-mock-store';
4
4
  import { Provider } from 'react-intl-redux';
5
5
  import config from '@plone/volto/registry';
@@ -16,9 +16,8 @@ beforeAll(() => {
16
16
  config.settings.loadables = {};
17
17
  });
18
18
 
19
- jest.mock('react-portal', () => ({
20
- Portal: jest.fn(() => <div id="Portal" />),
21
- }));
19
+ jest.mock('../Toolbar/Toolbar', () => jest.fn(() => <div id="Portal" />));
20
+
22
21
  jest.mock('../Form/Form', () => jest.fn(() => <div className="Form" />));
23
22
 
24
23
  describe('Add', () => {
@@ -39,13 +38,12 @@ describe('Add', () => {
39
38
  messages: {},
40
39
  },
41
40
  });
42
- const component = renderer.create(
41
+ const { container } = render(
43
42
  <Provider store={store}>
44
43
  <Add location={{ pathname: '/blog', search: { type: 'Document' } }} />
45
44
  </Provider>,
46
45
  );
47
- const json = component.toJSON();
48
- expect(json).toMatchSnapshot();
46
+ expect(container).toMatchSnapshot();
49
47
  });
50
48
 
51
49
  it('renders an add component', () => {
@@ -67,13 +65,13 @@ describe('Add', () => {
67
65
  messages: {},
68
66
  },
69
67
  });
70
- const component = renderer.create(
68
+ const { container } = render(
71
69
  <Provider store={store}>
72
70
  <Add location={{ pathname: '/blog', search: { type: 'Document' } }} />
73
71
  </Provider>,
74
72
  );
75
- const json = component.toJSON();
76
- expect(json).toMatchSnapshot();
73
+
74
+ expect(container).toMatchSnapshot();
77
75
  });
78
76
 
79
77
  it('renders an add component with schema', () => {
@@ -106,12 +104,12 @@ describe('Add', () => {
106
104
  messages: {},
107
105
  },
108
106
  });
109
- const component = renderer.create(
107
+ const { container } = render(
110
108
  <Provider store={store}>
111
109
  <Add location={{ pathname: '/blog', search: { type: 'Document' } }} />
112
110
  </Provider>,
113
111
  );
114
- const json = component.toJSON();
115
- expect(json).toMatchSnapshot();
112
+
113
+ expect(container).toMatchSnapshot();
116
114
  });
117
115
  });
@@ -8,7 +8,7 @@ import { Helmet } from '@plone/volto/helpers';
8
8
  import { connect } from 'react-redux';
9
9
  import { compose } from 'redux';
10
10
  import { Link } from 'react-router-dom';
11
- import { Portal } from 'react-portal';
11
+ import { createPortal } from 'react-dom';
12
12
  import {
13
13
  Button,
14
14
  Checkbox,
@@ -317,8 +317,8 @@ class Aliases extends Component {
317
317
  </Segment>
318
318
  </Form>
319
319
  </Segment.Group>
320
- {this.state.isClient && (
321
- <Portal node={document.getElementById('toolbar')}>
320
+ {this.state.isClient &&
321
+ createPortal(
322
322
  <Toolbar
323
323
  pathname={this.props.pathname}
324
324
  hideDefaultViewButtons
@@ -335,9 +335,9 @@ class Aliases extends Component {
335
335
  />
336
336
  </Link>
337
337
  }
338
- />
339
- </Portal>
340
- )}
338
+ />,
339
+ document.getElementById('toolbar'),
340
+ )}
341
341
  </Container>
342
342
  );
343
343
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import renderer from 'react-test-renderer';
2
+ import { render } from '@testing-library/react';
3
3
  import { Provider } from 'react-intl-redux';
4
4
  import configureMockStore from 'redux-mock-store';
5
5
  import thunk from 'redux-thunk';
@@ -9,9 +9,8 @@ import Aliases from './Aliases';
9
9
  const middlewares = [thunk];
10
10
  const mockStore = configureMockStore(middlewares);
11
11
 
12
- jest.mock('react-portal', () => ({
13
- Portal: jest.fn(() => <div id="Portal" />),
14
- }));
12
+ jest.mock('../Toolbar/Toolbar', () => jest.fn(() => <div id="Portal" />));
13
+
15
14
  jest.mock('../Toolbar/More', () => jest.fn(() => <div className="More" />));
16
15
 
17
16
  describe('Aliases', () => {
@@ -45,12 +44,13 @@ describe('Aliases', () => {
45
44
  messages: {},
46
45
  },
47
46
  });
48
- const component = renderer.create(
47
+ const { container } = render(
49
48
  <Provider store={store}>
50
49
  <Aliases location={{ pathname: '/blog/aliases' }} />
50
+ <div id="toolbar"></div>
51
51
  </Provider>,
52
52
  );
53
- const json = component.toJSON();
54
- expect(json).toMatchSnapshot();
53
+
54
+ expect(container).toMatchSnapshot();
55
55
  });
56
56
  });
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import '@testing-library/jest-dom/extend-expect';
3
2
  import { render, screen } from '@testing-library/react';
4
3
  import { Provider } from 'react-intl-redux';
5
4
  import configureStore from 'redux-mock-store';
@@ -7,7 +7,7 @@ import config from '@plone/volto/registry';
7
7
  import { Button, Ref } from 'semantic-ui-react';
8
8
  import { defineMessages, useIntl } from 'react-intl';
9
9
  import { usePopper } from 'react-popper';
10
- import { Portal } from 'react-portal';
10
+ import { createPortal } from 'react-dom';
11
11
 
12
12
  const messages = defineMessages({
13
13
  addBlock: {
@@ -115,8 +115,8 @@ const BlockChooserButton = (props) => {
115
115
  />
116
116
  </Ref>
117
117
  )}
118
- {addNewBlockOpened && (
119
- <Portal node={document.getElementById('body')}>
118
+ {addNewBlockOpened &&
119
+ createPortal(
120
120
  <div
121
121
  ref={setPopperElement}
122
122
  style={styles.popper}
@@ -148,9 +148,9 @@ const BlockChooserButton = (props) => {
148
148
  navRoot={navRoot}
149
149
  contentType={contentType}
150
150
  />
151
- </div>
152
- </Portal>
153
- )}
151
+ </div>,
152
+ document.body,
153
+ )}
154
154
  </>
155
155
  );
156
156
  };
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import '@testing-library/jest-dom/extend-expect';
3
2
  import { render } from '@testing-library/react';
4
3
  import BlockChooserSearch from './BlockChooserSearch';
5
4
  import { Provider } from 'react-intl-redux';
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import Settings from './Settings';
3
3
  import { render } from '@testing-library/react';
4
- import '@testing-library/jest-dom/extend-expect';
5
4
  import configureStore from 'redux-mock-store';
6
5
  import config from '@plone/volto/registry';
7
6
  import { Provider } from 'react-intl-redux';
@@ -5,7 +5,7 @@ import { BlockChooser, Icon } from '@plone/volto/components';
5
5
  import { useDetectClickOutside } from '@plone/volto/helpers';
6
6
  import addSVG from '@plone/volto/icons/add.svg';
7
7
  import { usePopper } from 'react-popper';
8
- import { Portal } from 'react-portal';
8
+ import { createPortal } from 'react-dom';
9
9
 
10
10
  const messages = defineMessages({
11
11
  addBlock: {
@@ -59,24 +59,25 @@ const NewBlockAddButton = (props) => {
59
59
  <Icon name={addSVG} className="circled" size="24px" />
60
60
  </Button>
61
61
  </Ref>
62
- {isOpenMenu ? (
63
- <Portal node={document.getElementById('body')}>
64
- <div
65
- ref={setPopperElement}
66
- style={styles.popper}
67
- {...attributes.popper}
68
- className="container-chooser-wrapper"
69
- >
70
- <BlockChooser
71
- onMutateBlock={onMutateBlock}
72
- currentBlock={block}
73
- showRestricted
74
- blocksConfig={blocksConfig}
75
- ref={blockChooserRef}
76
- />
77
- </div>
78
- </Portal>
79
- ) : null}
62
+ {isOpenMenu
63
+ ? createPortal(
64
+ <div
65
+ ref={setPopperElement}
66
+ style={styles.popper}
67
+ {...attributes.popper}
68
+ className="container-chooser-wrapper"
69
+ >
70
+ <BlockChooser
71
+ onMutateBlock={onMutateBlock}
72
+ currentBlock={block}
73
+ showRestricted
74
+ blocksConfig={blocksConfig}
75
+ ref={blockChooserRef}
76
+ />
77
+ </div>,
78
+ document.body,
79
+ )
80
+ : null}
80
81
  </>
81
82
  );
82
83
  };
@@ -283,19 +283,19 @@ class Edit extends Component {
283
283
  data.image_scales
284
284
  ? undefined
285
285
  : isInternalURL(data.url)
286
- ? // Backwards compat in the case that the block is storing the full server URL
287
- (() => {
288
- if (data.size === 'l')
286
+ ? // Backwards compat in the case that the block is storing the full server URL
287
+ (() => {
288
+ if (data.size === 'l')
289
+ return `${flattenToAppURL(data.url)}/@@images/image`;
290
+ if (data.size === 'm')
291
+ return `${flattenToAppURL(
292
+ data.url,
293
+ )}/@@images/image/preview`;
294
+ if (data.size === 's')
295
+ return `${flattenToAppURL(data.url)}/@@images/image/mini`;
289
296
  return `${flattenToAppURL(data.url)}/@@images/image`;
290
- if (data.size === 'm')
291
- return `${flattenToAppURL(
292
- data.url,
293
- )}/@@images/image/preview`;
294
- if (data.size === 's')
295
- return `${flattenToAppURL(data.url)}/@@images/image/mini`;
296
- return `${flattenToAppURL(data.url)}/@@images/image`;
297
- })()
298
- : data.url
297
+ })()
298
+ : data.url
299
299
  }
300
300
  sizes={config.blocks.blocksConfig.image.getSizes(data)}
301
301
  alt={data.alt || ''}
@@ -61,9 +61,9 @@ const ImageSidebar = (props) => {
61
61
  data.image_scales
62
62
  ? undefined
63
63
  : isInternalURL(data.url)
64
- ? // Backwards compat in the case that the block is storing the full server URL
65
- `${flattenToAppURL(data.url)}/@@images/image/preview`
66
- : data.url
64
+ ? // Backwards compat in the case that the block is storing the full server URL
65
+ `${flattenToAppURL(data.url)}/@@images/image/preview`
66
+ : data.url
67
67
  }
68
68
  sizes="188px"
69
69
  alt={intl.formatMessage(messages.preview)}
@@ -51,21 +51,21 @@ export const View = ({ className, data, detached, properties, style }) => {
51
51
  data.image_scales
52
52
  ? undefined
53
53
  : isInternalURL(data.url)
54
- ? // Backwards compat in the case that the block is storing the full server URL
55
- (() => {
56
- if (data.size === 'l')
54
+ ? // Backwards compat in the case that the block is storing the full server URL
55
+ (() => {
56
+ if (data.size === 'l')
57
+ return `${flattenToAppURL(data.url)}/@@images/image`;
58
+ if (data.size === 'm')
59
+ return `${flattenToAppURL(
60
+ data.url,
61
+ )}/@@images/image/preview`;
62
+ if (data.size === 's')
63
+ return `${flattenToAppURL(
64
+ data.url,
65
+ )}/@@images/image/mini`;
57
66
  return `${flattenToAppURL(data.url)}/@@images/image`;
58
- if (data.size === 'm')
59
- return `${flattenToAppURL(
60
- data.url,
61
- )}/@@images/image/preview`;
62
- if (data.size === 's')
63
- return `${flattenToAppURL(
64
- data.url,
65
- )}/@@images/image/mini`;
66
- return `${flattenToAppURL(data.url)}/@@images/image`;
67
- })()
68
- : data.url
67
+ })()
68
+ : data.url
69
69
  }
70
70
  sizes={config.blocks.blocksConfig.image.getSizes(data)}
71
71
  alt={data.alt || ''}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import '@testing-library/jest-dom/extend-expect';
3
2
  import { render } from '@testing-library/react';
4
3
  import { MemoryRouter } from 'react-router-dom';
5
4
  import { Provider } from 'react-intl-redux';
@@ -67,19 +67,19 @@ export default function withQuerystringResults(WrappedComponent) {
67
67
  const totalPages = showAsFolderListing
68
68
  ? Math.ceil(content.items_total / b_size)
69
69
  : showAsQueryListing
70
- ? Math.ceil(querystringResults[subrequestID].total / b_size)
71
- : 0;
70
+ ? Math.ceil(querystringResults[subrequestID].total / b_size)
71
+ : 0;
72
72
 
73
73
  const prevBatch = showAsFolderListing
74
74
  ? content.batching?.prev
75
75
  : showAsQueryListing
76
- ? querystringResults[subrequestID].batching?.prev
77
- : null;
76
+ ? querystringResults[subrequestID].batching?.prev
77
+ : null;
78
78
  const nextBatch = showAsFolderListing
79
79
  ? content.batching?.next
80
80
  : showAsQueryListing
81
- ? querystringResults[subrequestID].batching?.next
82
- : null;
81
+ ? querystringResults[subrequestID].batching?.next
82
+ : null;
83
83
 
84
84
  const isImageGallery =
85
85
  (!data.variation && data.template === 'imageGallery') ||
@@ -48,8 +48,8 @@ export const customSelectStyles = {
48
48
  color: state.isSelected
49
49
  ? '#007bc1'
50
50
  : state.isFocused
51
- ? '#4a4a4a'
52
- : 'inherit',
51
+ ? '#4a4a4a'
52
+ : 'inherit',
53
53
  ':active': {
54
54
  backgroundColor: null,
55
55
  },