{"_id":"@akshay-nm/use-form-state","_rev":"9-937188bab0520ab33fa2ac131ba1d4ff","name":"@akshay-nm/use-form-state","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.0":{"name":"@akshay-nm/use-form-state","version":"1.0.0","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^16.0.0"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@1.0.0","dist":{"shasum":"67438c4f75e278868dab2cb562a177d96da7e871","integrity":"sha512-waTa568VCMpKferjzCFKHB+/f2fjjE57Lu/pFzh9OV3YeT0cKGbIx5JNQBoKr3Dj7oXI6qZb/dMEckYozkr3dQ==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-1.0.0.tgz","fileCount":8,"unpackedSize":46843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaiEHCRA9TVsSAnZWagAACPAP/1a8JtAfIb4BemkL/2DQ\nE6b/zRLZZSOtPDlcJ6+nsi8o2ID9+zNJhWBjyZs2WdMtrRs6p524dt29lyNN\nfYvp7SsqmAk2vuynH/YEPxVpnblu1Po/JuJxlWacYh6VdCZcbyZp2Oa56i7T\nTb0xu0EoxU+lxIk5omP1Vgvt+8q9Stjof4iVTX5TezS97pWdVju1dFU2TBgu\nqkNFjWfzm3N4zSDDWaxGR87EbnNppGeeJBdjilevBSK25wBVRJ6bDvuF3SmG\nRUwFhFXxqhfXTnyEOT4JdDpzDCVpiIp6YGYCV/o+VBkcIvEDctj7Gvj8iJ/U\nCuQH3W8ugvAp3hLHbEDXEMW0f96PggxtwbeSZQz/WJHo3iMfgXrp4KYA0rxw\nZrJTYnM5Cao97uERS+bB4XZ2sMB1Mkg0qx/3amIqq5yKzT69RrDRLCBqtnpS\nX1IRw5K7vFsNCU1B5RETc41bsT1JZYgrPfOCcxNREOfl/n1CGz7sM9voOdVV\nCEp9QWEVYjKaxC1POvwuSTLdYMf+kVaOLDzdUpB9DApZLHxIwOmur+zpmo09\n6jpilv3xUg+Tcp6ZFnfoGcwtM94mxAH1AUyzKXw5DGHPSq34fRyDImrFPCFR\nS5LHrySWy+lv0UtMqF2IOrTbUYqrF0jWhh5eGml5C/rAMwMioIBx3/D8e483\nmHTx\r\n=5OqP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8ilJZ4/i1Pwh97889vs9GHo3pCFnnaTeaAlXDOF1ysAIgN1BOASIVsBBPmf73WFFZ+Jn4j/4QDYD2SWZkaNQBPaU="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_1.0.0_1617568006836_0.8882086867591665"},"_hasShrinkwrap":false},"1.0.1":{"name":"@akshay-nm/use-form-state","version":"1.0.1","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^16.0.0"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@1.0.1","dist":{"shasum":"5e11485d4136365833b6adf99c4e38ec02cc5b3f","integrity":"sha512-0WFsvaDaKPjoBvdCvh1BrGIZPGMD6eDpCwLezFInRDuIHW1vG/xjkG4ihjoqJaKU29E+98ylpUz63iPSVPVNxQ==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-1.0.1.tgz","fileCount":8,"unpackedSize":49685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaiJ3CRA9TVsSAnZWagAAq6oQAI6snllefBAjlM29cds9\n2anW1BnYdR73ZOcJKMBP0WzNDzz38dsjIQK9uTYhA6wiYgrlpuAOKMmxOZTx\nNZ54kg7WmKZ9IJn2VjXKpJEB7AqFRrZvqgNmhjysxSKT5abWJmF7UJkDfog8\nNmTc3xGVdIcMMQS6ytPgCe1JxEy9W+T4R4ziuLRh26nVVregB+gw2zKdrzUR\nHpDd149L45yanYHQkLUy8K/89rDjrnwf4aQOMoz9JSmex8XWxOcgLMxrZYBw\n1Mv0gbcdEqChsXGj+WNcphIWdgGHQaHk8BHQXXWc1OicSOo4SK7ZlSfNDtYH\nwNupEyRIARdMmGjVmOO3KRnNk3wXIeyUEGpMC673F485atQYQjbyhJOnoQhq\nAMuOxQfJ7ucnkg3jgd8Q33IFNXfAYQNzfsajESb/NaOkr9whU8sMi3LPRQJ3\nFfmR8ew2BQmHTYTFsUBsZkSXpgd43l/hkZdisN5vLGsCwfgh1+oeteH5JO9K\nOF4ebwjWsCOsZe56ay57I3dInwDbUurJak6qdMgrQh/SH0b3Pf90T1YTHNuP\nnn1HZNxJHvSGRrNQxQad02jppNeeF+BIIfKrWxxpywST/2+u1uEuTHrmYidt\n31j6oiggC0eoU/on5/+3nC8KOrZ6c0uhV9h39eimoTJfeus3iSGcxSqZx5/G\nO5pR\r\n=woO7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEMPuVIME+0RlVF3q5hdT+63btymyIARbGxoWPYDOnuYAiA3nNCGZGYlQa5t0+EHH1xkLMK9rJpCj3V8cRZ/+cY7qA=="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_1.0.1_1617568374635_0.27682895286026765"},"_hasShrinkwrap":false},"1.0.2":{"name":"@akshay-nm/use-form-state","version":"1.0.2","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^16.0.0"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@1.0.2","dist":{"shasum":"04f4f2b0a710757d86a2382a17089c9aae929527","integrity":"sha512-pIaGmlKxLLhIODVt+YvH1F33VhZV/jdPhuhq1bNT7QfS70CtLbER5a/3MfYBCdzN/XbGdt6dT2JPm9XbJ0qyfw==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-1.0.2.tgz","fileCount":8,"unpackedSize":49838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgc7xSCRA9TVsSAnZWagAAAWkQAIlAGIKZcaYfZKf7M9A8\nPpgx/gJszMDmhdHz59cEUi8MB8OS6rEsBXFGUm/Nq/v/wv29CwK4nf8KSwmW\n5f1IMJyM+8hixc1yT67T7QazbbSNa1kezkVUahPkFy/v33zHDd7Prelfmyz/\njvwFZ7n0/ds6j2UzVV11IgHkxfpUgLFluhEuDruGUQPp0n7+EbSVZkNZdQrH\nRE9EeHXv8fmS2JiUTZqLgUw6LITJGllZOgLEe+KeJ4IrdlIjHCc5QBGjmfti\ndzIUFZBHAmy4Ro+tIU1imuQFyHBMCcf7zqogCkdWJ0GCpz1yco4KwqzjBPsu\nzEiufK+cCU6axFtnBoMrD46UAuWt16soSjH1Yvu4CwEXuTzxHvbJNfsdWTll\nd31Eb6cLc9nWFZfDw3Zvg9LpMpRGnanyAA2DmqHzoa0mFJ8h2L5igFcFFU+5\nWoim6ABpYLkyowIvioMbY4Z20k5DEBHsCa8dcQn8pMn46v4dCI3bJc2CLrhV\n6X1+ijkatO+RqWI2zogXPbW+elbnlj/vAVyHuuw/+f5/wuBJ5Ouoxgjz5AVg\nu0j88sSqAqDVSOc2757d6yPOpEFhE9xv4iG6IS1dTJ/prIjGJg48NrI8DhJB\nCtlM94IWH+qCWZWcQiWE0XfWcvI5aFeI1jTWwt2XvPE4ckJegJrD+GOG6kzo\nTZU+\r\n=dHCK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGlrqBqdjPBhDARi3VvBpljZ2hPtqT3zx3i46A/YmQURAiAUcMiGLJplin4oqNDAMKVO8vRpBQpIUk/kcaky7aarlQ=="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_1.0.2_1618197585535_0.9624546799011438"},"_hasShrinkwrap":false},"2.0.0":{"name":"@akshay-nm/use-form-state","version":"2.0.0","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@2.0.0","dist":{"shasum":"c341a608faadb0057eaacdbed786983fc93531c4","integrity":"sha512-vqfE/VRwzTf0gaDhnR+tn8tUOfWXfhNOCq9SQpOYn90GM7qYgqyVjF+uFTO3rqxNH5Vtf1yGYaBJctnVzkKDLQ==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.0.0.tgz","fileCount":8,"unpackedSize":59680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfnXbCRA9TVsSAnZWagAAvAEQAJlXMB5pjlj5OdqBte5+\n5KOik6ABlTA5aDKfPRubCQ6HZ1DTYRAoH5QLN07ArnLFi7WrGbA6MvSpDNps\nTLGXsgdj82fCuvGgo5bp2P4Gdw+BGSqS7kHD/uS08irS+sQsXxT8lk0vSwrY\njg+CnmJTqFxbHSE4NIiDnNNkdnK3nJjNg70geuWz36SPa5L2IVwlOeXgRIgR\n8y7BFTDRNG8Xlhg4lrrTa2cvrEqAvI1DzG/Ir3RYG2dF5SNyDWXz8jeiDlMH\nTpiLw1qQ0ucTKM1bbqHN+AJ9tK+64TAQb4qE0MjAkjL3UHn0b1QCumjopf5Z\nDhCeO0DTbDWP8Eu8thQGHG0mk7/J09ieEaAyy7bFWWJ1dyGSCUOkJMYDIczQ\nFfe58VZIX+usNp4QnuXLtiSdrBliePH8lecdAAmGTXmLSDlC9h0tYgmJZX11\nyjTqePYVRrU5fDyn85MSL/drYmyq3/B7pzA49YKbAbMkahXnWcU5JQTvZeqs\nvcbd5FnkWuecT38gHVCTlOh6k8gloG+6BF5LRYt3RuVmz857UGbjG9t1jbAE\nAxL9DoFJZeOoc4IOepJgGyav3jv+dcmUT0RiLsC8DKU/iCP/IOQjgXlUsMbg\n7w8hqsYqXNv+hMzdZAJoxrq/GXa27WEp9JIFC/Ih+n7R4V1SfjVDGsT5ONSh\nQOPG\r\n=XQM1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFrYQF2lSBxO4/E3/5sBvrdeab8NjyS7QhwlwPIbm7JcAiEAzms2TJS5FZA7EXBDCWUHfb+sCW/8Q+wb1dWKdbOE3jk="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.0.0_1618900442528_0.2124484142323655"},"_hasShrinkwrap":false},"2.0.1":{"name":"@akshay-nm/use-form-state","version":"2.0.1","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@2.0.1","dist":{"shasum":"7b5481a8599b4c7c1076979171cd266119660dc2","integrity":"sha512-pzSxtpNqbMUPZY5C886q3FjFf169NDwcCPtqdc0TKUULu6JcMXxGCK21XLQOHJNLpsKo18nvanGpaieG0z5byw==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.0.1.tgz","fileCount":8,"unpackedSize":59680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfnroCRA9TVsSAnZWagAADWkQAJI8hwbWcGi7Mndja12v\nofgedsKYz2pfdzCc6MYANLEvPdMRQcqUDF7VCTPQ0MShkTg2x7PIRRx/KtOd\nVjlkZDNtcUkM87o56+Nu1AALYevYVjr+r9SfpRI/qiw8+We1TpuY3wV5AjHt\nbeESX9ljC4AytZa9pfjPgv7Kdf3Pf/5+DZyvuPQqcVRUx3TYmPLOje0CJ/Ue\nGA1wfW8hnAtHjHgp5c1lOBwngaKATIyVu8F3r2qVbHdmPKhEvE0vGlxmdQBm\nb2g3Z/WZHL1ksePptmFZG+V13jpebqfp91jZQEeadj5fF+7YCmjnXl9B139W\n8nIk/pozS/QURtARvDK4AGUT1IqdznwJxKisH2Ow/Yw+V5FQHqIZz3nEBcr0\nt8sE+Z4WlBcktYwTDFm/3YfXJgBAW4TNzAPUxyneXzbIRzWN21MEBp0PEEik\nCQhRqRbHHW7FO3hyQdf32cKetuNJIYP3bFXBSfeMez1j9HHREh9JKxySnttB\nySWIPpcn5aF1RK6cj93EnEW7EqBq+2gZXq8xhw6yQjBht/uWQ3RmU8fy3q6b\nngXLV9KbkWgoIVnyd+Bpzny72RPo8/qQ5YYs9emD6kTTcLVsxuIPo84/5uvc\nZliMtN86ZroWRX0z6A+XAUmj6L0xAi/52cixDBI+4+m8OVdBehEjC1ePEUKK\nM6SP\r\n=PZ/x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAF2d6darDwdH7MCdfsqsW7MvDKTwCk2DtLqtSU8vxr+AiBwn+7RNY11YLl9nYZS4vaJjlXqHx6ljSw8Dp/T0IR7Sg=="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.0.1_1618901735934_0.37463545493963024"},"_hasShrinkwrap":false},"2.1.0":{"name":"@akshay-nm/use-form-state","version":"2.1.0","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@2.1.0","dist":{"shasum":"4232d714547dfe06310c8f2662454f59709921e3","integrity":"sha512-y53pCSfRVv/acN10uUefFB7RzvWOl+PONzbN+lG5b8uUdGjdqWVhiAmkzBwPmgpSlhI2Xwdu4J0meItIxhrEAw==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.1.0.tgz","fileCount":8,"unpackedSize":60986,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjPfYCRA9TVsSAnZWagAALi8QAJWvNYOuauTM6B1r4Z0j\nOJtX0wuEXO3w0RNr0oMOqtN0yl/Y1H+WXnBbARGjx6vvTarEnSgfinFA7Ybz\n1GAA21eLrkHsaB9Ks0cR3o/4aHGHwr8bCldhWpXVRDBPjlbm8Bit2XTJiCnJ\njgBwVuQ7K7dKAGWUi7M8qNhNuysOumzLRWKB2ivt0xqncZqEMlgRkeewNtLj\n0ZRj22+7Z8Aurj8FDHIdN/rhtz6ENPb88JlLmhNUSTR2Ui3iIZXwJr3Gy/Kd\nXyMlLWmJTwbRAW+D29zTc+dD7TnePPw6uPTSFPc6M6fYeW06ngbNf2RopC5Y\nBjdqDPhuw38reqAmYqqgkDxL/z3WNH6IupT6rXFCiYUXmwhBnSXwwNG4Hnzj\nVpiIZ3jatHzIn8mzgmhj1rgVSHO7Icai1qeJFqlR5Izd7omX7aU1STte73ky\nc/T1RD1aFG3URs9fDjJznGmXC0RWXWh6XLmedzsjkXZapZzGb/a9fJ6I9HhP\nvCki79GkPmubK3AmQcb2T9Wln8AaNgbre+kM33FXL9QcJLu12/iAeMgopVJX\n0lWZehf4LN6Ti79RawQFFfoIKviyoMD194aSEy/4Ml3tzWOc/5eeANIZwICK\ndp8RkMoLMm8ON6tPevcPP4+flhYxtoAKVwjfsOpDVIsBttkkZLYkNdndL0dA\nAGDE\r\n=4sRN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClTTpNnuI2wxTRdJs5kH4gaB80GUyQZCOSSTc4U1C5/AIhAJBv9u1cNboDsnpquH+ARjjoM6UWBH1zFKT4JdQo2pX5"}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.1.0_1619851222935_0.088932080530437"},"_hasShrinkwrap":false},"2.1.1-rc":{"name":"@akshay-nm/use-form-state","version":"2.1.1-rc","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@2.1.1-rc","dist":{"shasum":"4034abb6028eddb5af9637e549491b8833bb4cbe","integrity":"sha512-/hUvGETn9zQU/kjddeL2haXLw4vTuRdai1JwbXc60/kv42cYvDs/GGufgxqU3xEqHP16ZMw8GFJ4N2BFil+cTQ==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.1.1-rc.tgz","fileCount":8,"unpackedSize":61189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjTZDCRA9TVsSAnZWagAAzkQP/0GkqWAzlJc1wTTGURkO\nDoWqgIBRnKRiv/qlvyD4Kc17DtpoL3BvZc/hQhGtj3shUAxUPkAP9JAMhMAV\nqEFivE/FvLWLhU/RWl4QY5jenoCAyz1Wymh0wDYU8D/e12nIsA2qdb4bTHP7\nmguYbwM637xXg7VLmqifTxHLoxgCWqOzxumd5r9RtngTPXogH9RSbXh7nh1t\nR84tc+DScj/PPlSHNXGShQf/Jnl8KHiYngm8+YaHbQcu/QOixMUGfg6PGcU6\nWyPGdsdNgX6qTMsEYfFjCoHPwMgqXKDpg3MuVSIRrnGXlQnaLkz314dOtH3R\nOXNT/gKZ/H+4OdbwRkvenx1h/j6Aky0GT+iP0s812zQhvJjPWGmn/b6+gxRU\nsi37MDRXgxjURMr98ph/4+yy0CJwbgq5TlGWfAkE1ibO2Vxc1Ul44CMLtELI\n3tSOw21Ha4dfbsCE2hDZ9Z2jaj1jdP/M/J8mN5amrkZ3wLBR6YQHLfhJhJ8k\n++5gqCWcjpMXFnFrVWWptrc4WQIu0c9EU5cWhdhgrrBNLmYgWuYbUXJbnzyP\npUR0C3yZbV5DccmruYBqPg/SqeULtGN3lBHW1LcBT/sTe7czVQwvJrrk2MY1\nWQMpFKR1CdUXNW4kpfH7FpjpTK9kAcrTWm46HibcDHjt6r/R0BZvJf2JHEOu\nPEeq\r\n=1U5H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQIFOqFJo26kpah3ERksPVFodT9O5OgbKFGdxHT7QEJAiAaX2R34zk7C4MGiKVsoEYIP1tXQjlV638u0YNWiVuAzQ=="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.1.1-rc_1619867203436_0.6235524534826797"},"_hasShrinkwrap":false},"2.1.1":{"name":"@akshay-nm/use-form-state","version":"2.1.1","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"main":"dist/index.js","module":"dist/index.modern.js","private":false,"source":"src/index.js","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"microbundle-crl":"^0.13.10","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"_id":"@akshay-nm/use-form-state@2.1.1","dist":{"shasum":"d8febb5996204ab55ba5393ab1b4063a230be690","integrity":"sha512-Jw4tGNORRJs9k/JjlYPqgNNIgSULyvtVqFiMbBTKJyz3/SSPGc+Mh0R+2X4GvqshGvRpfQxMiSyPBtxVxB9G6A==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.1.1.tgz","fileCount":8,"unpackedSize":61186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjTezCRA9TVsSAnZWagAA3iwP/Rot8LFQOmINwb2D/FAC\ntPVrdaq2TF08VZ0IZlQkpFNgEjumvELoe6ysnTfy0zl3ERbKFPesEEbVaSWn\n1nc7kAAAZRTF4zvInX7TMzfPBftBjuw4kHtgKJgpn+o/unpbaP/ruQWsxsmV\ncJ409Zafr0/KNNhJC+MU4no3NCP3Kpq+yDkbCpE/145k0yhhxXnTsE8RT4aB\ncMCT2I7p116DyakpMaXkSkCLwLyYH7nXLkJN8TbXUUF7k8r8EBvXySDCRccS\nTu705w81ppvXu/TaklZQvqBoGjZ+Jr9adLZigcGHrqO4jBroeehOErnGaCiL\ndRsOi20hv/a6vm/RgLXousN6z+aE/5RK7YwLPwKP0Q0bHgRTffdKZ1VziMqf\nYdjPdw6UFdRmo288shqtD6gDPj2+Gj6kKQUrjwIsOEq4Q6HiBmKLs7mRI7i9\n9a+CZqnPb+wasjPp6gikoKqh8wQ7q62ZoASARsyWEH3Xkad9GDnCKON5qBs4\noSK42tfUsHS69h+rXlTcCmu3gUjch46X9UOnNKr6NKt0oyMLnXJ0mk5IIL2T\nR8HkUtdrahv8MzumhVSY1c7c1NYR9TE38o+h4MpnC7Jz8VeYS6wC+J7VA2wI\nMwABmuYwjxk0xDcV+eCy2qODjwB6W+rWTG36YTQDT+Q5gZICuxiNAjtkA0U6\nVZgu\r\n=sfLH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXCe4WT9C4dzq5G4c/7tFNSa9PtLkdneDMB0Ds9MoLJAIgB72LWupy9neIF+/I8PgVJykqs56eO7veZ3upnkiDIEg="}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.1.1_1619867571539_0.8867600491347793"},"_hasShrinkwrap":false},"2.3.0":{"name":"@akshay-nm/use-form-state","version":"2.3.0","description":"A hook to help you manage your form state declaratively.","author":{"name":"akshay-nm"},"license":"MIT","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"private":false,"source":"src/index.tsx","exports":"./dist/index.modern.js","main":"./dist/index.cjs","module":"./dist/index.module.js","unpkg":"./dist/index.umd.js","types":"./dist/index.d.ts","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"],"engines":{"node":">=10"},"scripts":{"build":"microbundle","start":"microbundle watch","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && yarn install && yarn run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^17.0.2"},"devDependencies":{"babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","microbundle":"^0.13.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1"},"dependencies":{"@types/jest":"^26.0.23","@types/node":"^15.0.2","@types/react":"^17.0.5","@types/react-dom":"^17.0.4","typescript":"^4.2.4"},"_id":"@akshay-nm/use-form-state@2.3.0","dist":{"shasum":"fe4db6b53ea80aa80c517fca4d737e6e654ef62d","integrity":"sha512-4OgwsjCt+bDpdRVpmYJGnzcPfrGLlEU8PtxSCM6CSZwdnzxGprefosZQX/nQ0dEAC1GeDsfczBrLE45MpDSJ6g==","tarball":"https://registry.npmjs.org/@akshay-nm/use-form-state/-/use-form-state-2.3.0.tgz","fileCount":15,"unpackedSize":87468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtRYCRA9TVsSAnZWagAAYbwQAIEw98JaMb/Wb8nANOQs\nkTmH6wRDxqE58PqtvdAwDNy61tuO60OxYnaKb/zDg0a1XNnq0hMC6yXXwlDC\nV+RikMMDFOYzZJQ1HW4CWzOttUtvSrcYSXIP8dayT/noSmjpA4aiSXWkuHlX\n86AaUrgTshRgvmRB+hRKTqq9evoAyGOy+7sAnMUK77frLhWWw0pPT2tEPkxv\ntWc0QPynLt6OSMzcXDpmAP+9v+cUh69iPOhp8l6FBluJpGTKBhYwQ2m8uyHt\ntRUGljJp+YG9tfYQIHBphcSTVCfVXPukrxKmzO+VNn8MLDZeKQR2o01kf7W7\n6wCJue6TqPlM1U56jfTnR7i4WD0ozW8h6/ZtEF53xig+zeNgTH1feuXW6tpT\nhc/JbPFs9XU06MeZmGErJeZ+CpH7D1MRSYgTtViq/suZMIODiD7m3zhpocYl\nScuo49eUnJ8odyEx8D07oLmoVMNJlgJNVTgD75ddWNDt9n5E00hFAjlvyji2\nlUTqnhNbexvV+br+aJn7hHAHQY9QXGm2tOHIa6Lj2gcZz2WPFI/FHtlWGmvN\ndJh2Sin4X+30scdPb+/YiHtv0EaMfN3dAPNVUlMHRk91ucp3DqaJVqPVaCqf\n/NgPwYwdsHxqMQtm+eqZU2izEhxQxlY0OhxNXqA0AAfh+UzvlewRXupwyjzA\nXTWt\r\n=zEs9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8ozutTnBGDF8TSRUbVNX6InmXlV/66b/CdSJ/4lLvwgIhAJL2NrMTA+mZQW/gVK82AACDJCDQ5do+W752LXNCjIkO"}]},"_npmUser":{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"},"directories":{},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-form-state_2.3.0_1620759640021_0.6716708587852407"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-04T20:26:46.792Z","1.0.0":"2021-04-04T20:26:46.984Z","modified":"2022-04-04T12:31:24.558Z","1.0.1":"2021-04-04T20:32:54.785Z","1.0.2":"2021-04-12T03:19:45.745Z","2.0.0":"2021-04-20T06:34:02.682Z","2.0.1":"2021-04-20T06:55:36.073Z","2.1.0":"2021-05-01T06:40:24.017Z","2.1.1-rc":"2021-05-01T11:06:43.582Z","2.1.1":"2021-05-01T11:12:51.666Z","2.3.0":"2021-05-11T19:00:40.175Z"},"maintainers":[{"name":"akshay-nm","email":"akshay.kumar@sdiot.io"}],"description":"A hook to help you manage your form state declaratively.","repository":{"type":"git","url":"https://github.com/akshay-nm/use-form-state.git"},"author":{"name":"akshay-nm"},"license":"MIT","readme":"# @akshay-nm/use-form-state\n\n> A hook to help you manage your form state declaratively.\n\n[![NPM](https://img.shields.io/npm/v/@akshay-nm/use-form-state.svg)](https://www.npmjs.com/package/@akshay-nm/use-form-state) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n\n### Getting started + Motivation behind this hook on medium:\n**Read this:** https://medium.com/sdiot-technologies/akshay-nm-use-form-state-23d8406af540\n\n## Install\n\n```bash\nnpm install --save @akshay-nm/use-form-state\n```\n\n## Usage\n\n### Configuration\n\nThe hook takes an object as configuration. Let's assume `config` is the configuration object to be passed to the hook.\n\nFor each form field, you need:\n\n- value\n- onChangeHandler\n- showWarning\n\nTo generate these, the hook needs:\n\n- name of the field\n- default value of the field\n- validator\n- is the field valid by default\n- is this field mandatory (should the field affect the overall form validity or not)\n\nSo for each field you have to pass configuration:\n\n```jsx\n{\n  name: 'nameInCamelCase', // Although I have added a camelize check but still...\n  default: '', // the default value of field\n  defaultIsValid: false, // is the field valid by default\n  mustBeValid: true, // is the field mandatory\n  validator: (value) => true // the validator\n},\n```\n\nYou pass the fields as an array named `states`.\n\n```jsx\nconst config = {\n  states: [\n    {\n      name: 'email',\n      default: '',\n      defaultIsValid: false,\n      mustBeValid: true,\n      validator: () => true\n    },\n    {\n      name: 'password',\n      default: '',\n      defaultIsValid: false,\n      mustBeValid: true,\n      validator: (val) => val.length > 5\n    }\n  ],\n  debug: false // if you want logs\n}\n```\n\n## Complete example\n\n```jsx\nimport React from 'react'\n\nimport Login from './Login'\n\nconst App = () => {\n  return <Login />\n}\n\nexport default App\n```\n\n```jsx\nimport React, { useCallback } from 'react'\nimport useLoginFormState from '@akshay-nm/use-form-state'\n\nconst Login = () => {\n  const {\n    isValid: formIsValid,\n    isValidating,\n    resetForm,\n    email,\n    showEmailWarning,\n    onEmailChange,\n    password,\n    showPasswordWarning,\n    onPasswordChange\n  } = useFormState({\n    states: [\n      {\n        name: 'email',\n        default: '',\n        defaultIsValid: false,\n        mustBeValid: true,\n        validator: () => true\n      },\n      {\n        name: 'password',\n        default: '',\n        defaultIsValid: false,\n        mustBeValid: true,\n        validator: (val) => val.length > 5\n      }\n    ],\n    debug: false\n  })\n\n  const login = useCallback(() => {\n    console.log('Send login request, form is valid: ', formIsValid)\n  }, [formIsValid])\n\n  return (\n    <div className='p-4'>\n      <div className='text-lg font-bold mb-2'>Login</div>\n      <div className='mb-2'>\n        <div>Email</div>\n        <div>\n          <input\n            className={`px-2 py-1 border rounded focus:bg-gray-300  ${\n              showEmailWarning ? 'border-red-400' : ''\n            }`}\n            value={email}\n            onChange={(event) => onEmailChange(event.target.value)}\n          />\n        </div>\n        {showEmailWarning && (\n          <div className='text-xs text-red-400'>\n            Please enter a valid email address.\n          </div>\n        )}\n      </div>\n      <div className='mb-2'>\n        <div>Password</div>\n        <div>\n          <input\n            className={`px-2 py-1 border rounded focus:bg-gray-300  ${\n              showPasswordWarning ? 'border-red-400' : ''\n            }`}\n            value={password}\n            onChange={(event) => onPasswordChange(event.target.value)}\n            type='password'\n          />\n        </div>\n        {showPasswordWarning && (\n          <div className='text-xs text-red-400'>Please enter a password.</div>\n        )}\n      </div>\n      <div className='mb-2'>\n        <button\n          className={`px-2 py-1 border rounded mr-2`}\n          onClick={login}\n          disabled={isValidating}\n        >\n          Login\n        </button>\n        <button\n          className={`px-2 py-1 border rounded`}\n          onClick={resetForm}\n          disabled={isValidating}\n        >\n          Clear\n        </button>\n      </div>\n    </div>\n  )\n}\n\nexport default Login\n```\n\n## License\n\nMIT © [akshay-nm](https://github.com/akshay-nm)\n","readmeFilename":"README.md","keywords":["use-form-state","useFormState","use form state","nm","nightmoves","akshay","react","hook","react hook","react hook for forms"]}