Skip to content

Commit b394c00

Browse files
committed
popoverTarget -> popoverTargetElement
1 parent 68a37c6 commit b394c00

File tree

6 files changed

+57
-4
lines changed

6 files changed

+57
-4
lines changed

fixtures/attribute-behavior/AttributeTableSnapshot.md

+28-3
Original file line numberDiff line numberDiff line change
@@ -8476,7 +8476,7 @@
84768476
## `popoverTarget` (on `<button>` inside `<div>`)
84778477
| Test Case | Flags | Result |
84788478
| --- | --- | --- |
8479-
| `popoverTarget=(string)`| (initial)| `<null>` |
8479+
| `popoverTarget=(string)`| (initial, warning)| `<null>` |
84808480
| `popoverTarget=(empty string)`| (initial)| `<null>` |
84818481
| `popoverTarget=(array with string)`| (initial)| `<null>` |
84828482
| `popoverTarget=(empty array)`| (initial)| `<null>` |
@@ -8498,6 +8498,31 @@
84988498
| `popoverTarget=(null)`| (initial)| `<null>` |
84998499
| `popoverTarget=(undefined)`| (initial)| `<null>` |
85008500

8501+
## `popoverTargetElement` (on `<button>` inside `<div>`)
8502+
| Test Case | Flags | Result |
8503+
| --- | --- | --- |
8504+
| `popoverTargetElement=(string)`| (initial)| `<null>` |
8505+
| `popoverTargetElement=(empty string)`| (initial)| `<null>` |
8506+
| `popoverTargetElement=(array with string)`| (initial)| `<null>` |
8507+
| `popoverTargetElement=(empty array)`| (initial)| `<null>` |
8508+
| `popoverTargetElement=(object)`| (initial)| `<null>` |
8509+
| `popoverTargetElement=(numeric string)`| (initial)| `<null>` |
8510+
| `popoverTargetElement=(-1)`| (initial)| `<null>` |
8511+
| `popoverTargetElement=(0)`| (initial)| `<null>` |
8512+
| `popoverTargetElement=(integer)`| (initial)| `<null>` |
8513+
| `popoverTargetElement=(NaN)`| (initial, warning)| `<null>` |
8514+
| `popoverTargetElement=(float)`| (initial)| `<null>` |
8515+
| `popoverTarget=(true)`| (initial, warning)| `<null>` |
8516+
| `popoverTargetElement=(false)`| (initial, warning)| `<null>` |
8517+
| `popoverTargetElement=(string 'true')`| (initial)| `<null>` |
8518+
| `popoverTargetElement=(string 'false')`| (initial)| `<null>` |
8519+
| `popoverTargetElement=(string 'on')`| (initial)| `<null>` |
8520+
| `popoverTargetElement=(string 'off')`| (initial)| `<null>` |
8521+
| `popoverTargetElement=(symbol)`| (initial, warning)| `<null>` |
8522+
| `popoverTargetElement=(function)`| (initial, warning)| `<null>` |
8523+
| `popoverTargetElement=(null)`| (initial)| `<null>` |
8524+
| `popoverTargetElement=(undefined)`| (initial)| `<null>` |
8525+
85018526
## `popoverTargetAction` (on `<button>` inside `<div>`)
85028527
| Test Case | Flags | Result |
85038528
| --- | --- | --- |
@@ -8512,8 +8537,8 @@
85128537
| `popoverTargetAction=(integer)`| (initial)| `"toggle"` |
85138538
| `popoverTargetAction=(NaN)`| (initial, warning)| `"toggle"` |
85148539
| `popoverTargetAction=(float)`| (initial)| `"toggle"` |
8515-
| `popoverTargetAction=(true)`| (initial, warning)| `"toggle"` |
8516-
| `popoverTargetAction=(false)`| (initial, warning)| `"toggle"` |
8540+
| `popoverTargetAction=(true)`| (initial)| `"toggle"` |
8541+
| `popoverTargetAction=(false)`| (initial)| `"toggle"` |
85178542
| `popoverTargetAction=(string 'true')`| (initial)| `"toggle"` |
85188543
| `popoverTargetAction=(string 'false')`| (initial)| `"toggle"` |
85198544
| `popoverTargetAction=(string 'on')`| (initial)| `"toggle"` |

fixtures/attribute-behavior/src/attributes.js

+5
Original file line numberDiff line numberDiff line change
@@ -1453,6 +1453,11 @@ const attributes = [
14531453
read: element => element.popoverTargetElement,
14541454
tagName: 'button',
14551455
},
1456+
{
1457+
name: 'popoverTargetElement',
1458+
read: element => element.popoverTargetElement,
1459+
tagName: 'button',
1460+
},
14561461
{name: 'popoverTargetAction', overrideStringValue: 'show', tagName: 'button'},
14571462
{
14581463
name: 'poster',

packages/react-dom-bindings/src/client/ReactDOMComponent.js

+2
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,8 @@ function getPropNameFromAttributeName(attrName: string): string {
18151815
return 'className';
18161816
case 'for':
18171817
return 'htmlFor';
1818+
case 'popopverTarget':
1819+
return 'popopverTargetElement';
18181820
// TODO: The rest of the aliases.
18191821
default:
18201822
return attrName;

packages/react-dom-bindings/src/shared/getAttributeAlias.js

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
const aliases = new Map([
1111
['acceptCharset', 'accept-charset'],
1212
['htmlFor', 'for'],
13+
['popoverTargetElement', 'popoverTarget'],
1314
['httpEquiv', 'http-equiv'],
1415
// HTML and SVG attributes, but the SVG attribute is case sensitive.],
1516
['crossOrigin', 'crossorigin'],

packages/react-dom-bindings/src/shared/possibleStandardNames.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,9 @@ const possibleStandardNames = {
345345
pointsaty: 'pointsAtY',
346346
pointsatz: 'pointsAtZ',
347347
popover: 'popover',
348-
popovertarget: 'popoverTarget',
348+
popovertarget: 'popoverTargetElement',
349349
popovertargetaction: 'popoverTargetAction',
350+
popovertargetelement: 'popoverTargetElement',
350351
prefix: 'prefix',
351352
preservealpha: 'preserveAlpha',
352353
preserveaspectratio: 'preserveAspectRatio',

packages/react-dom/src/__tests__/ReactDOMComponent-test.js

+19
Original file line numberDiff line numberDiff line change
@@ -2926,6 +2926,18 @@ describe('ReactDOMComponent', () => {
29262926
}).toErrorDev(
29272927
'Warning: Invalid DOM property `autofocus`. Did you mean `autoFocus`?\n in input',
29282928
);
2929+
2930+
await expect(async () => {
2931+
const container = document.createElement('div');
2932+
const root = ReactDOMClient.createRoot(container);
2933+
await act(() => {
2934+
root.render(
2935+
React.createElement('button', {popoverTarget: 'some-element'}),
2936+
);
2937+
});
2938+
}).toErrorDev(
2939+
'Warning: Invalid DOM property `popoverTarget`. Did you mean `popoverTargetElement`?\n in button',
2940+
);
29292941
});
29302942

29312943
it('should suggest property name if available (ssr)', () => {
@@ -2943,6 +2955,13 @@ describe('ReactDOMComponent', () => {
29432955
).toErrorDev(
29442956
'Warning: Invalid DOM property `autofocus`. Did you mean `autoFocus`?\n in input',
29452957
);
2958+
expect(() =>
2959+
ReactDOMServer.renderToString(
2960+
React.createElement('button', {popoverTarget: 'some-element'}),
2961+
),
2962+
).toErrorDev(
2963+
'Warning: Invalid DOM property `popoverTarget`. Did you mean `popoverTargetElement`?\n in button',
2964+
);
29462965
});
29472966
});
29482967

0 commit comments

Comments
 (0)