diff --git a/src/components/sidebar/tabs/AssetsSidebarTab.vue b/src/components/sidebar/tabs/AssetsSidebarTab.vue index ce661eef009..20d4814c97a 100644 --- a/src/components/sidebar/tabs/AssetsSidebarTab.vue +++ b/src/components/sidebar/tabs/AssetsSidebarTab.vue @@ -237,7 +237,7 @@ import Button from '@/components/ui/button/Button.vue' import MediaAssetContextMenu from '@/platform/assets/components/MediaAssetContextMenu.vue' import MediaAssetFilterBar from '@/platform/assets/components/MediaAssetFilterBar.vue' import { getAssetType } from '@/platform/assets/composables/media/assetMappers' -import { useMediaAssets } from '@/platform/assets/composables/media/useMediaAssets' +import { useAssetsApi } from '@/platform/assets/composables/media/useAssetsApi' import { useAssetSelection } from '@/platform/assets/composables/useAssetSelection' import { useMediaAssetActions } from '@/platform/assets/composables/useMediaAssetActions' import { useMediaAssetFiltering } from '@/platform/assets/composables/useMediaAssetFiltering' @@ -309,8 +309,8 @@ const formattedExecutionTime = computed(() => { const toast = useToast() -const inputAssets = useMediaAssets('input') -const outputAssets = useMediaAssets('output') +const inputAssets = useAssetsApi('input') +const outputAssets = useAssetsApi('output') // Asset selection const { diff --git a/src/platform/assets/composables/media/useInternalFilesApi.ts b/src/platform/assets/composables/media/useInternalFilesApi.ts deleted file mode 100644 index acba1ee8de7..00000000000 --- a/src/platform/assets/composables/media/useInternalFilesApi.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { computed } from 'vue' - -import type { AssetItem } from '@/platform/assets/schemas/assetSchema' -import { useAssetsStore } from '@/stores/assetsStore' - -/** - * Composable for fetching media assets from local environment - * Uses AssetsStore for centralized state management - */ -export function useInternalFilesApi(directory: 'input' | 'output') { - const assetsStore = useAssetsStore() - - const media = computed(() => - directory === 'input' ? assetsStore.inputAssets : assetsStore.historyAssets - ) - - const loading = computed(() => - directory === 'input' - ? assetsStore.inputLoading - : assetsStore.historyLoading - ) - - const error = computed(() => - directory === 'input' ? assetsStore.inputError : assetsStore.historyError - ) - - const fetchMediaList = async (): Promise => { - if (directory === 'input') { - await assetsStore.updateInputs() - return assetsStore.inputAssets - } else { - await assetsStore.updateHistory() - return assetsStore.historyAssets - } - } - - const refresh = () => fetchMediaList() - - const loadMore = async (): Promise => { - if (directory === 'output') { - await assetsStore.loadMoreHistory() - } - } - - const hasMore = computed(() => { - return directory === 'output' ? assetsStore.hasMoreHistory : false - }) - - const isLoadingMore = computed(() => { - return directory === 'output' ? assetsStore.isLoadingMore : false - }) - - return { - media, - loading, - error, - fetchMediaList, - refresh, - loadMore, - hasMore, - isLoadingMore - } -} diff --git a/src/platform/assets/composables/media/useMediaAssets.ts b/src/platform/assets/composables/media/useMediaAssets.ts deleted file mode 100644 index 46bb6111bed..00000000000 --- a/src/platform/assets/composables/media/useMediaAssets.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { isCloud } from '@/platform/distribution/types' - -import type { IAssetsProvider } from './IAssetsProvider' -import { useAssetsApi } from './useAssetsApi' -import { useInternalFilesApi } from './useInternalFilesApi' - -/** - * Factory function that returns the appropriate media assets implementation - * based on the current distribution (cloud vs internal) - * @param directory - The directory to fetch assets from - * @returns IAssetsProvider implementation - */ -export function useMediaAssets(directory: 'input' | 'output'): IAssetsProvider { - return isCloud ? useAssetsApi(directory) : useInternalFilesApi(directory) -} diff --git a/src/renderer/extensions/linearMode/useOutputHistory.test.ts b/src/renderer/extensions/linearMode/useOutputHistory.test.ts index 15826965f02..85371b156a0 100644 --- a/src/renderer/extensions/linearMode/useOutputHistory.test.ts +++ b/src/renderer/extensions/linearMode/useOutputHistory.test.ts @@ -23,8 +23,8 @@ const selectAsLatestFn = vi.fn() const resolveIfReadyFn = vi.fn() const resolvedOutputsCacheRef = new Map() -vi.mock('@/platform/assets/composables/media/useMediaAssets', () => ({ - useMediaAssets: () => ({ +vi.mock('@/platform/assets/composables/media/useAssetsApi', () => ({ + useAssetsApi: () => ({ media: mediaRef, loading: ref(false), error: ref(null), diff --git a/src/renderer/extensions/linearMode/useOutputHistory.ts b/src/renderer/extensions/linearMode/useOutputHistory.ts index c723c977f7d..317c99de5e2 100644 --- a/src/renderer/extensions/linearMode/useOutputHistory.ts +++ b/src/renderer/extensions/linearMode/useOutputHistory.ts @@ -3,7 +3,7 @@ import type { ComputedRef } from 'vue' import { computed, ref, watchEffect } from 'vue' import type { IAssetsProvider } from '@/platform/assets/composables/media/IAssetsProvider' -import { useMediaAssets } from '@/platform/assets/composables/media/useMediaAssets' +import { useAssetsApi } from '@/platform/assets/composables/media/useAssetsApi' import { getOutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema' import type { AssetItem } from '@/platform/assets/schemas/assetSchema' import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' @@ -25,7 +25,7 @@ export function useOutputHistory(): { isWorkflowActive: ComputedRef cancelActiveWorkflowJobs: () => Promise } { - const backingOutputs = useMediaAssets('output') + const backingOutputs = useAssetsApi('output') void backingOutputs.fetchMediaList() const linearStore = useLinearOutputStore() const workflowStore = useWorkflowStore() diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts index deab2185137..fc485a4091c 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts @@ -69,8 +69,8 @@ const { mockMediaAssets } = vi.hoisted(() => { } }) -vi.mock('@/platform/assets/composables/media/useMediaAssets', () => ({ - useMediaAssets: () => mockMediaAssets +vi.mock('@/platform/assets/composables/media/useAssetsApi', () => ({ + useAssetsApi: () => mockMediaAssets })) vi.mock('@/platform/assets/utils/outputAssetUtil', () => ({ diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue index 970124615e5..541ac04a3ba 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue @@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n' import { useTransformCompatOverlayProps } from '@/composables/useTransformCompatOverlayProps' import { SUPPORTED_EXTENSIONS_ACCEPT } from '@/extensions/core/load3d/constants' -import { useMediaAssets } from '@/platform/assets/composables/media/useMediaAssets' +import { useAssetsApi } from '@/platform/assets/composables/media/useAssetsApi' import FormDropdown from '@/renderer/extensions/vueNodes/widgets/components/form/dropdown/FormDropdown.vue' import { AssetKindKey } from '@/renderer/extensions/vueNodes/widgets/components/form/dropdown/types' import type { LayoutMode } from '@/renderer/extensions/vueNodes/widgets/components/form/dropdown/types' @@ -47,7 +47,7 @@ const modelValue = defineModel({ const { t } = useI18n() -const outputMediaAssets = useMediaAssets('output') +const outputMediaAssets = useAssetsApi('output') const transformCompatProps = useTransformCompatOverlayProps() diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.test.ts index 5b6bff01450..4c688642dd5 100644 --- a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.test.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.test.ts @@ -37,8 +37,8 @@ function createMockMediaAssets() { let mockMediaAssets = createMockMediaAssets() -vi.mock('@/platform/assets/composables/media/useMediaAssets', () => ({ - useMediaAssets: () => mockMediaAssets +vi.mock('@/platform/assets/composables/media/useAssetsApi', () => ({ + useAssetsApi: () => mockMediaAssets })) vi.mock('@/platform/assets/composables/useAssetFilterOptions', () => ({ diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.ts b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.ts index 8450bb0f467..12c1584d79a 100644 --- a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetSelectItems.ts @@ -25,7 +25,7 @@ import type { useAssetWidgetData } from '@/renderer/extensions/vueNodes/widgets/ import { getOutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema' import type { AssetItem } from '@/platform/assets/schemas/assetSchema' import { resolveOutputAssetItems } from '@/platform/assets/utils/outputAssetUtil' -import type { useMediaAssets } from '@/platform/assets/composables/media/useMediaAssets' +import type { IAssetsProvider } from '@/platform/assets/composables/media/IAssetsProvider' import type { AssetKind } from '@/types/widgetTypes' import { getMediaTypeFromFilename } from '@/utils/formatUtil' @@ -65,7 +65,7 @@ interface UseWidgetSelectItemsOptions { > modelValue: Ref assetKind: MaybeRefOrGetter - outputMediaAssets: ReturnType + outputMediaAssets: IAssetsProvider assetData: ReturnType | null isAssetMode: MaybeRefOrGetter }