mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-26 08:51:20 -08:00
refactor(core): CORE-14 split typed settings and scope tree lifetimes
This commit is contained in:
1 parent
697817eceb
commit
64d1939daa
51 files changed
+28144
-1519
No files matched your search
@@ -0,0 +1,22 @@
|
||||
import type ResourceScope from '../lifecycle/scope'
|
||||
|
||||
const pauses = new WeakMap<ResourceScope, number>()
|
||||
|
||||
export function settingScopeActive(scope: ResourceScope): boolean {
|
||||
return !scope.closed && !pauses.get(scope)
|
||||
}
|
||||
|
||||
export function pauseSettingScope(scope: ResourceScope): () => void {
|
||||
pauses.set(scope, (pauses.get(scope) || 0) + 1)
|
||||
let paused = true
|
||||
return () => {
|
||||
if (!paused)
|
||||
return
|
||||
paused = false
|
||||
const count = (pauses.get(scope) || 1) - 1
|
||||
if (count)
|
||||
pauses.set(scope, count)
|
||||
else
|
||||
pauses.delete(scope)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user