@@ -3,17 +3,33 @@ import { isNumeric, kebabCase, replaceSpaces } from './util'
33import stringToObjectStyle from './stringToObjectStyle'
44import { ATTRIBUTE_MAPPING , ELEMENT_ATTRIBUTE_MAPPING } from './mappings'
55
6+ function convertAriaAttribute ( kebabKey ) {
7+ const [ aria , ...parts ] = kebabKey . split ( '-' )
8+ return `${ aria } -${ parts . join ( '' ) . toLowerCase ( ) } `
9+ }
10+
611function getKey ( key , value , node ) {
7- const kebabKey = kebabCase ( key )
8- if ( kebabKey . startsWith ( 'aria-' ) || kebabKey . startsWith ( 'data-' ) ) {
9- return t . jsxIdentifier ( kebabKey )
10- }
1112 const lowerCaseKey = key . toLowerCase ( )
1213 const mappedElementAttribute =
1314 ELEMENT_ATTRIBUTE_MAPPING [ node . name ] &&
1415 ELEMENT_ATTRIBUTE_MAPPING [ node . name ] [ lowerCaseKey ]
1516 const mappedAttribute = ATTRIBUTE_MAPPING [ lowerCaseKey ]
16- return t . jsxIdentifier ( mappedElementAttribute || mappedAttribute || key )
17+
18+ if ( mappedElementAttribute || mappedAttribute ) {
19+ return t . jsxIdentifier ( mappedElementAttribute || mappedAttribute )
20+ }
21+
22+ const kebabKey = kebabCase ( key )
23+
24+ if ( kebabKey . startsWith ( 'aria-' ) ) {
25+ return t . jsxIdentifier ( convertAriaAttribute ( kebabKey ) )
26+ }
27+
28+ if ( kebabKey . startsWith ( 'data-' ) ) {
29+ return t . jsxIdentifier ( kebabKey )
30+ }
31+
32+ return t . jsxIdentifier ( key )
1733}
1834
1935function getValue ( key , value ) {
0 commit comments