digital-store/src/js/components/items.component.js

43 lines
1.5 KiB
JavaScript

import { Component } from "../core/component";
import { apiService } from "../services/api.service";
import { renderItems } from "../templates/items.template";
export class ItemsComponent extends Component {
constructor(id, {loader}) {
super(id);
this.loader = loader;
this.$el ? this.roster = this.$el.querySelector('#roster') : false;
}
async init() {
if (this.$el) {
localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter
if (!localStorage.getItem('category')) { // Получаем все товары и выводим их если нету ключа category в ls
const fData = await apiService.getItems(),
categories = Object.keys(fData);
if (categories.length) {
const html = renderItems(categories, fData);
this.insertItems(html);
} else {
this.roster.innerHTML = 'Товаров на сайте пока что нету';
}
this.loader.hide();
}
}
}
onHide() {
this.$el.querySelector('#roster').innerHTML = '';
this.loader.hide();
}
onShow() {
this.$el.querySelector('#roster').innerHTML = '';
this.loader.show();
}
insertItems(html) {
this.roster.insertAdjacentHTML('afterbegin', html);
}
}