mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
Auto-expand model library tree on search (#1357)
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
class="model-lib-search-box p-4"
|
class="model-lib-search-box p-4"
|
||||||
v-model:modelValue="searchQuery"
|
v-model:modelValue="searchQuery"
|
||||||
:placeholder="$t('searchModels') + '...'"
|
:placeholder="$t('searchModels') + '...'"
|
||||||
|
@search="handleSearch"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #body>
|
<template #body>
|
||||||
@@ -60,7 +61,7 @@ import type {
|
|||||||
RenderedTreeExplorerNode,
|
RenderedTreeExplorerNode,
|
||||||
TreeExplorerNode
|
TreeExplorerNode
|
||||||
} from '@/types/treeExplorerTypes'
|
} from '@/types/treeExplorerTypes'
|
||||||
import { computed, ref, watch, toRef, onMounted } from 'vue'
|
import { computed, ref, watch, toRef, onMounted, nextTick } from 'vue'
|
||||||
import type { TreeNode } from 'primevue/treenode'
|
import type { TreeNode } from 'primevue/treenode'
|
||||||
import { app } from '@/scripts/app'
|
import { app } from '@/scripts/app'
|
||||||
import { buildTree } from '@/utils/treeUtil'
|
import { buildTree } from '@/utils/treeUtil'
|
||||||
@@ -69,17 +70,26 @@ const modelToNodeStore = useModelToNodeStore()
|
|||||||
const settingStore = useSettingStore()
|
const settingStore = useSettingStore()
|
||||||
const searchQuery = ref<string>('')
|
const searchQuery = ref<string>('')
|
||||||
const expandedKeys = ref<Record<string, boolean>>({})
|
const expandedKeys = ref<Record<string, boolean>>({})
|
||||||
const { toggleNodeOnEvent } = useTreeExpansion(expandedKeys)
|
const { expandNode, toggleNodeOnEvent } = useTreeExpansion(expandedKeys)
|
||||||
|
|
||||||
const filteredModels = computed<ComfyModelDef[]>(() => {
|
const filteredModels = ref<ComfyModelDef[]>([])
|
||||||
if (searchQuery.value) {
|
const handleSearch = async (query: string) => {
|
||||||
const search = searchQuery.value.toLocaleLowerCase()
|
if (!query) {
|
||||||
return modelStore.models.filter((model: ComfyModelDef) => {
|
filteredModels.value = modelStore.models
|
||||||
return model.searchable.includes(search)
|
expandedKeys.value = {}
|
||||||
})
|
return
|
||||||
}
|
}
|
||||||
return modelStore.models
|
// Load all models to ensure we have the latest data
|
||||||
})
|
await modelStore.loadModels()
|
||||||
|
const search = query.toLocaleLowerCase()
|
||||||
|
filteredModels.value = modelStore.models.filter((model: ComfyModelDef) => {
|
||||||
|
return model.searchable.includes(search)
|
||||||
|
})
|
||||||
|
|
||||||
|
nextTick(() => {
|
||||||
|
expandNode(root.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
type ModelOrFolder = ComfyModelDef | ModelFolder
|
type ModelOrFolder = ComfyModelDef | ModelFolder
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user