diff --git a/frontend/src/concepts/pipelines/content/pipelineSelector/useCreateSelectors.ts b/frontend/src/concepts/pipelines/content/pipelineSelector/useCreateSelectors.ts index 1b44d6f898..7843ed6aac 100644 --- a/frontend/src/concepts/pipelines/content/pipelineSelector/useCreateSelectors.ts +++ b/frontend/src/concepts/pipelines/content/pipelineSelector/useCreateSelectors.ts @@ -18,6 +18,8 @@ import { ExperimentKFv2, PipelineCoreResourceKFv2, PipelineKFv2, + PipelinesFilterOp, + StorageStateKF, } from '~/concepts/pipelines/kfTypes'; import { PipelineListPaged } from '~/concepts/pipelines/types'; import { FetchState } from '~/utilities/useFetchState'; @@ -38,18 +40,39 @@ type UsePipelineSelectorData = { }; export const getExperimentSelector = - (useTable: typeof useExperimentTable) => (): UsePipelineSelectorData => { + (useTable: typeof useExperimentTable, storageState?: StorageStateKF) => + (): UsePipelineSelectorData => { const experimentsTable = useTable(); const [[{ items: initialData, nextPageToken: initialPageToken }, loaded]] = experimentsTable; - return useCreateSelector( - experimentsTable, - useExperimentLoadMore({ initialData, initialPageToken, loaded }), + + return useCreateSelector(experimentsTable, () => + useExperimentLoadMore({ + initialData, + initialPageToken, + loaded, + })({ + ...(storageState && { + filter: { + predicates: [ + { + key: 'storage_state', + operation: PipelinesFilterOp.EQUALS, + // eslint-disable-next-line camelcase + string_value: storageState, + }, + ], + }, + }), + }), ); }; export const useAllExperimentSelector = getExperimentSelector(useExperimentTable); -export const useActiveExperimentSelector = getExperimentSelector(useActiveExperimentTable); +export const useActiveExperimentSelector = getExperimentSelector( + useActiveExperimentTable, + StorageStateKF.AVAILABLE, +); export const usePipelineSelector = (): UsePipelineSelectorData => { const pipelinesTable = usePipelinesTable();