@uiw/react-signature
Version:
A signature board component for react.
38 lines • 1.2 kB
JavaScript
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
var _excluded = ["renderPath", "container"];
import React, { Fragment } from 'react';
import { getStroke } from 'perfect-freehand';
import { useStore } from "./store.js";
import { useOptionStore } from "./options.js";
import { getSvgPathFromStroke } from "./utils.js";
import { jsx as _jsx } from "react/jsx-runtime";
export var Paths = () => {
var data = useStore();
return /*#__PURE__*/_jsx(Fragment, {
children: Object.keys(data).map((key, index) => /*#__PURE__*/_jsx(CreatePath, {
keyName: key,
index: index,
data: data[key]
}, key))
});
};
var CreatePath = _ref => {
var {
data = [],
index,
keyName
} = _ref;
var _useOptionStore = useOptionStore(),
{
renderPath,
container
} = _useOptionStore,
options = _objectWithoutPropertiesLoose(_useOptionStore, _excluded);
var stroke = getStroke(data, options);
var pathData = getSvgPathFromStroke(stroke);
var dom = renderPath ? renderPath(pathData, keyName, data, index, container) : null;
if (dom) return dom;
return /*#__PURE__*/_jsx("path", {
d: pathData
});
};