From a642a701d03bc9df7c5a9d0afd043b4da2d8e028 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Sat, 16 Nov 2019 14:48:00 +0800 Subject: [PATCH] refactor: useEvent --- src/components/SideBar.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/SideBar.tsx b/src/components/SideBar.tsx index ecdbee6..82bdbdc 100644 --- a/src/components/SideBar.tsx +++ b/src/components/SideBar.tsx @@ -143,13 +143,19 @@ RawGitako.defaultProps = { export const SideBar = connect(SideBarCore)(RawGitako) -function useOnPJAXComplete(onPJAXComplete: () => void, deps: React.DependencyList = []) { +function useEvent< + T extends { + addEventListener: Function + } +>(target: T, event: string, callback: () => void, deps: React.DependencyList = []) { React.useEffect(() => { - window.addEventListener('pjax:complete', onPJAXComplete) - return () => window.removeEventListener('pjax:complete', onPJAXComplete) - }, [onPJAXComplete, ...deps]) + window.addEventListener('pjax:complete', callback) + return () => window.removeEventListener('pjax:complete', callback) + }, [callback, ...deps]) } +const useOnPJAXComplete = useEvent.bind(null, window, 'pjax:complete') + function renderAccessDeniedError() { return (