react-mana-symbols
Version:
React component library for rendering Magic: The Gathering mana symbols
57 lines (49 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var utils = require('../utils.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var DEFAULT_SIZE = 24;
var importSvg = function (symbolKey) {
return React__default["default"].lazy(function () {
return (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })("../assets/mana/".concat(symbolKey, ".svg")).catch(function (error) {
console.warn("Failed to load mana symbol: ".concat(symbolKey), error);
return { default: function () { return null; } };
});
});
};
var ManaSymbol = function (_a) {
var symbol = _a.symbol, _b = _a.size, size = _b === void 0 ? DEFAULT_SIZE : _b, _c = _a.className, className = _c === void 0 ? '' : _c;
if (!utils.validateManaSymbol(symbol)) {
console.warn("Invalid mana symbol: ".concat(symbol));
return null;
}
var symbolKey = symbol.toLowerCase().replace('/', '');
var SvgComponent = importSvg(symbolKey);
return (React__default["default"].createElement(React.Suspense, { fallback: null },
React__default["default"].createElement(SvgComponent, { width: size, height: size, className: className, style: {
display: 'inline-block',
verticalAlign: 'middle',
margin: '0 1px',
}, "aria-label": "{".concat(symbol, "}") })));
};
exports.ManaSymbol = ManaSymbol;
//# sourceMappingURL=ManaSymbol.js.map