choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
44 lines (39 loc) • 1.42 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
import React, { useCallback, useEffect, useRef } from 'react';
import defaultTo from 'lodash/defaultTo';
import JsBarCode from '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 = useRef(null);
var svgBarCodeRef = useRef(null);
var renderCode = useCallback(function () {
try {
var canvasRef = canvasBarCodeRef.current;
var svgRef = svgBarCodeRef.current;
if (canvasRef || svgRef) JsBarCode(renderAs === 'canvas' ? canvasRef : svgRef, value, _objectSpread(_objectSpread({}, option), {}, {
background: defaultTo(option && option.background, bgColor),
lineColor: defaultTo(option && option.lineColor, fgColor)
}));
} catch (error) {
console.warn(error);
}
}, [canvasBarCodeRef, svgBarCodeRef]);
useEffect(function () {
renderCode();
}, [renderCode()]);
if (renderAs === 'canvas') {
return /*#__PURE__*/React.createElement("canvas", {
ref: canvasBarCodeRef
});
}
return /*#__PURE__*/React.createElement("svg", {
ref: svgBarCodeRef
});
};
export default BarCode;
//# sourceMappingURL=BarCode.js.map