victory-canvas
Version:
HTML5 Canvas Components for Victory
41 lines (40 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CanvasCurve = void 0;
var _react = _interopRequireDefault(require("react"));
var _victoryCore = require("victory-core");
var _useCanvasContext = require("./hooks/use-canvas-context");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const CanvasCurve = props => {
const {
canvasRef,
clear,
clip
} = (0, _useCanvasContext.useCanvasContext)();
const {
style,
data
} = props;
const {
stroke,
strokeWidth
} = style;
const draw = _react.default.useCallback(ctx => {
const line = _victoryCore.LineHelpers.getLineFunction(props);
ctx.strokeStyle = stroke;
ctx.lineWidth = strokeWidth;
line.context(ctx)(data);
ctx.stroke();
}, [data, props, stroke, strokeWidth]);
_react.default.useEffect(() => {
const ctx = canvasRef.current?.getContext("2d");
if (!ctx) return;
clear(ctx);
draw(ctx);
clip(ctx);
}, [canvasRef, draw, clear, clip]);
return null;
};
exports.CanvasCurve = CanvasCurve;