mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
refactor: extract onPJAXEnd
This commit is contained in:
parent
be6d95355c
commit
2c4af43485
2 changed files with 17 additions and 24 deletions
|
|
@ -16,6 +16,7 @@ import * as DOMHelper from 'utils/DOMHelper'
|
|||
import { JSONRequest, parseURLSearch } from 'utils/general'
|
||||
import { useDidUpdate } from 'utils/hooks'
|
||||
import * as keyHelper from 'utils/keyHelper'
|
||||
import * as URLHelper from 'utils/URLHelper'
|
||||
|
||||
const RawGitako: React.FC<Props & ConnectorState> = function RawGitako(props) {
|
||||
const configContext = useConfigs()
|
||||
|
|
@ -50,16 +51,26 @@ const RawGitako: React.FC<Props & ConnectorState> = function RawGitako(props) {
|
|||
return () => window.removeEventListener('keydown', onKeyDown)
|
||||
}, [props.disabled, onKeyDown])
|
||||
|
||||
const onPJAXEnd = React.useCallback(() => {
|
||||
DOMHelper.unmountTopProgressBar()
|
||||
const mergedMetaData = { ...props.metaData, ...URLHelper.parse() }
|
||||
props.setMetaData(mergedMetaData)
|
||||
|
||||
if (configContext.val.intelligentToggle === null) {
|
||||
props.setShouldShow(URLHelper.isInCodePage(mergedMetaData))
|
||||
}
|
||||
}, [props.metaData, configContext.val.intelligentToggle])
|
||||
|
||||
React.useEffect(() => {
|
||||
if (props.disabled) return
|
||||
window.addEventListener('pjax:complete', props.onPJAXEnd)
|
||||
return () => window.removeEventListener('pjax:complete', props.onPJAXEnd)
|
||||
}, [props.disabled])
|
||||
window.addEventListener('pjax:complete', onPJAXEnd)
|
||||
return () => window.removeEventListener('pjax:complete', onPJAXEnd)
|
||||
}, [props.disabled, onPJAXEnd])
|
||||
|
||||
React.useEffect(() => {
|
||||
const { copyFileButton, copySnippetButton } = configContext.val
|
||||
DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton })
|
||||
}, [])
|
||||
}, [props.metaData])
|
||||
|
||||
// init again when setting new accessToken
|
||||
useDidUpdate(() => props.init(), [accessToken])
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ export type ConnectorState = {
|
|||
initializingPromise: Promise<void> | null
|
||||
} & {
|
||||
init: GetCreatedMethod<typeof init>
|
||||
onPJAXEnd: GetCreatedMethod<typeof onPJAXEnd>
|
||||
setMetaData: GetCreatedMethod<typeof setMetaData>
|
||||
setShouldShow: GetCreatedMethod<typeof setShouldShow>
|
||||
toggleShowSideBar: GetCreatedMethod<typeof toggleShowSideBar>
|
||||
toggleShowSettings: GetCreatedMethod<typeof toggleShowSettings>
|
||||
} & {
|
||||
|
|
@ -146,25 +147,6 @@ export const handleError: BoundMethodCreator<[Error]> = dispatch => async err =>
|
|||
}
|
||||
}
|
||||
|
||||
export const onPJAXEnd: BoundMethodCreator = dispatch => () => {
|
||||
const [
|
||||
{ metaData },
|
||||
{
|
||||
configContext: {
|
||||
val: { intelligentToggle, copyFileButton, copySnippetButton },
|
||||
},
|
||||
},
|
||||
] = dispatch.get()
|
||||
DOMHelper.unmountTopProgressBar()
|
||||
DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton })
|
||||
const mergedMetaData = { ...metaData, ...URLHelper.parse() }
|
||||
dispatch.call(setMetaData, mergedMetaData)
|
||||
|
||||
if (intelligentToggle === null) {
|
||||
dispatch.call(setShouldShow, URLHelper.isInCodePage(mergedMetaData))
|
||||
}
|
||||
}
|
||||
|
||||
export const toggleShowSideBar: BoundMethodCreator = dispatch => () => {
|
||||
const [{ shouldShow }, { configContext }] = dispatch.get()
|
||||
dispatch.call(setShouldShow, !shouldShow)
|
||||
|
|
|
|||
Loading…
Reference in a new issue