diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index 343621e99..71115b068 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -360,17 +360,11 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { } public ngOnChanges() { - this.accounts = (this.user?.accounts ?? []).map((account) => ({ - id: account.id, - name: account.name + this.accounts = (this.user?.accounts ?? []).map(({ id, name }) => ({ + id, + name })) as AccountWithValue[]; - if (this.hasPermissionToChangeFilters) { - this.portfolioFilterFormControl.enable({ emitEvent: false }); - } else { - this.portfolioFilterFormControl.disable({ emitEvent: false }); - } - this.dateRangeOptions = [ { label: $localize`Today`, @@ -438,6 +432,12 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { this.dateRangeFormControl.setValue(this.user?.settings?.dateRange ?? null); + if (this.hasPermissionToChangeFilters) { + this.portfolioFilterFormControl.enable({ emitEvent: false }); + } else { + this.portfolioFilterFormControl.disable({ emitEvent: false }); + } + this.tags = this.user?.tags ?.filter(({ isUsed }) => { @@ -504,6 +504,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { public onApplyFilters() { const filterValue = this.portfolioFilterFormControl.value; + this.filtersChanged.emit([ { id: filterValue?.account, diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html index b9bbe5bfa..a5a22773f 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -172,8 +172,10 @@ [formControl]="dateRangeFormControl" (selectionChange)="onChangeDateRange($event.value)" > - @for (range of dateRangeOptions; track range) { - {{ range.label }} + @for (dateRangeOption of dateRangeOptions; track dateRangeOption) { + {{ + dateRangeOption.label + }} } diff --git a/libs/ui/src/lib/carousel/carousel.component.html b/libs/ui/src/lib/carousel/carousel.component.html index 9cf34fe02..3c0945483 100644 --- a/libs/ui/src/lib/carousel/carousel.component.html +++ b/libs/ui/src/lib/carousel/carousel.component.html @@ -13,7 +13,7 @@
diff --git a/libs/ui/src/lib/portfolio-filter-form/interfaces/portfolio-filter-form-value.interface.ts b/libs/ui/src/lib/portfolio-filter-form/interfaces/portfolio-filter-form-value.interface.ts index 820facb2f..21ff0ae3b 100644 --- a/libs/ui/src/lib/portfolio-filter-form/interfaces/portfolio-filter-form-value.interface.ts +++ b/libs/ui/src/lib/portfolio-filter-form/interfaces/portfolio-filter-form-value.interface.ts @@ -1,8 +1,8 @@ import { PortfolioPosition } from '@ghostfolio/common/interfaces'; export interface PortfolioFilterFormValue { - account: string | null; - assetClass: string | null; - holding: PortfolioPosition | null; - tag: string | null; + account: string; + assetClass: string; + holding: PortfolioPosition; + tag: string; } diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html index 5dde1af12..eceb9ef0a 100644 --- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html +++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html @@ -72,5 +72,5 @@ - + diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts index ed8117a7d..1d55cefd9 100644 --- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts +++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.stories.ts @@ -19,7 +19,7 @@ export const Default: Story = { args: { accounts: [ { - id: '1', + id: '733110b6-7c55-44eb-8cc5-c4c3e9d48a79', name: 'Trading Account', platform: { name: 'Interactive Brokers', @@ -27,7 +27,7 @@ export const Default: Story = { } }, { - id: '2', + id: '24ba27d6-e04b-4fb4-b856-b24c2ef0422a', name: 'Investment Account', platform: { name: 'Fidelity', diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts index 58bfd8a92..c0bd3650f 100644 --- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts +++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts @@ -96,7 +96,7 @@ export class GfPortfolioFilterFormComponent }); } - public hasFilters(): boolean { + public hasFilters() { const formValue = this.filterForm.value; return Object.values(formValue).some((value) => { @@ -107,7 +107,7 @@ export class GfPortfolioFilterFormComponent public holdingComparisonFunction( option: PortfolioPosition, value: PortfolioPosition - ): boolean { + ) { if (value === null) { return false; } @@ -131,26 +131,26 @@ export class GfPortfolioFilterFormComponent this.changeDetectorRef.markForCheck(); } - public onApplyFilters(): void { + public onApplyFilters() { this.filterForm.markAsPristine(); this.onChange(this.filterForm.value as PortfolioFilterFormValue); this.applyFilters.emit(); } - public onResetFilters(): void { + public onResetFilters() { this.filterForm.reset({}, { emitEvent: true }); this.resetFilters.emit(); } - public registerOnChange(fn: (value: PortfolioFilterFormValue) => void): void { + public registerOnChange(fn: (value: PortfolioFilterFormValue) => void) { this.onChange = fn; } - public registerOnTouched(fn: () => void): void { + public registerOnTouched(fn: () => void) { this.onTouched = fn; } - public setDisabledState(isDisabled: boolean): void { + public setDisabledState(isDisabled: boolean) { this.disabled = isDisabled; if (this.disabled) { @@ -162,7 +162,7 @@ export class GfPortfolioFilterFormComponent this.changeDetectorRef.markForCheck(); } - public writeValue(value: PortfolioFilterFormValue | null): void { + public writeValue(value: PortfolioFilterFormValue | null) { if (value) { this.filterForm.setValue( {