From 262fa679d9b78aa3b341b2cb5e611c712fe3e4e5 Mon Sep 17 00:00:00 2001 From: visrut Date: Sat, 20 May 2023 14:18:09 +0530 Subject: [PATCH] refactor: import step, allowed to return to start over --- .../import-activities-dialog/enums/enums.ts | 4 + .../import-activities-dialog.component.ts | 22 ++-- .../import-activities-dialog.html | 118 ++++++++++-------- .../import-activities-dialog.scss | 12 -- 4 files changed, 82 insertions(+), 74 deletions(-) create mode 100644 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/enums/enums.ts diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/enums/enums.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/enums/enums.ts new file mode 100644 index 000000000..35f2276c8 --- /dev/null +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/enums/enums.ts @@ -0,0 +1,4 @@ +export enum ImportStep { + UPLOAD_FILE = 0, + SELECT_ACTIVITIES = 1 +} diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index 1cf9b06d0..d8f2b75ba 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -16,13 +16,11 @@ import { Position } from '@ghostfolio/common/interfaces'; import { AssetClass } from '@prisma/client'; import { isArray, sortBy } from 'lodash'; import { Subject, takeUntil } from 'rxjs'; +import { ImportStep } from './enums/enums'; import { ImportActivitiesDialogParams } from './interfaces/interfaces'; - -enum FileStatus { - SELECT = 0, - UPLOADED -} +import { StepperSelectionEvent } from '@angular/cdk/stepper'; +import { MatStepper } from '@angular/material/stepper'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -36,12 +34,12 @@ export class ImportActivitiesDialog implements OnDestroy { public details: any[] = []; public errorMessages: string[] = []; public holdings: Position[] = []; + public importStep: ImportStep = ImportStep.UPLOAD_FILE; public isFileSelected = false; public maxSafeInteger = Number.MAX_SAFE_INTEGER; public mode: 'DIVIDEND'; public selectedActivities: Activity[] = []; public uniqueAssetForm: FormGroup; - public fileStatus: FileStatus = FileStatus.SELECT; private unsubscribeSubject = new Subject(); @@ -148,6 +146,16 @@ export class ImportActivitiesDialog implements OnDestroy { this.isFileSelected = false; } + public onImportStepChange(event: StepperSelectionEvent) { + if (event.selectedIndex === ImportStep.UPLOAD_FILE) { + this.importStep = ImportStep.UPLOAD_FILE; + this.isFileSelected = false; + } else if (event.selectedIndex === ImportStep.SELECT_ACTIVITIES) { + this.importStep = ImportStep.SELECT_ACTIVITIES; + this.isFileSelected = true; + } + } + public onSelectFile() { const input = document.createElement('input'); input.accept = 'application/JSON, .csv'; @@ -232,9 +240,9 @@ export class ImportActivitiesDialog implements OnDestroy { }); } finally { this.isFileSelected = true; + this.importStep = ImportStep.SELECT_ACTIVITIES; this.snackBar.dismiss(); this.changeDetectorRef.markForCheck(); - this.fileStatus = FileStatus.UPLOADED; } }; }; diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html index 38dba25c0..55ef730e0 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -4,14 +4,23 @@ [title]="errorMessages.length === 0 ? 'Import Activities' : 'Import Activities Error'" (closeButtonClicked)="onCancel()" > -
- - + + + + + + + +
@@ -68,56 +77,55 @@ - - - - - - - - - - -
-
- -
-
{{ message }}
-
-
-
-
{{ details[i] | json }}
-
-
-
- -
-
+ + + + + + + + + +
+
+ +
+
{{ message }}
+
+
+
+
{{ details[i] | json }}
+
+
+
+ +
+
diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss index 61644b1ee..49b40947d 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss @@ -17,16 +17,4 @@ } } } - - .mat-stepper-horizontal { - margin-top: 8px; - } - - .mat-mdc-form-field { - margin-top: 16px; - } - - ::ng-deep .mat-horizontal-stepper-header { - pointer-events: none !important; - } }