mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
Fix aria label error on the console (#18370)
* fix aria label bug * improve solution * improve solution * improve solution * update snapshot
This commit is contained in:
parent
da06901f79
commit
05f0006684
@ -296,7 +296,7 @@ exports[`Account Menu Render Content should not render keyring label if keyring
|
|||||||
class="account-menu__item__icon"
|
class="account-menu__item__icon"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
arialabel="Settings"
|
aria-label="Settings"
|
||||||
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
class="box mm-icon mm-icon--size-md box--display-inline-block box--flex-direction-row box--color-icon-alternative"
|
||||||
style="mask-image: url('./images/icons/setting.svg');"
|
style="mask-image: url('./images/icons/setting.svg');"
|
||||||
/>
|
/>
|
||||||
|
@ -222,6 +222,7 @@ const Box = React.forwardRef(function Box(
|
|||||||
className,
|
className,
|
||||||
backgroundColor,
|
backgroundColor,
|
||||||
color,
|
color,
|
||||||
|
ariaLabel,
|
||||||
as = 'div',
|
as = 'div',
|
||||||
...props
|
...props
|
||||||
},
|
},
|
||||||
@ -300,13 +301,31 @@ const Box = React.forwardRef(function Box(
|
|||||||
return children(boxClassName);
|
return children(boxClassName);
|
||||||
}
|
}
|
||||||
const Component = as;
|
const Component = as;
|
||||||
|
|
||||||
|
const ariaLabelProp = {};
|
||||||
|
if (isCustomComponent(Component)) {
|
||||||
|
ariaLabelProp.ariaLabel = ariaLabel;
|
||||||
|
} else {
|
||||||
|
ariaLabelProp['aria-label'] = ariaLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props['aria-label']) {
|
||||||
|
ariaLabelProp['aria-label'] = props['aria-label'];
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Component className={boxClassName} ref={ref} {...props}>
|
<Component className={boxClassName} ref={ref} {...props} {...ariaLabelProp}>
|
||||||
{children}
|
{children}
|
||||||
</Component>
|
</Component>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Both class or functional components have type function.
|
||||||
|
// Built-in HTML elements (div, span, etc.) have type string.
|
||||||
|
function isCustomComponent(element) {
|
||||||
|
return typeof element.type === 'function';
|
||||||
|
}
|
||||||
|
|
||||||
Box.propTypes = {
|
Box.propTypes = {
|
||||||
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
|
||||||
flexDirection: PropTypes.oneOfType([
|
flexDirection: PropTypes.oneOfType([
|
||||||
@ -372,6 +391,8 @@ Box.propTypes = {
|
|||||||
* ./ui/helpers/constants/design-system.js
|
* ./ui/helpers/constants/design-system.js
|
||||||
*/
|
*/
|
||||||
color: MultipleTextColors,
|
color: MultipleTextColors,
|
||||||
|
ariaLabel: PropTypes.string,
|
||||||
|
'aria-label': PropTypes.string,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Box;
|
export default Box;
|
||||||
|
Loading…
Reference in New Issue
Block a user