Passed
Push — dependabot/npm_and_yarn/dev/st... ( 917c39...79f3f4 )
by
unknown
12:32 queued 07:14
created

resources/assets/js/components/Icon.tsx   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 49
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 36
mnd 1
bc 1
fnc 0
dl 0
loc 49
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
import * as React from "react";
2
import { useIntl, defineMessages } from "react-intl";
3
4
interface IconProps {
5
  icon: string;
6
  accessibleText: string;
7
  sematicIcon: boolean;
8
}
9
10
const Icon: React.FunctionComponent<IconProps> = ({
11
  icon,
12
  accessibleText,
13
  sematicIcon,
14
}) => {
15
  const intl = useIntl();
16
17
  const iconMessages = defineMessages({
18
    accessibleText: {
19
      id: "icon.accessibleText",
20
      defaultMessage: "{accessibleText}",
21
      description: "Accessible text for icon.",
22
      values: {
23
        accessibleText,
24
      },
25
    },
26
  });
27
28
  return (
29
    <>
30
      {sematicIcon ? (
31
        <>
32
          <i
33
            aria-hidden="true"
34
            className={icon}
35
            title={intl.formatMessage(iconMessages.accessibleText)}
36
          />
37
          <span data-c-visibility="invisible">
38
            {intl.formatMessage(iconMessages.accessibleText)}
39
          </span>
40
        </>
41
      ) : (
42
        <i className={icon} />
43
      )}
44
    </>
45
  );
46
};
47
48
export default Icon;
49