{"_id":"@culturehq/hooks","_rev":"6-b8993fb715bb46c5c291dfa1eaba0c31","name":"@culturehq/hooks","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@culturehq/hooks","version":"0.1.0","description":"A set of reusable react hooks","main":"dist/main.js","module":"src/hooks.js","scripts":{"lint":"chq-scripts lint","prepublishOnly":"rm -rf dist && mkdir dist && yarn babel --out-file dist/main.js --ignore '**/__tests__' src","test":"chq-scripts test"},"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"license":"MIT","keywords":["react"],"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"homepage":"https://github.com/CultureHQ/hooks#readme","peerDependencies":{"react":">= 16.8","react-dom":">= 16.8"},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@culturehq/scripts":"^2.1.0","@testing-library/react":"^8.0.4","react":"^16.8.6","react-dom":"^16.8.6","react-test-renderer":"^16.8.6"},"gitHead":"0aad5afdb02302eeba9ee8116b06baa53f8c8a65","_id":"@culturehq/hooks@0.1.0","_nodeVersion":"11.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-8tpqEzQd/oAthqkv/UNT5pe0V4M76kFJsXeWkD938HHR4Icuun88D0jLmL9dM69j+yY24ky89tn7B8k7ORfK0Q==","shasum":"3ffcc6c49a3a5456e0eb7e71c67adbe70c035011","tarball":"https://registry.npmjs.org/@culturehq/hooks/-/hooks-0.1.0.tgz","fileCount":11,"unpackedSize":11380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEnSpCRA9TVsSAnZWagAAtq8P/1PdtaZ6/BNWw1a2WPCp\n4gVj5ub36xM3kw2CaqJ3yQ2Q3BTOVHqonsWLX3Lrf/XxHlqwREafvqgnjLHL\n+/bB5Ed2Blp/qNW9js5nBkLCFSAqBe8M8DCOQVmDgCEvVD9n8U6YFhki1VrK\n9kKlyM4DchzAL3sT4EdIw24bXJ8bQmtw1gm0l6dAuf/F5eFp/KlQe6YVHTnJ\n6SmfXIRBf8RPuJUbe/6zRf7dftXeA8QyrT0Iqx9/8BIcZfQOF0tMqcNI6a7R\nlK/q+Eq9qCd1Cg36l7taDf56u0SjoBMOxlLkGuEpchL0iao9aQEMFmBgiPpx\nAEw1HXewl3ku2MY3zK5zmub+RFpeqSs1IbEbNAPOkIOaL1NXPTL1tuvuWwaB\nYvOiMXz3FVmT8FT+8GOHezVlL8fOYyyH92SU6rmQ+xlEpCwo8/P/97e5mv+Y\n/nNeC2L2zo5Dwi3AZx0I3rZ9LNeqA1GkfNhUiGEDjv8VS04WmNsNwQhzGVzg\nhFHSK90rn9K7LbEA8r7p6e3PQYVmRb1Le56RgV3AKKd3FNaTraq2wUOjyZ/l\n2cUsxJgElriKeXbzMlEjmshq/HaO2RdsTBWmIDkTqGap5G2Un3D7e+9mYtec\nObHaRn++RzwFuDGzjzfWdbXWImcvrje0p1tBY35mmHQaEjWws7wRN0ajTEuX\nDSYz\r\n=/Ghs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1fWKLDpQm5+7BsklPBzmB6orJkRKELdOwmAqO2QY9PAiEAp64MDOQKWIh81qnqwYf2lygrw7rMXVU2EtmcnUrjz64="}]},"maintainers":[{"name":"kddeisz","email":"kevin.deisz@gmail.com"}],"_npmUser":{"name":"kddeisz","email":"kevin.deisz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hooks_0.1.0_1561490600263_0.8405284370943846"},"_hasShrinkwrap":false},"0.1.1":{"name":"@culturehq/hooks","version":"0.1.1","description":"A set of reusable react hooks","main":"dist/main.js","module":"src/hooks.js","scripts":{"build":"babel src --out-dir ./dist --ignore '**/__tests__'","lint":"chq-scripts lint","prepublishOnly":"rm -rf dist && mkdir dist && yarn build","test":"chq-scripts test"},"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"license":"MIT","keywords":["react"],"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"homepage":"https://github.com/CultureHQ/hooks#readme","peerDependencies":{"react":">= 16.8","react-dom":">= 16.8"},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@culturehq/scripts":"^2.1.0","@testing-library/react":"^8.0.4","react":"^16.8.6","react-dom":"^16.8.6","react-test-renderer":"^16.8.6"},"gitHead":"b9ed9a30e582e6bed89f50b3f319357f792e7e69","_id":"@culturehq/hooks@0.1.1","_nodeVersion":"11.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-9xftHRcSmzPeczs3N5az8w7j+fa9jtw95sV7bWZE0FdSNvYMdAcLalGXKnn7uMljewjADkyueJs9BCQ0GZZ4mg==","shasum":"f1a53076d0a0ea0ab8420447560eb7e6a7d23eab","tarball":"https://registry.npmjs.org/@culturehq/hooks/-/hooks-0.1.1.tgz","fileCount":13,"unpackedSize":11522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFN36CRA9TVsSAnZWagAAhc0P/35/aKELz8EG/oB35+8u\nAJcAs2CU00J0LdFArhZbxXFKTEPzIm9TUtfFTAeS9Af0Z9lMwhfsBKjlN0pP\neMdvH43DjUW6f6ihzGCSkP3edup/vsmyZUwVFAW5AlxPQIa7NiJ6LYe/h+5w\nMlvCyibtVPtphCmt3yhUu36UFl4JTL5Pod9sRWAEo0EqjnyiYmWAGE2DDE0l\nX3rwmaYv4X6/XZb4Q//+POWfFA9z4+eelqxvOC1wm9V8pK4Jlr/AD1uaFVRq\n7ru+V3NllTu7NNCjoSYnOXLRx8t5/52K/QLlrZQ2BxKW74UdBioSujojF6t6\ng2Hb9kPFz9ODC+jSCVAB8WhPBMf7d7GJ8Y0KzIX1DJOCmWx5sqDoMkFyHMyy\n8lJ8EaKdxNbK1wAU0VUJInEpLhNFC5wrAaQRgY1aNnLyZRha1PL6HXC4iiAv\nL8DPNqbkfkfITyXO0rlh3XVnHKCOtsQSVoBS3RM1bl2u739jHrtAaMH5H/cQ\nfNdWxUWNTKrak8r5BsyHqWTwHvlZP8XVUvEVkN2ZZ22qW7roYiGDaQT3m8KT\n7nnNC+kAqt/CelgQNeoOodnbfJ7a3vN7ddUSjPOQK5HbpM8Lmkc4QGfnuVcm\nSQWqeIcnvXIog2SoflRtrSFx+H1WyaheWpjVZFhRCJV1BeYsy87KfHf6nSm4\ntbxM\r\n=hB4R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTuvfunvAHF9NA1H3EQCkqwCbv1h07fRNz0C5EfLEwrgIhANeOrn7YCDHinKzKNDRALnciOum3jPaohcFeAricBq99"}]},"maintainers":[{"name":"kddeisz","email":"kevin.deisz@gmail.com"}],"_npmUser":{"name":"kddeisz","email":"kevin.deisz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hooks_0.1.1_1561648633465_0.022298006654837943"},"_hasShrinkwrap":false},"0.1.2":{"name":"@culturehq/hooks","version":"0.1.2","description":"A set of reusable react hooks","main":"dist/hooks.js","module":"src/hooks.js","scripts":{"build":"babel src --out-dir ./dist --ignore '**/__tests__'","lint":"chq-scripts lint","prepublishOnly":"rm -rf dist && mkdir dist && yarn build","test":"chq-scripts test"},"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"license":"MIT","keywords":["react"],"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"homepage":"https://github.com/CultureHQ/hooks#readme","peerDependencies":{"react":">= 16.8","react-dom":">= 16.8"},"devDependencies":{"@babel/cli":"^7.4.4","@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@culturehq/scripts":"^2.1.0","@testing-library/react":"^8.0.4","react":"^16.8.6","react-dom":"^16.8.6","react-test-renderer":"^16.8.6"},"gitHead":"31f433c06de8e564bb626e1ae23ce2a433883511","_id":"@culturehq/hooks@0.1.2","_nodeVersion":"11.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-pnauKNM340wvql1iPU4Y73vdQV6HHMMRSBJ/FSXoMp5wqBgqp1BQnfL4ZBOzZuJc0Bz5Ds/MVxCxwR7yGPG5aw==","shasum":"e5e09027d549091d58f85eb3bc59749c4bc36103","tarball":"https://registry.npmjs.org/@culturehq/hooks/-/hooks-0.1.2.tgz","fileCount":13,"unpackedSize":11666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFN9ACRA9TVsSAnZWagAAm40P/3P+I5KApPq04kA/PxDP\nXGkakQnGXJk3BSvEWwzK/tMhZIrlWyE0pXREQ1tvxebTht1CPe5TYdwXNt+q\nzmllMFkr8QX2XrVmpvSLNAxUmCbO7TOVyrC7ypbY45AjaZU/Tix9IvMSlHvs\nOhu7/Kwxg3u8Ib6dHYqXkgHJSafiKmOJ1Zbxg5+4TfpMx5CisWj6znNcXmek\nfIb84bCWEjIek50D8PkVfnZQkrAy8J3sQwK/N2z+9e+acDRvmnFL0Ryy7Hgg\nDnYCVq0C3x7rNzOdgcZuWGh6IdQcvfkYf/wDX75uVXNQq/yG7R/zpsaGGoao\njIEgklWUQSDX68IQrz9S/qeVGqANyKgcyLalJiRkh+8gsEObe6PUhrVF+uX1\nhljSCiNT3UWKf0FpfmHipi8rBEOk6M4gA+uXQ5UjjOvnNWCEHp/SDh5xq3at\nkKZBBdZNjMXe9ce5xoKG3p/3OUz9scrpG0W6QyL3/ez8HUBsXJcJV25PkgTq\nY5iPhGHFyGEezkVcQqn/QYgfoPBrQ2ESCpLuER8ntxC0yFiYm8NCIMvZtWuL\nQqKhG5mlaQI3Zz1E5eVimquUrRvMqrc96S5mgb6joYB+kuCk1l85q9aSs3VC\nOK2mCbDLsbRdjT4m6n4tiowllasbyVo2rEXm8z/NPjdHvmILcD/rwo3h4ihz\nQkkx\r\n=bTTo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk2zSKhGIDVFtc7gp5EB/ibSbvaQMegkVdng+ZvdKM+wIgMBRaokwUrPjUHUtlj+CBguhzpjHTNww9HmVcXrXSjE4="}]},"maintainers":[{"name":"kddeisz","email":"kevin.deisz@gmail.com"}],"_npmUser":{"name":"kddeisz","email":"kevin.deisz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hooks_0.1.2_1561648959596_0.044495109956292245"},"_hasShrinkwrap":false},"0.2.0":{"name":"@culturehq/hooks","version":"0.2.0","description":"A set of reusable react hooks","main":"dist/hooks.js","module":"src/hooks.js","scripts":{"compile":"tsc --project tsconfig.test.json","lint":"chq-scripts lint","prepublishOnly":"rm -rf dist && yarn tsc","test":"chq-scripts test"},"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"license":"MIT","keywords":["react"],"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"homepage":"https://github.com/CultureHQ/hooks#readme","peerDependencies":{"react":">= 16.8","react-dom":">= 16.8"},"devDependencies":{"@babel/cli":"^7.6.0","@babel/core":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/preset-react":"^7.0.0","@babel/preset-typescript":"^7.6.0","@culturehq/scripts":"^4.0.2","@testing-library/react":"^9.1.4","@types/jest":"^24.0.18","@types/react":"^16.9.2","@types/react-dom":"^16.9.0","react":"^16.9.0","react-dom":"^16.9.0","react-test-renderer":"^16.9.0","typescript":"^3.6.2"},"gitHead":"d7af5cc6685d4cb2562102ac582d525f49f69319","_id":"@culturehq/hooks@0.2.0","_nodeVersion":"11.15.0","_npmVersion":"6.10.3","dist":{"integrity":"sha512-iY/3V17tiMywml5oBOcm/ZmOTDBqCs4HI6erOuTbYiECK4TzZmuSR0Pzuozvte1j3bbAXAfOEoGZOtZv5w51gg==","shasum":"4bdc3f0985b2e6a3d7314457e02d34bb6447775e","tarball":"https://registry.npmjs.org/@culturehq/hooks/-/hooks-0.2.0.tgz","fileCount":31,"unpackedSize":21169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd674CRA9TVsSAnZWagAAs7sP/0wuEYptiT1DSFgsLfep\n5A1eEGIC+sBFenVTZlseT0cwrLMs9NFBklnpTMvBELSiSk4g0JsDaUHpXBfY\nLkJciWC2WM1B4L/zUcEWuQnR3D6EUH9f+ZBhBmN8T9V7SeRSc4puGyPP81Sg\nYVkshtKLE4PU0alp2zlWxCv8k2WXz5cSyh+sJX8yiWnJNkjwAv86AjvhyPol\n5xkXgHdiHFh//Uf9DjWfqvudeV6babjN9lfmfFMydbHbhebtQq/omMKqSM2w\npdJhCHcvxpnlndqaPzjHx88g9mFKtqPPBszUWVrpqj4hmw0vO0KhSczqCAGc\nja0m91GWjC2ugIsGjshVVsL6/8d5IIDIG3B1eXQ/b+ClGQUzywAZYMfnPwD8\njowVPqp3khxEvdLvXO5684UDztkFTyKFan5piUEpi213sSZRKrc90GztAEb5\nedP2gtC2qKyzrQrMMoZG2IQYQwQGD8jsA9ZOGoYzaB8o5dd2Jx13qLFXOGfH\n3zSsBhZUudO1Sd3wki93Y4v/ubps+/ZSK7M4xgcS0DhDJVsONYhojkjov6PE\nr+Hvqon1XF6JQPhFlIeVpHTmhFENytLW1GGVjsB6YKkiBhy44BJwWwb9Xyng\nkT3Q6G6ezVfdhDJPq74P6oAmjZ11rpsgEeHv54JawYaewbvgqjrDh91KS7Hu\nGR+3\r\n=Kuci\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEe8mR/Z1t4jem+DY7FxnZ/7Yg9uSlpEopUJf+lTeOvFAiEAl+fcH7mxZHjLFX2I6tFLVb18HtY92GLQj3epLuPoha4="}]},"maintainers":[{"name":"kddeisz","email":"kevin.deisz@gmail.com"}],"_npmUser":{"name":"kddeisz","email":"kevin.deisz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hooks_0.2.0_1568124663816_0.4977698661291534"},"_hasShrinkwrap":false},"0.2.1":{"name":"@culturehq/hooks","version":"0.2.1","description":"A set of reusable react hooks","main":"dist/hooks.js","types":"dist/hooks.d.ts","scripts":{"compile":"tsc --project tsconfig.test.json","lint":"chq-scripts lint","prepublishOnly":"rm -rf dist && yarn tsc","test":"chq-scripts test"},"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"license":"MIT","keywords":["react"],"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"homepage":"https://github.com/CultureHQ/hooks#readme","peerDependencies":{"react":">= 16.8","react-dom":">= 16.8"},"devDependencies":{"@babel/cli":"^7.6.0","@babel/core":"^7.6.0","@babel/preset-env":"^7.6.0","@babel/preset-react":"^7.0.0","@babel/preset-typescript":"^7.6.0","@culturehq/scripts":"^4.0.2","@testing-library/react":"^9.1.4","@types/jest":"^24.0.18","@types/react":"^16.9.2","@types/react-dom":"^16.9.0","react":"^16.9.0","react-dom":"^16.9.0","react-test-renderer":"^16.9.0","typescript":"^3.6.2"},"gitHead":"3fd287e64a75fcb51f3254464fb8cfad0b6d45fa","_id":"@culturehq/hooks@0.2.1","_nodeVersion":"11.15.0","_npmVersion":"6.10.3","dist":{"integrity":"sha512-ZDp2JuTVVd224fd/QELpbqJ41THvqOKMSi74FlXsnAqLeyYv9H8RHiNA+CiUpUeBqWmWEPCT/XXaQdqiaxj+3A==","shasum":"eb6a05c27529f8559742f70c1ba9d86735607088","tarball":"https://registry.npmjs.org/@culturehq/hooks/-/hooks-0.2.1.tgz","fileCount":17,"unpackedSize":14504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd6+4CRA9TVsSAnZWagAA94YP/Rr1fZENejUFbq0J11hx\nUZZhrMdbDlbWiPQ1QwZCpWFHalnR7kuI/rK6kt9w3V27NPCJOoPmxvPnyyvK\nLLVYcYL3FZy3x1YSiHP9Jh0D9bjJuuPnlMlLNs1rIGVkHOlxeF2xQZIR/W6Y\nV26wbMgKvCDlvWmVGn0wd0lZC0NktxscrX+0GlU3ATUg2Zdsh74ttUY5mbSS\nI+Jt/MporJNhCY3dgeXkcv1kYV7W9hvbCJRwFWDe9HAfJjwNiGa7dvZJOUEs\nB359Eb5Y4sRdP3TGt4AplWk7z0iFhgqXWKm5wby70rusEgHjbWic9GqwhhHf\nb0yqMcdW6NU1hqpNp+ka/FKgjrycujBtX0NNdDT5YNWe9xUsYjbCYXzMwh4C\nfhc5i7XXYTqweHg9OJRrU0090kPdJzibj7xrJOGBwYHOR1uQ9KfJEG1+tTmv\nZueiBYEh3n0ffsFm84by49gSF0fd4P3CZCeu+SIqsaG1kRSB09vSvMNgPCSX\nkfOtNp32JG9m+Do979P0CJ5QQRrPAwPiocr3ERwMu9mzsrsnuRKFT3KHZAzK\nglv+F16AZQ/DE3YXeekU+8VYHP/Pq3lVtALzcLii+JmwjGp8b2JQXjC6W0+B\nHPNAUBnznQt9OZ6wh8L3mVXDJYuHkhJJl1lltt/kOqtFT+gSbGbbsvTc0DCa\nQ4Rs\r\n=yGNy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAF7TNBRgMR8IZbKVmlVGAZlG7uA62zBRn4+PwbO55y1AiEA21Ri12o8H54e+W8OkuGOePXzAZkE7p/2L9qCK3wWIx8="}]},"maintainers":[{"name":"kddeisz","email":"kevin.deisz@gmail.com"}],"_npmUser":{"name":"kddeisz","email":"kevin.deisz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hooks_0.2.1_1568124855908_0.8469119890383865"},"_hasShrinkwrap":false}},"time":{"created":"2019-06-25T19:23:20.215Z","0.1.0":"2019-06-25T19:23:20.383Z","modified":"2022-04-05T02:11:15.181Z","0.1.1":"2019-06-27T15:17:13.588Z","0.1.2":"2019-06-27T15:22:39.689Z","0.2.0":"2019-09-10T14:11:03.955Z","0.2.1":"2019-09-10T14:14:16.063Z"},"maintainers":[{"email":"jsantamaria@akurey.com","name":"jsantamaria07"},{"email":"kevin.deisz@gmail.com","name":"kddeisz"}],"description":"A set of reusable react hooks","homepage":"https://github.com/CultureHQ/hooks#readme","keywords":["react"],"repository":{"type":"git","url":"git+https://github.com/CultureHQ/hooks.git"},"author":{"name":"Kevin Deisz"},"bugs":{"url":"https://github.com/CultureHQ/hooks/issues"},"license":"MIT","readme":"# @culturehq/hooks\n\n[![Build Status](https://github.com/CultureHQ/hooks/workflows/Push/badge.svg)](https://github.com/CultureHQ/hooks/actions)\n[![Package Version](https://img.shields.io/npm/v/@culturehq/hooks.svg)](https://www.npmjs.com/package/@culturehq/hooks)\n\nA set of reusable hooks extracted from the [CultureHQ](https://www.culturehq.com) application.\n\n## Getting started\n\nInstall this package through `npm` (`npm install @culturehq/hooks --save`) or `yarn` (`yarn add @culturehq/hooks`). You can then import and use the hooks from within your app.\n\n### `useClickOutside`\n\nUse to hook into when a click event occurs outside of a container. For example, the following code tracks when a user clicks outside of a box to close it.\n\n```javascript\nimport React, { useCallback, useState } from \"react\";\nimport { useClickOutside } from \"@culturehq/hooks\";\n\nconst Box = ({ onClose }) => {\n  const containerRef = useClickOutside(onClose);\n\n  return <div ref={containerRef}>...</div>;\n};\n\nconst App = () => {\n  const [open, setOpen] = useState(false);\n\n  const onOpen = () => setOpen(true);\n  const onClose = useCallback(() => setOpen(false), [setOpen]);\n\n  return (\n    <>\n      <button type=\"button\" onClick={onOpen}>Open</button>\n      {open && <Box onClose={onClose} />}\n    </>\n  );\n};\n```\n\n### `useDocumentEvent`\n\nUse to hook into a `document` event as an effect. For example, the following code tracks when a use hits the spacebar to tell if something should be paused or not.\n\n```javascript\nimport React, { useCallback, useState } from \"react\";\nimport { useDocumentEvent } from \"@culturehq/hooks\";\n\nconst App = () => {\n  const [paused, setPaused] = useState(false);\n\n  useDocumentEvent(\n    \"keydown\",\n    useCallback(\n      event => {\n        if (event.key === \" \") {\n          setPaused(value => !value);\n        }\n      },\n      [setPaused]\n    )\n  );\n\n  return <p>{paused ? \"Paused\" : \"Playing\"}</p>;\n};\n```\n\n### `useEnterPress`\n\nUse to hook into when the user pressed the enter key, for basic confirmations that do not have focus on a button for whatever reason.\n\n```javascript\nimport React, { useCallback, useState } from \"react\";\nimport { useEnterPress } from \"@culturehq/hooks\";\n\nconst App = () => {\n  const [pressed, setPressed] = useState(false);\n\n  useEnterPress(useCallback(() => setPressed(true), []));\n\n  return pressed ? \"Thank you.\" : \"Press the enter key to continue.\";\n};\n```\n\n### `useLazyImport`\n\nUse to code split a large module and only import it once a component has mounted. Can be used for example for a component or a utility module that isn't required on first paint.\n\n```javascript\nimport React from \"react\";\nimport { useLazyImport } from \"@culturehq/hooks\";\n\nimport Spinner from \"./Spinner\";\n\nconst App = () => {\n  const HeavyComponent = useLazyImport(() => import(\"./HeavyComponent\"));\n\n  return HeavyComponent ? <HeavyComponent /> : <Spinner />;\n};\n```\n\n### `useWindowEvent`\n\nUse to hook into a `window` event as an effect. For example, the following code tracks changes to the window width.\n\n```javascript\nimport React, { useCallback, useState } from \"react\";\nimport { useWindowEvent } from \"@culturehq/hooks\";\n\nconst App = () => {\n  const [width, setWidth] = useState(window.innerWidth);\n\n  useWindowEvent(\n    \"resize\",\n    useCallback(() => setWidth(window.innerWidth), [setWidth])\n  );\n\n  return <p>{width}</p>;\n};\n```\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/CultureHQ/hooks.\n\n## License\n\nThe code is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","readmeFilename":"README.md"}