Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Commit

Permalink
Refactor Label so we don't need to check Symbol
Browse files Browse the repository at this point in the history
  • Loading branch information
Aljullu committed Aug 23, 2019
1 parent 0751dbf commit d398806
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions assets/js/base/components/label/index.js
Expand Up @@ -6,24 +6,11 @@ import elementType from 'prop-types-elementtype';
import { Fragment } from 'react';
import classNames from 'classnames';

const Label = ( { label, screenReaderLabel, wrapperElement: Wrapper, wrapperProps } ) => {
if ( label && screenReaderLabel && label !== screenReaderLabel ) {
return (
<Wrapper { ...wrapperProps }>
<span aria-hidden>
{ label }
</span>
<span className="screen-reader-text">
{ screenReaderLabel }
</span>
</Wrapper>
);
}
const Label = ( { label, screenReaderLabel, wrapperElement, wrapperProps } ) => {
let Wrapper;

if ( ! label && screenReaderLabel ) {
if ( typeof Wrapper === 'symbol' && Symbol.keyFor( Wrapper ) === 'react.fragment' ) {
Wrapper = 'span';
}
Wrapper = wrapperElement || 'span';
wrapperProps = {
...wrapperProps,
className: classNames( wrapperProps.className, 'screen-reader-text' ),
Expand All @@ -36,6 +23,21 @@ const Label = ( { label, screenReaderLabel, wrapperElement: Wrapper, wrapperProp
);
}

Wrapper = wrapperElement || Fragment;

if ( label && screenReaderLabel && label !== screenReaderLabel ) {
return (
<Wrapper { ...wrapperProps }>
<span aria-hidden>
{ label }
</span>
<span className="screen-reader-text">
{ screenReaderLabel }
</span>
</Wrapper>
);
}

return (
<Wrapper { ...wrapperProps }>
{ label }
Expand All @@ -54,7 +56,6 @@ Label.propTypes = {
};

Label.defaultProps = {
wrapperElement: Fragment,
wrapperProps: {},
};

Expand Down

0 comments on commit d398806

Please sign in to comment.