- listAccountPlaylists (account: Account, componentPagination: ComponentPagination, sort: string): Observable<ResultList<VideoPlaylist>> {
+ listMyPlaylistWithCache (user: AuthUser, search?: string) {
+ if (!search) {
+ if (this.myAccountPlaylistCacheRunning) return this.myAccountPlaylistCacheRunning
+ if (this.myAccountPlaylistCache) return of(this.myAccountPlaylistCache)
+ }
+
+ const obs = this.listAccountPlaylists(user.account, undefined, '-updatedAt', search)
+ .pipe(
+ tap(result => {
+ if (!search) {
+ this.myAccountPlaylistCacheRunning = undefined
+ this.myAccountPlaylistCache = result
+ }
+ }),
+ share()
+ )
+
+ if (!search) this.myAccountPlaylistCacheRunning = obs
+ return obs
+ }
+
+ listAccountPlaylists (
+ account: Account,
+ componentPagination: ComponentPaginationLight,
+ sort: string,
+ search?: string
+ ): Observable<ResultList<VideoPlaylist>> {