HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/pages/trends/trends.ts
import { Component, OnInit, ViewChild } from "@angular/core";
import { IonInfiniteScroll } from "@ionic/angular";
import { StorageService } from '../../services/storage.service';
import { TranslateService } from "@ngx-translate/core";

import { HomeService } from "../../services/home.service";
import { CartService } from "../../services/cart.service";
import { UtilsService } from "../../services/utils.service";

@Component({
  selector: "page-trends",
  templateUrl: "trends.html",
  styleUrls: ["./trends.scss"],
})
export class TrendsPage implements OnInit {
  @ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll;
  offset = 0;
  take = 10;
  listProducts: any = [];
  listProductsChanged: number = 0;
  productsCartActive: number = 0;
  constructor(
    private storage: StorageService,
    public homeProvider: HomeService,
    public cartProvider: CartService,
    public utilsService: UtilsService,
    private translate: TranslateService
  ) {}

  ngOnInit() {
    this.productsTrends(this.offset, this.take);
  }

  toggleInfiniteScroll() {
    this.infiniteScroll.disabled = !this.infiniteScroll.disabled;
  }

  productsTrends(offset, take, infiniteScroll?) {
    this.storage.get("token").then((token) => {
      if (token) {
        this.utilsService.presentLoading(this.translate.instant("all.loading")).then(async () => {
          (await this.homeProvider.getProductsTrends(offset, take, this.cartProvider.storeType, token.access_token)).subscribe(
            (data) => {
              console.log("data products trends", data);
              if ((data["status"] = "success")) {
                for (let i = 0; i < data["listProducts"].length; i++) {
                  this.listProducts.push(data["listProducts"][i].products);
                  // if (data["listProducts"][i].products.percentage_discount > 0 || data["listProducts"][i].products.flash_price > 0) {
                  //   this.listProductsChanged++;
                  // }
                }
                if (this.cartProvider.productsCart.length) {
                  this.productsCartActive++;
                }
                this.utilsService.dismissLoading();
                if (infiniteScroll) {
                  infiniteScroll.target.complete();
                  if (this.offset > this.listProducts.length && !this.infiniteScroll.disabled) {
                    this.toggleInfiniteScroll();
                  }
                }
              }
            },
            (error) => {
              console.log("error productsTrends: ", error);
              this.utilsService.dismissLoading();
            }
          );
        });
      }
    });
  }

  moreProducts(infiniteScroll) {
    this.offset += 10;
    this.productsTrends(this.offset, this.take, infiniteScroll);
  }
}