diff options
Diffstat (limited to 'app/assets/javascripts/import_entities/import_projects/store/getters.js')
-rw-r--r-- | app/assets/javascripts/import_entities/import_projects/store/getters.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/assets/javascripts/import_entities/import_projects/store/getters.js b/app/assets/javascripts/import_entities/import_projects/store/getters.js new file mode 100644 index 00000000000..31e22b50554 --- /dev/null +++ b/app/assets/javascripts/import_entities/import_projects/store/getters.js @@ -0,0 +1,30 @@ +import { STATUSES } from '../../constants'; +import { isProjectImportable, isIncompatible } from '../utils'; + +export const isLoading = state => state.isLoadingRepos || state.isLoadingNamespaces; + +export const isImportingAnyRepo = state => + state.repositories.some(repo => + [STATUSES.SCHEDULING, STATUSES.SCHEDULED, STATUSES.STARTED].includes( + repo.importedProject?.importStatus, + ), + ); + +export const hasIncompatibleRepos = state => state.repositories.some(isIncompatible); + +export const hasImportableRepos = state => state.repositories.some(isProjectImportable); + +export const importAllCount = state => state.repositories.filter(isProjectImportable).length; + +export const getImportTarget = state => repoId => { + if (state.customImportTargets[repoId]) { + return state.customImportTargets[repoId]; + } + + const repo = state.repositories.find(r => r.importSource.id === repoId); + + return { + newName: repo.importSource.sanitizedName, + targetNamespace: state.defaultTargetNamespace, + }; +}; |