@plone/volto 18.0.0-alpha.45 → 18.0.0-alpha.46

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.
package/.eslintrc CHANGED
@@ -6,29 +6,30 @@
6
6
  "browser": true,
7
7
  "node": true,
8
8
  "mocha": true,
9
- "jasmine": true
9
+ "jasmine": true,
10
10
  },
11
11
  "parser": "@babel/eslint-parser",
12
12
  "parserOptions": {
13
13
  "ecmaVersion": 6,
14
14
  "sourceType": "module",
15
15
  "ecmaFeatures": {
16
- "legacyDecorators": true
17
- }
16
+ "legacyDecorators": true,
17
+ },
18
18
  },
19
19
  "rules": {
20
20
  "import/no-unresolved": 1,
21
+ "react/jsx-key": [2, { "checkFragmentShorthand": true }],
21
22
  "no-alert": 1,
22
23
  "no-console": 1,
23
24
  "no-debugger": 1,
24
25
  "prettier/prettier": [
25
26
  "error",
26
- { "trailingComma": "all", "singleQuote": true }
27
+ { "trailingComma": "all", "singleQuote": true },
27
28
  ],
28
29
  "react-hooks/rules-of-hooks": "error",
29
30
  "react-hooks/exhaustive-deps": "warn",
30
31
  "react/react-in-jsx-scope": "off",
31
- "jsx-a11y/label-has-associated-control": "off"
32
+ "jsx-a11y/label-has-associated-control": "off",
32
33
  },
33
34
  "settings": {
34
35
  "import/resolver": {
@@ -39,18 +40,18 @@
39
40
  ["@plone/registry", "../registry/src"],
40
41
  ["@plone/types", "../types"],
41
42
  ["@package", "./src"],
42
- ["@root", "./src"]
43
+ ["@root", "./src"],
43
44
  ],
44
- "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"]
45
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"],
45
46
  },
46
47
  "babel-plugin-root-import": {
47
- "rootPathSuffix": "src"
48
- }
48
+ "rootPathSuffix": "src",
49
+ },
49
50
  },
50
51
  "import/core-modules": ["load-volto-addons"],
51
52
  "react": {
52
- "version": "detect"
53
- }
53
+ "version": "detect",
54
+ },
54
55
  },
55
56
  "overrides": [
56
57
  {
@@ -60,17 +61,14 @@
60
61
  // Re-add it if at some point, we stop relying on it
61
62
  "extends": ["react-app", "prettier", "plugin:jsx-a11y/recommended"],
62
63
  "plugins": ["prettier", "react-hooks", "jsx-a11y"],
63
- "parser": "@typescript-eslint/parser"
64
+ "parser": "@typescript-eslint/parser",
64
65
  },
65
66
  {
66
- "files": [
67
- "**/*.stories.js",
68
- "**/*.stories.jsx"
69
- ],
67
+ "files": ["**/*.stories.js", "**/*.stories.jsx"],
70
68
  "rules": {
71
- "import/no-anonymous-default-export": "off"
72
- }
73
- }
69
+ "import/no-anonymous-default-export": "off",
70
+ },
71
+ },
74
72
  ],
75
73
  "globals": {
76
74
  "root": true,
@@ -86,6 +84,6 @@
86
84
  "Cypress": true,
87
85
  "jest": true,
88
86
  "socket": true,
89
- "webpackIsomorphicTools": true
90
- }
87
+ "webpackIsomorphicTools": true,
88
+ },
91
89
  }
package/CHANGELOG.md CHANGED
@@ -17,6 +17,25 @@ myst:
17
17
 
18
18
  <!-- towncrier release notes start -->
19
19
 
20
+ ## 18.0.0-alpha.46 (2024-10-10)
21
+
22
+ ### Breaking
23
+
24
+ - Added `react/jsx-key` rule for ESlint to detect missing key property in iterators. @sneridagh [#6387](https://github.com/plone/volto/issues/6387)
25
+
26
+ ### Bugfix
27
+
28
+ - Revert "Fix block chooser search is not focusable when clicked on add button" #5867 @sneridagh
29
+ It was causing a regression described in #6389 [#6390](https://github.com/plone/volto/issues/6390)
30
+
31
+ ### Internal
32
+
33
+ - Added missing improvement to the `build-deps` Makefile command. @sneridagh [#6383](https://github.com/plone/volto/issues/6383)
34
+
35
+ ### Documentation
36
+
37
+ - Add reference to Translate Volto in the main documentation. @stevepiercy [#6386](https://github.com/plone/volto/issues/6386)
38
+
20
39
  ## 18.0.0-alpha.45 (2024-10-08)
21
40
 
22
41
  ### Bugfix
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  }
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "18.0.0-alpha.45",
12
+ "version": "18.0.0-alpha.46",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "git@github.com:plone/volto.git"
@@ -235,9 +235,9 @@
235
235
  "url": "^0.11.3",
236
236
  "use-deep-compare-effect": "1.8.1",
237
237
  "uuid": "^8.3.2",
238
+ "@plone/registry": "1.8.0",
238
239
  "@plone/scripts": "3.6.2",
239
- "@plone/volto-slate": "18.0.0-alpha.19",
240
- "@plone/registry": "1.8.0"
240
+ "@plone/volto-slate": "18.0.0-alpha.19"
241
241
  },
242
242
  "devDependencies": {
243
243
  "@babel/core": "^7.0.0",
@@ -357,8 +357,8 @@
357
357
  "webpack-dev-server": "4.11.1",
358
358
  "webpack-node-externals": "3.0.0",
359
359
  "why": "0.6.2",
360
- "@plone/volto-coresandbox": "1.0.0",
361
- "@plone/types": "1.0.0-alpha.20"
360
+ "@plone/types": "1.0.0-alpha.20",
361
+ "@plone/volto-coresandbox": "1.0.0"
362
362
  },
363
363
  "volta": {
364
364
  "node": "20.9.0"
@@ -35,7 +35,6 @@ const BlockChooserSearch = ({ onChange, searchValue }) => {
35
35
  placeholder={intl.formatMessage(messages.search)}
36
36
  title={intl.formatMessage(messages.search)}
37
37
  ref={searchInput}
38
- autoFocus
39
38
  />
40
39
  {searchValue && (
41
40
  <Button
@@ -1397,6 +1397,7 @@ class Contents extends Component {
1397
1397
  {breach.targets
1398
1398
  .map((target) => (
1399
1399
  <Link
1400
+ key={target['@id']}
1400
1401
  to={flattenToAppURL(
1401
1402
  target['@id'],
1402
1403
  )}
@@ -1467,6 +1468,7 @@ class Contents extends Component {
1467
1468
  {breach.targets
1468
1469
  .map((target) => (
1469
1470
  <Link
1471
+ key={target['@id']}
1470
1472
  to={flattenToAppURL(target['@id'])}
1471
1473
  title="Navigate to this item"
1472
1474
  >
@@ -150,6 +150,7 @@ const DatabaseInformation = () => {
150
150
  </Table.Row>
151
151
  </Table.Header>
152
152
  {databaseInformation.cache_detail_length.map((item) => (
153
+ // eslint-disable-next-line react/jsx-key
153
154
  <Table.Row>
154
155
  <Table.Cell>{item.connection}</Table.Cell>
155
156
  <Table.Cell>{item.ngsize}</Table.Cell>
@@ -251,6 +251,7 @@ class UpgradeControlPanel extends Component {
251
251
  <Container>
252
252
  {map(upgradeSteps, (upgradeGroup) => [
253
253
  <UpgradeStep
254
+ key={upgradeGroup[0]}
254
255
  title={upgradeGroup[0]}
255
256
  steps={upgradeGroup[1]}
256
257
  />,
@@ -188,18 +188,20 @@ const UserGroupMembershipMatrix = ({ many_users, many_groups }) => {
188
188
  </Form>
189
189
  {(!many_groups || query_group_filter.length > 1) &&
190
190
  filter_options?.map((filter_option) => (
191
- <Form.Field>
192
- <Checkbox
193
- name={`filter_option_${filter_option.value}`}
194
- key={filter_option.value}
195
- title={filter_option.label}
196
- label={filter_option.label}
197
- defaultChecked={false}
198
- onChange={(event, { checked }) => {
199
- onSelectOptionHandler(filter_option, checked);
200
- }}
201
- />
202
- </Form.Field>
191
+ <React.Fragment key={filter_option.value}>
192
+ <Form.Field>
193
+ <Checkbox
194
+ name={`filter_option_${filter_option.value}`}
195
+ key={filter_option.value}
196
+ title={filter_option.label}
197
+ label={filter_option.label}
198
+ defaultChecked={false}
199
+ onChange={(event, { checked }) => {
200
+ onSelectOptionHandler(filter_option, checked);
201
+ }}
202
+ />
203
+ </Form.Field>
204
+ </React.Fragment>
203
205
  ))}
204
206
  </div>
205
207
  <UserGroupMembershipListing
@@ -57,8 +57,8 @@ describe('<Pluggable />', () => {
57
57
  </header>
58
58
  <div className="pastanaga-menu-list">
59
59
  <ul>
60
- {pluggables.map((p) => (
61
- <>{p()}</>
60
+ {pluggables.map((p, index) => (
61
+ <React.Fragment key={index}>{p()}</React.Fragment>
62
62
  ))}
63
63
  </ul>
64
64
  </div>
@@ -92,7 +92,7 @@ describe('<Pluggable />', () => {
92
92
  <div className="pastanaga-menu-list">
93
93
  <ul>
94
94
  {pluggables.map((p) => (
95
- <>{p()}</>
95
+ <React.Fragment key={p}>{p()}</React.Fragment>
96
96
  ))}
97
97
  </ul>
98
98
  </div>
@@ -51,6 +51,7 @@ const ObjectBrowserNav = ({
51
51
  currentSearchResults.items.map((item) =>
52
52
  view === 'icons' ? (
53
53
  <li
54
+ key={item['@id']}
54
55
  className="image-wrapper"
55
56
  title={`${item['@id']} (${item['@type']})`}
56
57
  >
@@ -311,8 +311,8 @@ const More = (props) => {
311
311
  </header>
312
312
  <div className="pastanaga-menu-list">
313
313
  <ul>
314
- {pluggables.map((p) => (
315
- <>{p()}</>
314
+ {pluggables.map((p, index) => (
315
+ <React.Fragment key={index}>{p()}</React.Fragment>
316
316
  ))}
317
317
  </ul>
318
318
  </div>
@@ -43,6 +43,7 @@ const iconElements = Object.keys(icons).map((iconName) => {
43
43
  const icon = icons[iconName];
44
44
  return (
45
45
  <center
46
+ key={icons[iconName]}
46
47
  style={{
47
48
  float: 'left',
48
49
  width: '150px',
@@ -5,14 +5,14 @@ const ArrayWidget = ({ value, children, className }) =>
5
5
  value ? (
6
6
  <span className={cx(className, 'array', 'widget')}>
7
7
  {value.map((item, key) => (
8
- <>
8
+ <React.Fragment key={item.token}>
9
9
  {key ? ', ' : ''}
10
10
  <span key={item.token || item.title || item}>
11
11
  {children
12
12
  ? children(item.title || item.token || item)
13
13
  : item.title || item.token || item}
14
14
  </span>
15
- </>
15
+ </React.Fragment>
16
16
  ))}
17
17
  </span>
18
18
  ) : (
@@ -158,6 +158,7 @@ class Html extends Component {
158
158
  }}
159
159
  ></script>
160
160
  {extractor.getStyleElements().map((elem) => (
161
+ // eslint-disable-next-line react/jsx-key
161
162
  <noscript>
162
163
  {React.cloneElement(elem, {
163
164
  rel: 'stylesheet',