diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue
index 5539c4717..26ef4428b 100644
--- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue
+++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue
@@ -1,10 +1,11 @@
@@ -358,6 +368,7 @@ onMounted(() => {
class="w-full"
@update:selected="updateSelectedItems"
@update:files="handleFilesUpdate"
+ @update:is-open="handleIsOpenUpdate"
/>
diff --git a/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue b/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue
index 670c054a4..9eacbd333 100644
--- a/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue
+++ b/src/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue
@@ -55,6 +55,7 @@ const props = withDefaults(defineProps(), {
searcher: defaultSearcher
})
+const isOpen = defineModel('isOpen', { default: false })
const selected = defineModel>('selected', {
default: new Set()
})
@@ -75,7 +76,6 @@ const isQuerying = ref(false)
const toastStore = useToastStore()
const popoverRef = ref>()
const triggerRef = useTemplateRef('triggerRef')
-const isOpen = ref(false)
const maxSelectable = computed(() => {
if (props.multiple === true) return Infinity
diff --git a/src/stores/outputsStore.ts b/src/stores/outputsStore.ts
deleted file mode 100644
index 98257c1f2..000000000
--- a/src/stores/outputsStore.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { api } from '@/scripts/api'
-import { defineStore } from 'pinia'
-import { computed, ref } from 'vue'
-
-export const useOutputsStore = defineStore('outputs', () => {
- const outputs = ref([])
- const isLoadingOutputFiles = ref(false)
- const thePromise = ref | null>(null)
-
- const outputImages = computed(() => {
- return outputs.value.filter((filename) => {
- const ext = filename.toLowerCase().split('.').pop() || ''
- return ['png', 'jpg', 'jpeg', 'webp', 'gif', 'bmp', 'tiff'].includes(ext)
- })
- })
- const outputVideos = computed(() => {
- return outputs.value.filter((filename) => {
- const ext = filename.toLowerCase().split('.').pop() || ''
- return ['mp4', 'webm', 'mov', 'avi', 'mkv'].includes(ext)
- })
- })
- const outputAudios = computed(() => {
- return outputs.value.filter((filename) => {
- const ext = filename.toLowerCase().split('.').pop() || ''
- return ['mp3', 'ogg', 'wav', 'flac'].includes(ext)
- })
- })
-
- /**
- * Fetch output files from the backend API
- */
- async function _fetchOutputFiles() {
- isLoadingOutputFiles.value = true
- try {
- const response = await fetch(api.internalURL('/files/output'), {
- headers: {
- 'Comfy-User': api.user
- }
- })
-
- if (!response.ok) {
- console.error('Failed to fetch output files:', response.statusText)
- return
- }
-
- outputs.value = await response.json()
- } catch (error) {
- console.error('Error fetching output files:', error)
- } finally {
- isLoadingOutputFiles.value = false
- }
- }
-
- const fetchOutputFiles = async () => {
- if (!thePromise.value) {
- thePromise.value = _fetchOutputFiles()
- thePromise.value.finally(() => {
- thePromise.value = null
- })
- }
- return thePromise.value
- }
-
- return {
- isLoadingOutputFiles,
- outputs,
- fetchOutputFiles,
- outputImages,
- outputVideos,
- outputAudios
- }
-})