UNPKG

react-hook-mask

Version:
47 lines 2.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRefMask = void 0; var react_1 = __importDefault(require("react")); var use_mask_1 = require("./use-mask"); var useCombinedRefs = function (innerRef, fwdRef) { react_1.default.useEffect(function () { [innerRef, fwdRef].forEach(function (ref) { if (ref) { if (typeof ref === 'function') { ref(innerRef.current || null); } else { ref.current = innerRef.current || null; } } }); }, [innerRef, fwdRef]); return innerRef; }; var useRefMask = function (_a) { var maskGenerator = _a.maskGenerator, outerValue = _a.value, onChange = _a.onChange, keepMask = _a.keepMask, ref = _a.ref, getCursorPositionOuter = _a.getCursorPosition, setCursorPositionOuter = _a.setCursorPosition; var innerRef = react_1.default.useRef(null); var combinedRefs = useCombinedRefs(innerRef, ref); var getCursorPosition = react_1.default.useCallback(function () { var el = combinedRefs === null || combinedRefs === void 0 ? void 0 : combinedRefs.current; return getCursorPositionOuter(el !== null && el !== void 0 ? el : undefined); }, [combinedRefs, getCursorPositionOuter]); var setCursorPosition = react_1.default.useCallback(function (cursorPosition) { var el = combinedRefs === null || combinedRefs === void 0 ? void 0 : combinedRefs.current; setCursorPositionOuter(cursorPosition, el !== null && el !== void 0 ? el : undefined); }, [combinedRefs, setCursorPositionOuter]); var _b = (0, use_mask_1.useMask)({ outerValue: outerValue, maskGenerator: maskGenerator, getCursorPosition: getCursorPosition, setCursorPosition: setCursorPosition, onChange: onChange, keepMask: keepMask, }), displayValue = _b.displayValue, setDisplayValue = _b.setDisplayValue; return { displayValue: displayValue, setDisplayValue: setDisplayValue, ref: combinedRefs }; }; exports.useRefMask = useRefMask; //# sourceMappingURL=use-ref-mask.js.map