mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
refactor: use abort than checker
This commit is contained in:
parent
ec78f36e67
commit
cbac7542ff
2 changed files with 9 additions and 9 deletions
|
|
@ -20,9 +20,9 @@ export function useVisibleNodesGenerator(metaData: MetaData) {
|
|||
// Only run when metadata or accessToken changes
|
||||
useSequentialEffect(
|
||||
useCallback(
|
||||
checker => {
|
||||
shouldAbort => {
|
||||
catchNetworkErrors(async () => {
|
||||
if (!checker()) return
|
||||
if (shouldAbort()) return
|
||||
|
||||
setStateContext('tree-loading')
|
||||
const { userName, repoName, branchName } = metaData
|
||||
|
|
@ -36,7 +36,7 @@ export function useVisibleNodesGenerator(metaData: MetaData) {
|
|||
true,
|
||||
accessToken,
|
||||
)
|
||||
if (!checker()) return
|
||||
if (shouldAbort()) return
|
||||
|
||||
setStateContext('tree-rendering')
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@ import { useEffect } from 'react'
|
|||
* the later effect ends earlier than the previous one, and the previous effect overlaps later effect's result.
|
||||
*/
|
||||
export function useSequentialEffect(
|
||||
effect: (checker: () => boolean) => (() => void | undefined) | void,
|
||||
effect: (shouldAbort: () => boolean) => (() => void | undefined) | void,
|
||||
) {
|
||||
useEffect(() => {
|
||||
// The previous effect should stop running when finding checker returning false.
|
||||
let valid = true
|
||||
const checker = () => valid
|
||||
const defect = effect(checker)
|
||||
// The previous effect should stop running if shouldAbort returns true.
|
||||
let end = false
|
||||
const shouldAbort = () => end
|
||||
const defect = effect(shouldAbort)
|
||||
return () => {
|
||||
valid = false
|
||||
end = true
|
||||
defect?.()
|
||||
}
|
||||
}, [effect])
|
||||
|
|
|
|||
Loading…
Reference in a new issue