Files
postshop-backend/public/web/shella/scripts/section.product.js
2026-02-03 15:31:29 +05:00

93 lines
2.3 KiB
JavaScript

theme.ProductPage = (function() {
function ProductPage(container) {
this.$container = $(container);
//var sectionId = this.$container.attr('data-section-id');
//this.settings = {};
this.namespace = '.product-page';
this.onLoad();
}
ProductPage.prototype = $.extend({}, ProductPage.prototype, {
onLoad: function () {
var $product = this.$container.find('[data-js-product]'),
$gallery = $product.find('[data-js-product-gallery]'),
$countdown = $product.find('[data-js-product-countdown] .js-countdown'),
$text_countdown = $product.find('.js-text-countdown'),
$visitors = $product.find('.js-visitors');
if($gallery.length) {
this.$gallery = $gallery;
if(this.$gallery.find('[data-js-product-gallery-main]').attr('data-js-product-gallery-main') === 'mobile') {
function initGallery() {
if(theme.current.is_mobile) {
theme.ProductGallery.init($gallery);
}
};
$window.on('theme.resize', initGallery);
initGallery();
} else {
theme.ProductGallery.init($gallery);
}
}
if(theme.is_loaded) {
theme.ProductReview.update();
if(theme.Tooltip) {
theme.Tooltip.init();
}
if($countdown.length) {
theme.ProductCountdown.init($countdown);
}
if($text_countdown.length) {
theme.ProductTextCountdown.init($text_countdown);
}
if($visitors.length) {
theme.ProductVisitors.init($visitors);
}
theme.StoreLists.checkProductStatus($product);
if(theme.Tabs) {
theme.Tabs.init();
}
}
if(theme.StickySidebar) {
theme.StickySidebar.init(this.$container);
}
},
onUnload: function() {
this.$container.off(this.namespace);
if(this.$gallery && this.$gallery.length) {
theme.ProductGallery.destroy(this.$gallery);
this.$gallery = null;
}
if(theme.StickySidebar) {
theme.StickySidebar.destroy(this.$container);
}
if(theme.Tooltip) {
theme.Tooltip.destroy();
}
}
});
return ProductPage;
})();
$(function() {
theme.sections.register('product-page', theme.ProductPage);
});