crypto-react
Version:
JavaScript library of Cryptography Standard for react.
29 lines (25 loc) • 757 B
JavaScript
import { useState, useEffect } from 'react';
import hash from './hash';
import Encoders from '../Encoders/Encoders';
import HashAlgorithms from './Algorithms';
const useHash = (
config = {
message: 'message',
algorithm: HashAlgorithms.MD5,
encoder: Encoders.hex,
},
) => {
const [cfg, setCfg] = useState({
message: 'message',
algorithm: HashAlgorithms.MD5,
encoder: Encoders.hex,
...config,
});
const [hashed, setHashed] = useState();
useEffect(() => {
const hasher = () => hash(cfg.message, cfg.algorithm, cfg.encoder).then((a) => setHashed(a));
hasher();
}, [cfg]);
return [hashed, (newCfg) => setCfg((prevCfg) => ({ ...prevCfg, ...newCfg }))];
};
export default useHash;