choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
57 lines (46 loc) • 1.87 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireWildcard(require("react"));
var _jsbarcode = _interopRequireDefault(require("jsbarcode"));
var BarCode = function BarCode(props) {
var value = props.value,
_props$renderAs = props.renderAs,
renderAs = _props$renderAs === void 0 ? 'canvas' : _props$renderAs,
bgColor = props.bgColor,
fgColor = props.fgColor,
option = props.option;
var canvasBarCodeRef = (0, _react.useRef)(null);
var svgBarCodeRef = (0, _react.useRef)(null);
var renderCode = (0, _react.useCallback)(function () {
try {
var canvasRef = canvasBarCodeRef.current;
var svgRef = svgBarCodeRef.current;
if (canvasRef || svgRef) (0, _jsbarcode["default"])(renderAs === 'canvas' ? canvasRef : svgRef, value, (0, _objectSpread2["default"])({}, option, {
background: (option === null || option === void 0 ? void 0 : option.background) || bgColor,
lineColor: (option === null || option === void 0 ? void 0 : option.lineColor) || fgColor
}));
} catch (error) {
console.warn(error);
}
}, [canvasBarCodeRef, svgBarCodeRef]);
(0, _react.useEffect)(function () {
renderCode();
}, [renderCode()]);
if (renderAs === 'canvas') {
return _react["default"].createElement("canvas", {
ref: canvasBarCodeRef
});
}
return _react["default"].createElement("svg", {
ref: svgBarCodeRef
});
};
var _default = BarCode;
exports["default"] = _default;
//# sourceMappingURL=BarCode.js.map