From 820fbef12170fd60a1437d0de8370d5c989adc1d Mon Sep 17 00:00:00 2001 From: 4gray Date: Fri, 22 May 2026 02:48:34 +0300 Subject: [PATCH] refactor(playlists): move refresh action to ui boundary --- libs/playlist/shared/ui/src/index.ts | 1 + .../src/lib/playlist-refresh-action.service.spec.ts | 5 +++-- .../src/lib/playlist-refresh-action.service.ts | 2 +- .../playlist-switcher.component.spec.ts | 6 ++---- .../playlist-switcher/playlist-switcher.component.ts | 6 ++---- libs/playlist/shared/util/project.json | 2 +- libs/playlist/shared/util/src/index.ts | 1 - .../lib/rails/workspace-dashboard-rails.component.ts | 2 +- .../workspace-shell-xtream-import.service.ts | 2 +- .../services/workspace-shell.facade.spec.ts | 4 ++-- .../services/workspace-shell.facade.ts | 12 ++++++++---- 11 files changed, 22 insertions(+), 21 deletions(-) rename libs/playlist/shared/{util => ui}/src/lib/playlist-refresh-action.service.spec.ts (98%) rename libs/playlist/shared/{util => ui}/src/lib/playlist-refresh-action.service.ts (99%) diff --git a/libs/playlist/shared/ui/src/index.ts b/libs/playlist/shared/ui/src/index.ts index e550324e3..0ec759655 100644 --- a/libs/playlist/shared/ui/src/index.ts +++ b/libs/playlist/shared/ui/src/index.ts @@ -4,3 +4,4 @@ export * from './lib/playlist-switcher/playlist-switcher.component'; export * from './lib/recent-playlists/playlist-info/playlist-info.component'; export * from './lib/recent-playlists/recent-playlists.component'; export * from './lib/recent-playlists/empty-state/empty-state.component'; +export * from './lib/playlist-refresh-action.service'; diff --git a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts b/libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.spec.ts similarity index 98% rename from libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts rename to libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.spec.ts index 999f37dab..8f1a48bd3 100644 --- a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.spec.ts @@ -7,12 +7,13 @@ import { TranslateService } from '@ngx-translate/core'; import { DialogService } from '@iptvnator/ui/components'; import { DatabaseService, + DbOperationEvent, PlaybackPositionService, PlaylistRefreshService, } from '@iptvnator/services'; import { ChannelActions, PlaylistActions } from '@iptvnator/m3u-state'; import { Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; -import { PlaylistContextFacade } from './playlist-context.facade'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { PlaylistRefreshActionService } from './playlist-refresh-action.service'; function createDeferred() { @@ -343,7 +344,7 @@ describe('PlaylistRefreshActionService', () => { _playlistId: string, options?: { operationId?: string; - onEvent?: (event: any) => void; + onEvent?: (event: DbOperationEvent) => void; } ) => { options?.onEvent?.({ diff --git a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts b/libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.ts similarity index 99% rename from libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts rename to libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.ts index 19b3c9a69..da200ff02 100644 --- a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-refresh-action.service.ts @@ -14,7 +14,7 @@ import { } from '@iptvnator/services'; import { ChannelActions, PlaylistActions } from '@iptvnator/m3u-state'; import { PlaylistMeta } from '@iptvnator/shared/interfaces'; -import { PlaylistContextFacade } from './playlist-context.facade'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; export interface XtreamRefreshPreparationState { playlistId: string; diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts index 14ad7db2a..2ee742ad7 100644 --- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts @@ -12,16 +12,14 @@ import { Store } from '@ngrx/store'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateModule } from '@ngx-translate/core'; import { PlaylistActions } from '@iptvnator/m3u-state'; -import { - PlaylistContextFacade, - PlaylistRefreshActionService, -} from '@iptvnator/playlist/shared/util'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { DialogService } from '@iptvnator/ui/components'; import { PlaylistDeleteActionService, PortalStatusService, } from '@iptvnator/services'; import { PlaylistMeta } from '@iptvnator/shared/interfaces'; +import { PlaylistRefreshActionService } from '../playlist-refresh-action.service'; import { PlaylistSwitcherComponent } from './playlist-switcher.component'; const SEARCH_QUERY_STORAGE_KEY = 'playlist-switcher:search-query'; diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts index 50fe68916..6c914e8c7 100644 --- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts @@ -27,10 +27,7 @@ import { normalizeDateLocale } from '@iptvnator/pipes'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { DialogService } from '@iptvnator/ui/components'; import { PlaylistActions } from '@iptvnator/m3u-state'; -import { - PlaylistContextFacade, - PlaylistRefreshActionService, -} from '@iptvnator/playlist/shared/util'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { PlaylistDeleteActionService, PortalStatus, @@ -38,6 +35,7 @@ import { } from '@iptvnator/services'; import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { startWith } from 'rxjs'; +import { PlaylistRefreshActionService } from '../playlist-refresh-action.service'; import { PlaylistInfoComponent } from '../recent-playlists/playlist-info/playlist-info.component'; type PlaylistFilterType = 'm3u' | 'stalker' | 'xtream'; diff --git a/libs/playlist/shared/util/project.json b/libs/playlist/shared/util/project.json index 5c3b6a5c1..b68a45ac7 100644 --- a/libs/playlist/shared/util/project.json +++ b/libs/playlist/shared/util/project.json @@ -4,7 +4,7 @@ "sourceRoot": "libs/playlist/shared/util/src", "prefix": "lib", "projectType": "library", - "tags": ["scope:playlist", "domain:m3u", "type:util"], + "tags": ["scope:playlist", "domain:m3u", "type:data-access"], "targets": { "test": { "executor": "@nx/jest:jest", diff --git a/libs/playlist/shared/util/src/index.ts b/libs/playlist/shared/util/src/index.ts index c52303d9a..317f2d1c9 100644 --- a/libs/playlist/shared/util/src/index.ts +++ b/libs/playlist/shared/util/src/index.ts @@ -1,4 +1,3 @@ export * from './lib/playlist-player-actions'; export * from './lib/playlist-context.facade'; export * from './lib/playlist-file-import.service'; -export * from './lib/playlist-refresh-action.service'; diff --git a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts index 28d42cd6e..3f618dadd 100644 --- a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts +++ b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts @@ -21,8 +21,8 @@ import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { EmptyStateComponent, PlaylistInfoComponent, + PlaylistRefreshActionService, } from '@iptvnator/playlist/shared/ui'; -import { PlaylistRefreshActionService } from '@iptvnator/playlist/shared/util'; import { WORKSPACE_SHELL_ACTIONS, WorkspacePlaylistType, diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell-xtream-import.service.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell-xtream-import.service.ts index 984a38596..7ae8127d5 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell-xtream-import.service.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell-xtream-import.service.ts @@ -2,7 +2,7 @@ import { computed, inject, Injectable } from '@angular/core'; import { toSignal } from '@angular/core/rxjs-interop'; import { TranslateService } from '@ngx-translate/core'; import { startWith } from 'rxjs'; -import { PlaylistRefreshActionService } from '@iptvnator/playlist/shared/util'; +import { PlaylistRefreshActionService } from '@iptvnator/playlist/shared/ui'; import { XtreamStore } from '@iptvnator/portal/xtream/data-access'; import type { XtreamImportPhaseTone } from './helpers/workspace-shell-constants'; import { diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts index d2020bdaa..7f4983b50 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts @@ -6,10 +6,10 @@ import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { of } from 'rxjs'; import { - PlaylistContextFacade, PlaylistRefreshActionService, type XtreamRefreshPreparationState, -} from '@iptvnator/playlist/shared/util'; +} from '@iptvnator/playlist/shared/ui'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { PORTAL_EXTERNAL_PLAYBACK, WorkspaceHeaderContextService, diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts index 100a35141..ea4ac909c 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts @@ -12,11 +12,11 @@ import { NavigationEnd, Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { filter, firstValueFrom, startWith } from 'rxjs'; -import { PlaylistInfoComponent } from '@iptvnator/playlist/shared/ui'; import { - PlaylistContextFacade, + PlaylistInfoComponent, PlaylistRefreshActionService, -} from '@iptvnator/playlist/shared/util'; +} from '@iptvnator/playlist/shared/ui'; +import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { buildPortalRailLinks, PORTAL_EXTERNAL_PLAYBACK, @@ -33,7 +33,11 @@ import { WorkspaceSearchCapability, WorkspaceStartupPreferencesService, } from '@iptvnator/workspace/shell/util'; -import { DownloadsService, PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { + DownloadsService, + PlaylistsService, + SettingsStore, +} from '@iptvnator/services'; import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import {