refactor: useEvent

This commit is contained in:
EnixCoda 2019-11-16 14:48:00 +08:00
parent e09935230d
commit a642a701d0
No known key found for this signature in database
GPG key ID: 0C1A07377913A1DD

View file

@ -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 (
<div className={'description'}>