From 4049109ffdce7632323618285d58903446c1f7ed Mon Sep 17 00:00:00 2001 From: 4gray Date: Sat, 14 Feb 2026 16:22:08 +0100 Subject: [PATCH] refactor(stalker): optimize imports and sorting functions for better performance --- .../stores/features/with-stalker-series.feature.ts | 10 ++++++---- .../src/app/stalker/stores/utils/stalker-sorting.ts | 5 ++--- .../category-content-view.component.ts | 6 ++---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/web/src/app/stalker/stores/features/with-stalker-series.feature.ts b/apps/web/src/app/stalker/stores/features/with-stalker-series.feature.ts index 4a96502b9..7e9a5c4e5 100644 --- a/apps/web/src/app/stalker/stores/features/with-stalker-series.feature.ts +++ b/apps/web/src/app/stalker/stores/features/with-stalker-series.feature.ts @@ -1,4 +1,4 @@ -import { computed, inject } from '@angular/core'; +import { computed, inject, resource } from '@angular/core'; import { patchState, signalStoreFeature, @@ -13,10 +13,12 @@ import { StalkerVodSeriesEpisode, StalkerVodSeriesSeason, } from '../../models'; -import { sortEpisodesByNumber } from '../utils'; -import { resource } from '@angular/core'; import { StalkerContentTypes } from '../../stalker-content-types'; -import { sortByNumericValue, sortVodSeriesSeasonsByNumber } from '../utils'; +import { + sortByNumericValue, + sortEpisodesByNumber, + sortVodSeriesSeasonsByNumber, +} from '../utils'; import { createLogger } from '../../../shared/utils/logger'; /** diff --git a/apps/web/src/app/stalker/stores/utils/stalker-sorting.ts b/apps/web/src/app/stalker/stores/utils/stalker-sorting.ts index f0078938b..75e693fa7 100644 --- a/apps/web/src/app/stalker/stores/utils/stalker-sorting.ts +++ b/apps/web/src/app/stalker/stores/utils/stalker-sorting.ts @@ -15,7 +15,7 @@ export function extractNumericValue(str: string): number { export function sortByNumericValue(array: StalkerSeason[]): StalkerSeason[] { if (!array) return []; const key = 'name'; - return array.sort((a, b) => { + return [...array].sort((a, b) => { const numericA = extractNumericValue(a[key]); const numericB = extractNumericValue(b[key]); return numericA - numericB; @@ -40,10 +40,9 @@ export function sortEpisodesByNumber( episodes: StalkerVodSeriesEpisode[] ): StalkerVodSeriesEpisode[] { if (!episodes) return []; - return episodes.sort((a, b) => { + return [...episodes].sort((a, b) => { const numA = Number(a.series_number ?? 0) || 0; const numB = Number(b.series_number ?? 0) || 0; return numA - numB; }); } - diff --git a/apps/web/src/app/xtream-tauri/category-content-view/category-content-view.component.ts b/apps/web/src/app/xtream-tauri/category-content-view/category-content-view.component.ts index e6a5c5ef1..d82add385 100644 --- a/apps/web/src/app/xtream-tauri/category-content-view/category-content-view.component.ts +++ b/apps/web/src/app/xtream-tauri/category-content-view/category-content-view.component.ts @@ -22,14 +22,12 @@ import { createPortalFavoritesResource, createRefreshTrigger, isSelectedStalkerVodFavorite, + normalizeStalkerEntityId, + normalizeStalkerEntityIdAsNumber, toggleStalkerVodFavorite, } from '../../stalker/stalker-vod.utils'; import { createLogger } from '../../shared/utils/logger'; import { DownloadsService } from '../../services/downloads.service'; -import { - normalizeStalkerEntityId, - normalizeStalkerEntityIdAsNumber, -} from '../../stalker/stalker-vod.utils'; @Component({ selector: 'app-category-content-view',