feat: publish HoloLake model-native living system source
This commit is contained in:
parent
6ad10edde1
commit
c395dd3a99
2467 changed files with 615073 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
import { useCallback, useState } from 'react'
|
||||
import { clearPrefetchCache } from './useTabManagement'
|
||||
import { resetVaultState, type VaultStateResetOptions } from './vaultStateReset'
|
||||
|
||||
interface UnavailableVaultStateOptions extends VaultStateResetOptions {
|
||||
isCurrentVaultPath: (path: string) => boolean
|
||||
vaultPath: string
|
||||
}
|
||||
|
||||
export function useUnavailableVaultState(options: UnavailableVaultStateOptions) {
|
||||
const [unavailableVaultPath, setUnavailableVaultPath] = useState<string | null>(null)
|
||||
const {
|
||||
clearNewPaths,
|
||||
clearUnsaved,
|
||||
isCurrentVaultPath,
|
||||
setEntries,
|
||||
setFolders,
|
||||
setIsLoading,
|
||||
setModifiedFiles,
|
||||
setModifiedFilesError,
|
||||
setViews,
|
||||
vaultPath,
|
||||
} = options
|
||||
|
||||
const markVaultUnavailable = useCallback((path: string) => {
|
||||
if (!isCurrentVaultPath(path)) return
|
||||
clearPrefetchCache()
|
||||
resetVaultState({
|
||||
clearNewPaths,
|
||||
clearUnsaved,
|
||||
setEntries,
|
||||
setFolders,
|
||||
setIsLoading,
|
||||
setModifiedFiles,
|
||||
setModifiedFilesError,
|
||||
setViews,
|
||||
})
|
||||
setUnavailableVaultPath(path)
|
||||
}, [
|
||||
clearNewPaths,
|
||||
clearUnsaved,
|
||||
isCurrentVaultPath,
|
||||
setEntries,
|
||||
setFolders,
|
||||
setIsLoading,
|
||||
setModifiedFiles,
|
||||
setModifiedFilesError,
|
||||
setViews,
|
||||
])
|
||||
|
||||
const markVaultAvailable = useCallback((path: string) => {
|
||||
if (isCurrentVaultPath(path)) setUnavailableVaultPath(null)
|
||||
}, [isCurrentVaultPath])
|
||||
|
||||
return {
|
||||
markVaultAvailable,
|
||||
markVaultUnavailable,
|
||||
unavailableVaultPath: unavailableVaultPath === vaultPath ? unavailableVaultPath : null,
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue