import { OmbiCommonModules } from "../modules";
import { Component, OnDestroy, OnInit } from "@angular/core";
import { DomSanitizer } from "@angular/platform-browser";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { ImageService } from "../../services";
import { fadeInOutAnimation } from "app/animations/fadeinout";

@Component({
    standalone: true,
    selector: 'ombi-image-background',
    templateUrl: './image-background.component.html',
    styleUrls: ['./image-background.component.scss'],
    imports: [...OmbiCommonModules, BrowserAnimationsModule],
    providers: [ ImageService ],
    animations: [ fadeInOutAnimation ],
  })
  export class ImageBackgroundComponent implements OnInit, OnDestroy {

    public background: any;
    public name: string;
    private timer: NodeJS.Timer;

    constructor(private images: ImageService, private sanitizer: DomSanitizer) { }

    public ngOnDestroy(): void {
        clearTimeout(this.timer);
    }

    public ngOnInit(): void {
        this.cycleBackground();

        this.timer = setInterval(() => {
           this.cycleBackground();
        }, 30000);
    }

    private cycleBackground() {
        this.images.getRandomBackgroundWithInfo().subscribe((x) => {
          this.background = this.sanitizer.bypassSecurityTrustStyle("url(" + x.url + ")");
          this.name = x.name;
        });
    }
  }