import jQ from 'jquery';
import BaseComponent from "../../../base-component";
import SearchResultPanelItem from "../filter-result-element/search-result-panel-item";
import Selector from '../../../../helpers/selector';
import SearchResultPanels from '../filter-result-element/search-result-panels';
import PageItemList from './page-item-list';
/**
* Search result - Pages
*/
class PageList extends BaseComponent {
/**
* @constructs
*/
constructor() {
super();
this.$element = jQ(Selector.pages);
this.data = null;
this.totalPage = 0;
this.settings = {
searchPanelBlocks: Settings.getSettingValue('search.searchPanelBlocks')
};
this.panelData = {};
if (this.settings.searchPanelBlocks.hasOwnProperty(SearchResultPanelItem.Enum.PAGE)) {
this.panelData = this.settings.searchPanelBlocks[SearchResultPanelItem.Enum.PAGE];
}
}
/**
* Return whether or not the Page list is rendered
*/
isRender() {
return this.data != null && SearchResultPanels.isPanelActive(SearchResultPanelItem.Enum.PAGE);
}
/**
* Render the page list component
*/
render() {
var pageEls = [];
// Get all collection item
this.pageItems.forEach((pageItem) => {
pageEls.push(pageItem.$element);
});
this.$element.html('');
this.$element.append(pageEls);
}
/**
* Set data for the page list
* @param {Object} data - Filter result data
*/
setData(data) {
if (data && data.pages && data.pages.length) {
this.data = data.pages;
this.totalPage = data.total_page? data.total_page : 0;
this.pageItems = [];
this.data.forEach((pageData, index) => {
var pageItem = new PageItemList();
this.addComponent(pageItem);
pageItem.setData(pageData);
this.pageItems.push(pageItem);
});
}
}
}
export default PageList;