UNPKG

react-rut-formatter

Version:

Un custom hook para React que facilita el trabajo con números RUN/RUT chilenos

36 lines 1.39 kB
import { useState } from "react"; import { prettifyRut, removeSeparators, calculateDv } from "./rutUtils"; /** * Un _hook_ personalizado que facilita el trabajo con números de RUT. * * El _hook_ retorna lo siguiente: * - `rut`: Objeto conteniendo: * - `formatted`: Formateado de la forma XX.XXX.XXX-X * - `raw`: Formateado "en bruto" (XXXXXXXX-X), adecuado para usar en * registros o variables * - `updateRut`: actualiza el RUT, para entregarlo formateado en `rut` * - `isValid`: indica si el RUT tiene DV válido * * @returns Lo indicado arriba */ export var useRut = function () { var _a = useState(null), rut = _a[0], setRut = _a[1]; var formattedRut = prettifyRut(rut); var updateRut = function (rut) { setRut(removeSeparators(rut)); }; var rutWithoutDv = formattedRut === null || formattedRut === void 0 ? void 0 : formattedRut.slice(0, -1).replace(/\./g, ""); var dv = formattedRut.charAt(formattedRut.length - 1); var isValid = rutWithoutDv !== "" && rutWithoutDv !== "0-" && dv === calculateDv(parseInt(rutWithoutDv)); return { updateRut: updateRut, rut: { formatted: formattedRut !== "0-0" ? formattedRut : "", raw: formattedRut !== "0-0" ? "" + rutWithoutDv + dv : "", }, isValid: isValid, }; }; //# sourceMappingURL=useRut.js.map