refactor(files): Organize event subscriptions

Signed-off-by: Christopher Ng <chrng8@gmail.com>
This commit is contained in:
Christopher Ng 2024-08-13 11:25:47 -07:00 committed by Andy Scherzinger
parent 957f7c113e
commit 97b2f97f94
No known key found for this signature in database
GPG key ID: 6CADC7E3523C308B

View file

@ -36,7 +36,7 @@ const queue = new PQueue({ concurrency: 5, intervalCap: 5, interval: 200 })
const registerQueue = new PQueue({ concurrency: 5, intervalCap: 5, interval: 200 })
const registerTreeNodes = async (path: string = '/') => {
const registerTreeChildren = async (path: string = '/') => {
await queue.add(async () => {
const nodes = await getFolderTreeNodes(path)
const promises = nodes.map(node => registerQueue.add(() => registerTreeNodeView(node)))
@ -52,7 +52,7 @@ const getLoadChildViews = (node: TreeNode | Folder) => {
}
// @ts-expect-error Custom property
view.loading = true
await registerTreeNodes(node.path)
await registerTreeChildren(node.path)
// @ts-expect-error Custom property
view.loading = false
// @ts-expect-error Custom property
@ -168,13 +168,13 @@ const onMoveNode = ({ node, oldSource }) => {
const onUserConfigUpdated = async ({ key, value }) => {
if (key === 'show_hidden') {
showHiddenFiles = value
await registerTreeNodes()
await registerTreeChildren()
// @ts-expect-error No payload
emit('files:folder-tree:initialized')
}
}
const registerFolderTreeRoot = () => {
const registerTreeRoot = () => {
Navigation.register(new View({
id: folderTreeId,
@ -188,8 +188,12 @@ const registerFolderTreeRoot = () => {
}))
}
const registerFolderTreeChildren = async () => {
await registerTreeNodes()
export const registerFolderTreeView = async () => {
if (!isFolderTreeEnabled) {
return
}
registerTreeRoot()
await registerTreeChildren()
subscribe('files:node:created', onCreateNode)
subscribe('files:node:deleted', onDeleteNode)
subscribe('files:node:moved', onMoveNode)
@ -197,11 +201,3 @@ const registerFolderTreeChildren = async () => {
// @ts-expect-error No payload
emit('files:folder-tree:initialized')
}
export const registerFolderTreeView = async () => {
if (!isFolderTreeEnabled) {
return
}
registerFolderTreeRoot()
await registerFolderTreeChildren()
}