summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/import_entities/import_projects/store/getters.js
diff options
context:
space:
mode:
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.js30
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,
+ };
+};