@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
39 lines • 1.6 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import React from 'react';
import { useDraw } from './hook/useDraw';
import { InputSignatureControlled } from './inputSignatureControlled';
import { getInputSignatureState } from './utils/getInputSignatureState';
const InputSignatureUnControlledComponent = ({ disabled, error, onChange, ...props }, ref) => {
// refs
const innerRef = React.useRef(null);
// custom hook
const { canvasRef, filled, resetCanvas, setSignatureStyles } = useDraw(onChange);
// active state
const [active, setActive] = React.useState(false);
// constants
const state = getInputSignatureState({ active, filled, error, disabled });
React.useImperativeHandle(ref, () => ({
get InputSignature() {
return innerRef.current;
},
get reset() {
return resetCanvas;
},
}));
const _onClickContainer = e => {
if (disabled) {
return;
}
e.stopPropagation();
setActive(true);
e.currentTarget.focus();
};
const _onBlurContainer = () => {
setActive(false);
};
return (_jsx(InputSignatureControlled, { ref: innerRef, canvasRef: canvasRef, setSignatureStyles: setSignatureStyles, state: state, onBlurContainer: _onBlurContainer, onClickContainer: _onClickContainer, ...props }));
};
const InputSignatureUnControlled = React.forwardRef(InputSignatureUnControlledComponent);
export { InputSignatureUnControlled };
export { InputSignatureUnControlled as InputSignature };
//# sourceMappingURL=inputSignatureUncontrolled.js.map