@patternfly/react-icons
Version:
PatternFly 4 Icons as React Components
26 lines • 1.31 kB
JavaScript
import { __rest } from "tslib";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Component } from 'react';
let currentId = 0;
/**
* Factory to create Icon class components for consumers
*/
export function createIcon({ name, xOffset = 0, yOffset = 0, width, height, svgPath }) {
var _a;
return _a = class SVGIcon extends Component {
constructor() {
super(...arguments);
this.id = `icon-title-${currentId++}`;
}
render() {
const _b = this.props, { title, className } = _b, props = __rest(_b, ["title", "className"]);
const classes = className ? `pf-v6-svg ${className}` : 'pf-v6-svg';
const hasTitle = Boolean(title);
const viewBox = [xOffset, yOffset, width, height].join(' ');
return (_jsxs("svg", Object.assign({ className: classes, viewBox: viewBox, fill: "currentColor", "aria-labelledby": hasTitle ? this.id : null, "aria-hidden": hasTitle ? null : true, role: "img", width: "1em", height: "1em" }, props, { children: [hasTitle && _jsx("title", { id: this.id, children: title }), _jsx("path", { d: svgPath })] })));
}
},
_a.displayName = name,
_a;
}
//# sourceMappingURL=createIcon.js.map