Added the ability for the discover options to stay/stick

This commit is contained in:
tidusjar 2020-03-25 22:14:45 +00:00
commit e080afe05a

View file

@ -3,6 +3,7 @@ import { SearchV2Service } from "../../../services";
import { ISearchMovieResult, ISearchTvResult, RequestType } from "../../../interfaces"; import { ISearchMovieResult, ISearchTvResult, RequestType } from "../../../interfaces";
import { IDiscoverCardResult, DiscoverOption } from "../../interfaces"; import { IDiscoverCardResult, DiscoverOption } from "../../interfaces";
import { trigger, transition, style, animate } from "@angular/animations"; import { trigger, transition, style, animate } from "@angular/animations";
import { StorageService } from "../../../shared/storage/storage-service";
@Component({ @Component({
templateUrl: "./discover.component.html", templateUrl: "./discover.component.html",
@ -27,7 +28,7 @@ export class DiscoverComponent implements OnInit {
public defaultTvPoster: string; public defaultTvPoster: string;
public popularActive: boolean = true; public popularActive: boolean;
public trendingActive: boolean; public trendingActive: boolean;
public upcomingActive: boolean; public upcomingActive: boolean;
@ -36,22 +37,28 @@ export class DiscoverComponent implements OnInit {
private contentLoaded: number; private contentLoaded: number;
private isScrolling: boolean = false; private isScrolling: boolean = false;
private mediaTypeStorageKey = "DiscoverOptions";
constructor(private searchService: SearchV2Service) { } constructor(private searchService: SearchV2Service,
private storageService: StorageService) { }
public async ngOnInit() { public async ngOnInit() {
this.loading() this.loading()
const localDiscoverOptions = +this.storageService.get(this.mediaTypeStorageKey);
if (localDiscoverOptions) {
this.discoverOptions = DiscoverOption[DiscoverOption[localDiscoverOptions]];
}
this.scrollDisabled = true; this.scrollDisabled = true;
switch (this.discoverOptions) { switch (this.discoverOptions) {
case DiscoverOption.Combined: case DiscoverOption.Combined:
this.movies = await this.searchService.popularMoviesByPage(0,12); this.movies = await this.searchService.popularMoviesByPage(0, 12);
this.tvShows = await this.searchService.popularTvByPage(0,12); this.tvShows = await this.searchService.popularTvByPage(0, 12);
break; break;
case DiscoverOption.Movie: case DiscoverOption.Movie:
this.movies = await this.searchService.popularMoviesByPage(0,12); this.movies = await this.searchService.popularMoviesByPage(0, 12);
break; break;
case DiscoverOption.Tv: case DiscoverOption.Tv:
this.tvShows = await this.searchService.popularTvByPage(0,12); this.tvShows = await this.searchService.popularTvByPage(0, 12);
break; break;
} }
@ -200,6 +207,7 @@ export class DiscoverComponent implements OnInit {
this.loading(); this.loading();
this.clear(); this.clear();
this.discoverOptions = newMode; this.discoverOptions = newMode;
this.storageService.save(this.mediaTypeStorageKey, newMode.toString());
await this.ngOnInit(); await this.ngOnInit();
this.finishLoading(); this.finishLoading();
} }