react-rut
Version:
Chilean RUT for React
36 lines (29 loc) • 761 B
text/typescript
import React from 'react';
import format from '../utils/format';
import isValid from '../utils/isValid';
import unformat from '../utils/unformat';
type State = {
isValid: boolean;
rawValue: string;
formattedValue: string;
};
type SetRut = (value: string) => void;
export default function useRut (defaultValue = ''): [State, SetRut] {
const [state, setState] = React.useState<State>({
formattedValue: defaultValue,
isValid: isValid(defaultValue),
rawValue: defaultValue
});
const setRut = React.useCallback((value: string) => {
setState({
...state,
formattedValue: format(value),
isValid: isValid(value),
rawValue: unformat(value)
});
}, [state, setState]);
return [
state,
setRut
];
}