From 52ba57b408e9fb471b0c4a640702beb38d2cbb87 Mon Sep 17 00:00:00 2001 From: KenTandrian Date: Mon, 9 Jun 2025 22:57:45 +0700 Subject: [PATCH] feat(lib): resolve comments --- .../assistant-list-item.component.ts | 9 +++-- .../assistant-list-item.html | 2 +- .../src/lib/assistant/assistant.component.ts | 40 ++++++++++--------- libs/ui/src/lib/assistant/assistant.html | 35 ++++++++-------- .../lib/assistant/interfaces/interfaces.ts | 10 ++--- 5 files changed, 50 insertions(+), 46 deletions(-) diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts index ac94a3ee6..457df01ff 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts @@ -74,11 +74,12 @@ export class GfAssistantListItemComponent this.changeDetectorRef.markForCheck(); } - public isAssetProfileOrHoldingItem( - item: ISearchResultItem - ): item is IAssetSearchResultItem { + public isAsset(item: ISearchResultItem): item is IAssetSearchResultItem { return ( - item.mode === SearchMode.ASSET_PROFILE || item.mode === SearchMode.HOLDING + (item.mode === SearchMode.ASSET_PROFILE || + item.mode === SearchMode.HOLDING) && + !!item.dataSource && + !!item.symbol ); } diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html index 7721e507f..09465b669 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html @@ -7,7 +7,7 @@ >{{ item?.name }} - @if (item && isAssetProfileOrHoldingItem(item)) { + @if (item && isAsset(item)) {
{{ item?.symbol | gfSymbol }} ยท {{ item?.currency }} diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index f627406b4..f173e2b85 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -210,6 +210,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { holdings: [], quickLinks: [] } as ISearchResults; + if (!searchTerm) { return of(results).pipe( tap(() => { @@ -222,17 +223,6 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ); } - // QuickLinks - const quickLinksData = this.searchQuickLinks(searchTerm); - const quickLinks$: Observable> = of({ - quickLinks: quickLinksData - }).pipe( - tap(() => { - this.isLoading.quickLinks = false; - this.changeDetectorRef.markForCheck(); - }) - ); - // Asset Profiles const assetProfiles$: Observable> = this .hasPermissionToAccessAdminControl @@ -280,6 +270,18 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { this.changeDetectorRef.markForCheck(); }) ); + + // QuickLinks + const quickLinksData = this.searchQuickLinks(searchTerm); + const quickLinks$: Observable> = of({ + quickLinks: quickLinksData + }).pipe( + tap(() => { + this.isLoading.quickLinks = false; + this.changeDetectorRef.markForCheck(); + }) + ); + // Merge all results return merge(quickLinks$, assetProfiles$, holdings$).pipe( scan( @@ -599,11 +601,11 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { } private searchQuickLinks(aSearchTerm: string): ISearchResultItem[] { - const term = aSearchTerm.toLowerCase(); + const searchTerm = aSearchTerm.toLowerCase(); const allRoutes = Object.values(internalRoutes) - .filter((route) => { - return !route.excludeFromAssistant; + .filter(({ excludeFromAssistant }) => { + return !excludeFromAssistant; }) .reduce((acc, route) => { acc.push(route); @@ -614,14 +616,14 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { }, [] as IRoute[]); return allRoutes - .filter((route) => { - return route.title.toLowerCase().includes(term); + .filter(({ title }) => { + return title.toLowerCase().includes(searchTerm); }) - .map((route) => { + .map(({ routerLink, title }) => { return { + routerLink, mode: SearchMode.QUICK_LINK as const, - name: route.title, - routerLink: route.routerLink + name: title }; }) .sort((a, b) => { diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html index f885645a3..eac14fdd5 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -40,15 +40,18 @@ *ngIf="searchFormControl.value" class="overflow-auto py-3 result-container" > -
-
Holdings
+
+
Quick Links
- - @if (isLoading.holdings) { + + @if (isLoading.quickLinks) { - } @else { -
No entries...
}
-
-
Asset Profiles
+
+
Holdings
- - @if (isLoading.assetProfiles) { + + @if (isLoading.holdings) {
-
-
Quick Links
+
+
Asset Profiles
- - @if (isLoading.quickLinks) { + + @if (isLoading.assetProfiles) {