1 | import _pt from "prop-types";
|
2 |
|
3 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
4 |
|
5 | import React from 'react';
|
6 | export default function withIcon(name) {
|
7 | return WrappedComponent => {
|
8 | var _class, _temp;
|
9 |
|
10 | return _temp = _class = class Icon extends React.Component {
|
11 | render() {
|
12 | const {
|
13 | accessibilityLabel,
|
14 | color,
|
15 | decorative,
|
16 | flip,
|
17 | flipVertical,
|
18 | inline,
|
19 | size
|
20 | } = this.props;
|
21 | const props = {
|
22 | focusable: 'false',
|
23 | role: decorative ? 'presentation' : 'img',
|
24 | style: {
|
25 | height: size,
|
26 | width: size,
|
27 | display: inline ? 'inline' : 'block',
|
28 | fill: color,
|
29 | transform: flip || flipVertical ? "scale(" + (flip ? -1 : 1) + ", " + (flipVertical ? -1 : 1) + ")" : 'scale(1)',
|
30 |
|
31 | transition: 'transform 300ms ease-out'
|
32 | }
|
33 | };
|
34 |
|
35 | if ("production" !== process.env.NODE_ENV) {
|
36 | if (!accessibilityLabel && !decorative) {
|
37 |
|
38 | console.error('Missing `accessibilityLabel` or `decorative` for accessibility.');
|
39 | }
|
40 |
|
41 | if (accessibilityLabel && decorative) {
|
42 |
|
43 | console.error('Only one of `accessibilityLabel` or `decorative` may be used.');
|
44 | }
|
45 | }
|
46 |
|
47 | if (decorative) {
|
48 | props['aria-hidden'] = true;
|
49 | }
|
50 |
|
51 | if (accessibilityLabel) {
|
52 | props['aria-label'] = accessibilityLabel;
|
53 | }
|
54 |
|
55 | return React.createElement(WrappedComponent, props);
|
56 | }
|
57 |
|
58 | }, _defineProperty(_class, "propTypes", {
|
59 | accessibilityLabel: _pt.string,
|
60 | decorative: _pt.bool,
|
61 | flip: _pt.bool,
|
62 | flipVertical: _pt.bool,
|
63 | size: _pt.oneOfType([_pt.number, _pt.string]),
|
64 | color: _pt.string,
|
65 | inline: _pt.bool
|
66 | }), _defineProperty(_class, "displayName", name), _defineProperty(_class, "WrappedComponent", WrappedComponent), _defineProperty(_class, "defaultProps", {
|
67 | color: 'currentColor',
|
68 | flip: false,
|
69 | flipVertical: false,
|
70 | inline: false,
|
71 | size: '1em'
|
72 | }), _temp;
|
73 | };
|
74 | } |
\ | No newline at end of file |