From 7915c745258e10e2e754de400a69ccec4bec6167 Mon Sep 17 00:00:00 2001 From: unix Date: Wed, 25 Mar 2020 02:35:20 +0800 Subject: [PATCH] feat: add click any where hooks --- components/utils/use-click-anywhere.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 components/utils/use-click-anywhere.ts diff --git a/components/utils/use-click-anywhere.ts b/components/utils/use-click-anywhere.ts new file mode 100644 index 0000000..5b717db --- /dev/null +++ b/components/utils/use-click-anywhere.ts @@ -0,0 +1,14 @@ +import { useEffect } from 'react' + +const useClickAnyWhere = ( + handler: (event: Event) => void, +) => { + useEffect(() => { + const callback = (event: Event) => handler(event) + + document.addEventListener('click', callback) + return () => document.removeEventListener('click', callback) + }, [handler]) +} + +export default useClickAnyWhere