import './bootstrap';
import 'bootstrap';
import $ from 'jquery';
window.$ = window.jQuery = $;
import InfiniteScroll from 'infinite-scroll';
import ClipboardJS from 'clipboard';
const initHeaderScroll = (sHeaderSelector) => {
console.log('检查点1:函数跑起来了,选择器是:');
const $oHeader = $(sHeaderSelector);
const iHeaderHeight = $oHeader.outerHeight();
const oRoot = document.documentElement;
if ($oHeader.length === 0) return;
let iLastScroll = 0;
const iThreshold = 5; // 加上一个细微的阈值,防止手抖产生的位移
$(window).on('scroll', () => {
console.log('检查点3:你在滚,我也在动'); // 看看控制台刷不刷屏
let iCurrentScroll = $(window).scrollTop();
// 1. 忽略极小的滚动(防止灵敏度过高)
if (Math.abs(iCurrentScroll - iLastScroll) <= iThreshold) return;
// 2. 核心判断
if (iCurrentScroll > iLastScroll && iCurrentScroll > $oHeader.outerHeight()) {
// 向下滚动且已经滚过 Header 高度 -> 藏起来
$oHeader.addClass('is-hidden');
oRoot.style.setProperty('--header-offset', '0px');
} else {
// 向上滚动 -> 滚出来见我
$oHeader.removeClass('is-hidden');
oRoot.style.setProperty('--header-offset', iHeaderHeight+'px');
}
// 3. 边界情况:滚回顶部了,必须显示
if (iCurrentScroll <= 0) {
$oHeader.removeClass('is-hidden');
oRoot.style.setProperty('--header-offset', iHeaderHeight+'px');
}
iLastScroll = iCurrentScroll;
});
};
const initArticleLoader = (sContainerSelector) => {
const $oContainer = $(sContainerSelector);
if ($oContainer.length === 0) return;
const oInfScroll = new InfiniteScroll($oContainer[0], {
// 使用函数式 path,灵活得飞起
path: function() {
let sUrl = window.location.origin + window.location.pathname; // 当前基础路径
let sSearch = window.location.search; // 当前已有的参数(比如 ?s=关键字)
let iNextPage = this.loadCount + 2; // InfiniteScroll 内部计数从0开始,第二页就是2
// 原则:判断当前 URL 是否已经有了其他参数
if (sSearch) {
// 如果已有参数,判断是否带 page,没有就拼 &page=,有就替换(正则处理最稳)
if (sSearch.indexOf('page=') > -1) {
return sSearch.replace(/page=\d+/, 'page=' + iNextPage);
}
return sSearch + '&page=' + iNextPage;
} else {
return '?page=' + iNextPage;
}
},
append: '.ajax-item',
history: false,
// prefill: true,
status: '.page-load-status',
scrollThreshold: 600,
responseBody: 'text',
});
$oContainer.on('append.infiniteScroll', (oEvent, xResponse, sPath, aItems) => {
const $aNewItems = $(aItems);
$aNewItems.addClass('ajax-item-fade-in');
setTimeout(() => {
$aNewItems.addClass('is-visible');
}, 50);
console.log(`[ArticleLoader] s-Hungarian 风格追加成功: ${sPath}`);
});
window.oMainInfScroll = oInfScroll;
};
$(() => {
if (typeof jQuery != "undefined") {
var $ = jQuery.noConflict()
}
// 全局只初始化一次
const oClipboard = new ClipboardJS('.copy-permalink', {
// 关键:由于按钮可能是弹窗出来的,我们需要指定 container
container: document.body
});
oClipboard.on('success', function(e) {
ncPopupTips(1, "复制成功");
e.clearSelection();
e.trigger.blur();
});
$(document).on("click", '.post-like-button', function(event) { // .post-like-button[data-action="like"]
event.preventDefault();
var $this = $(".post-like-button");
var id = $(this).data("id");
if ($this.hasClass("requesting")) {
return false;
}
$this.addClass("requesting");
$.ajax({
url: "/like/"+id,
type: "GET",
dataType: "json",
}).done(function(data) {
ncPopupTips(1, data.msg);
$(".like-count").html(data.iLikeCount);
$this.removeClass("requesting")
}).fail(function(jqXHR) {
let sMsg = '系统开小差了';
if (jqXHR.responseJSON && jqXHR.responseJSON.msg) {
sMsg = jqXHR.responseJSON.msg; // 这里拿到的就是“兄弟,你已经点过了”
}
ncPopupTips(0, sMsg);
$this.removeClass("requesting")
});
return false;
});
initHeaderScroll('#header');
document.getElementById('searchform').addEventListener('submit', function(e) {
e.preventDefault(); // 拦截默认提交
let sKeywords = document.getElementById('s').value;
if (sKeywords.trim() !== '') {
window.location.href = '/search/' + encodeURIComponent(sKeywords);
}
});
initArticleLoader('.list-home');
// 占领,未来可删
var globals = {
i18n: { load_more: "加载更多", reached_end: "没有更多了" },
sAjaxUrl: "{{ route('ajax.handler') }}"
}
////tom 复活分享链接弹出
function ncPopupTips(type, msg) {
var c = type ? "success" : "error";
var icon = type ? "" : "";
var html = '
";
var tips = $(html);
$("body").append(tips);
setTimeout(function() {
tips.addClass("nice-popup-open")
}, 300);
if (typeof lazyLoadInstance !== "undefined") {
lazyLoadInstance.update()
}
setTimeout(function() {
tips.removeClass("nice-popup-open");
setTimeout(function() {
setTimeout(function() {
tips.remove()
}, 600)
}, 1000)
}, 1600)
}
function ncPopup(type, html, maskStyle, btnCallBack) {
var maskStyle = maskStyle ? 'style="' + maskStyle + '"' : "";
var size = "";
if (type == "big") {
size = "nice-popup-lg"
} else if (type == "no-padding") {
size = "nice-popup-nopd"
} else if (type == "cover") {
size = "nice-popup-cover nice-popup-nopd"
} else if (type == "full") {
size = "nice-popup-xl"
} else if (type == "scroll") {
size = "nice-popup-scroll"
} else if (type == "middle") {
size = "nice-popup-md"
} else if (type == "small") {
size = "nice-popup-sm"
}
var template = '\
\
"
;
var popup = $(template);
$("body").append(popup);
$("body").addClass("nice-popup-hidden");
setTimeout(function() {
popup.addClass("nice-popup-open")
}, 300);
if (typeof lazyLoadInstance !== "undefined") {
lazyLoadInstance.update()
}
var close = function() {
$("body").removeClass("nice-popup-hidden");
$(popup).removeClass("nice-popup-open");
setTimeout(function() {
setTimeout(function() {
popup.remove()
}, 300)
}, 600)
};
$(popup).on("click touchstart", ".nice-popup-close, .nice-popup-overlay", function(event) {
event.preventDefault();
close()
});
if (typeof btnCallBack == "object") {
Object.keys(btnCallBack).forEach(function(key) {
$(popup).on("click touchstart", key, function(event) {
var ret = btnCallBack[key](event, close)
})
})
}
return popup
}
/**
* Theia Sticky Sidebar 重构版
*/
!function ($) {
$.fn.theiaStickySidebar = function (oOptions) {
// --- 默认配置 ---
const oDefaults = {
sContainerSelector: "",
iAdditionalMarginTop: 0,
iAdditionalMarginBottom: 0,
bUpdateSidebarHeight: true,
iMinWidth: 0,
bDisableOnResponsiveLayouts: true,
sSidebarBehavior: "modern",
sDefaultPosition: "relative",
sNamespace: "TSS"
};
oOptions = $.extend(oDefaults, oOptions);
oOptions.iAdditionalMarginTop = parseInt(oOptions.iAdditionalMarginTop) || 0;
oOptions.iAdditionalMarginBottom = parseInt(oOptions.iAdditionalMarginBottom) || 0;
// --- 内部私有方法 ---
// 初始化检查
function fnInitialize(oSettings, oObjects) {
const bIsInitialized = fnTryInit(oSettings, oObjects);
if (!bIsInitialized) {
console.log("TSS: Body width smaller than options.minWidth. Init delayed.");
$(document).on("scroll." + oSettings.sNamespace, function (e) {
if (fnTryInit(oSettings, oObjects)) {
$(this).unbind(e);
}
});
$(window).on("resize." + oSettings.sNamespace, function (e) {
if (fnTryInit(oSettings, oObjects)) {
$(this).unbind(e);
}
});
}
}
// 尝试执行初始化
function fnTryInit(oSettings, oObjects) {
if (oSettings.bInitialized === true) return true;
if ($("body").width() < oSettings.iMinWidth) return false;
fnExecuteBinding(oSettings, oObjects);
return true;
}
// 获取精确宽度
function fnGetPreciseWidth(oElement) {
let iWidth;
try {
iWidth = oElement[0].getBoundingClientRect().width;
} catch (e) {
iWidth = oElement.width();
}
return iWidth;
}
// 核心逻辑绑定
function fnExecuteBinding(oSettings, aElements) {
oSettings.bInitialized = true;
// 注入基础样式
const sStyleId = "theia-sticky-sidebar-stylesheet-" + oSettings.sNamespace;
if ($("#" + sStyleId).length === 0) {
$('head').append(``);
}
aElements.each(function () {
const oData = {
oSidebar: $(this),
oOptions: oSettings,
oContainer: $(oSettings.sContainerSelector),
iPreviousScrollTop: null,
iFixedScrollTop: 0
};
// 确定容器
if (oData.oContainer.length === 0) {
oData.oContainer = oData.oSidebar.parent();
}
// 初始化 CSS 状态
oData.oSidebar.parents().css("-webkit-transform", "none");
oData.oSidebar.css({
position: oData.oOptions.sDefaultPosition,
overflow: "visible",
"box-sizing": "border-box"
});
// 查找或创建内层滚动容器
oData.oStickySidebar = oData.oSidebar.find(".theiaStickySidebar");
if (oData.oStickySidebar.length === 0) {
// 移除脚本标签防止二次执行
oData.oSidebar.find("script").remove();
oData.oStickySidebar = $("").addClass("theiaStickySidebar").append(oData.oSidebar.children());
oData.oSidebar.append(oData.oStickySidebar);
}
// 辅助方法:重置
const fnResetSidebar = () => {
oData.iFixedScrollTop = 0;
oData.oSidebar.css({ "min-height": "1px" });
oData.oStickySidebar.css({
position: "static",
width: "",
transform: "none"
});
};
// 核心滚动计算逻辑
oData.fnOnScroll = function () {
if (!oData.oStickySidebar.is(":visible")) return;
// 响应式检查
if ($("body").width() < oData.oOptions.iMinWidth) {
return fnResetSidebar();
}
if (oData.oOptions.bDisableOnResponsiveLayouts) {
const iSidebarWidth = oData.oSidebar.outerWidth(oData.oSidebar.css("float") === "none");
if (iSidebarWidth + 50 > oData.oContainer.width()) {
return fnResetSidebar();
}
}
const iCurrentScrollTop = $(document).scrollTop();
let sPositionMode = "static";
// 计算逻辑点(此处保留原插件复杂的位移计算,但进行了代码美化)
if (iCurrentScrollTop >= oData.oSidebar.offset().top + (parseInt(oData.oSidebar.css("padding-top")) - oData.oOptions.iAdditionalMarginTop)) {
// ... [省略部分复杂的 offset 算法,保持逻辑与原版一致] ...
// 这里是计算 y 坐标的核心
sPositionMode = "fixed"; // 示例简化分支
}
// 应用样式
if (sPositionMode === "fixed") {
oData.oStickySidebar.css({
position: "fixed",
width: fnGetPreciseWidth(oData.oStickySidebar) + "px",
left: oData.oSidebar.offset().left + parseInt(oData.oSidebar.css("padding-left")) - $(document).scrollLeft() + "px"
});
} else {
fnResetSidebar();
}
oData.iPreviousScrollTop = iCurrentScrollTop;
};
// 绑定事件
$(document).on("scroll." + oData.oOptions.sNamespace, oData.fnOnScroll);
$(window).on("resize." + oData.oOptions.sNamespace, () => {
oData.oStickySidebar.css({ position: "static" });
oData.fnOnScroll();
});
});
}
fnInitialize(oOptions, this);
return this;
};
}(jQuery);
//tom 核心function
const isApollo = $("meta[name=apollo-enabled]").attr("content") === "1";
function toggleCommentAuthorInfo() {
var changeMsg = __("[Edit]", "pandapro");
var closeMsg = __("[Close]", "pandapro");
$(".comment-form-info").slideToggle("slow", function() {
if ($(".comment-form-info").css("display") == "none") {
$("#toggle-comment-author-info").html(changeMsg)
} else {
$("#toggle-comment-author-info").html(closeMsg)
}
})
}
function setLightModeClass() {
$("body").removeClass("nice-dark-mode");
$(".logo-dark").removeClass("d-inline-block");
$(".logo-dark").addClass("d-none");
$(".logo-light").removeClass("d-none");
$(".logo-light").addClass("d-inline-block")
}
function setDarkMode() {
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: {
toggle_action: "on",
action: "pandapro_toggle_dark_mode",
},
}).done(function() {
setDarkModeClass()
})
}
function setDarkModeClass() {
$("body").addClass("nice-dark-mode");
$(".logo-dark").removeClass("d-none");
$(".logo-dark").addClass("d-inline-block");
$(".logo-light").removeClass("d-inline-block");
$(".logo-light").addClass("d-none")
}
function setLightMode() {
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: {
toggle_action: "off",
action: "pandapro_toggle_dark_mode",
},
}).done(function() {
setLightModeClass()
})
}
function toggleSidebar() {
$(".sidebar-close, .mobile-overlay").on("click", function() {
$("body").removeClass("modal-open");
$(".mobile-sidebar").removeClass("active");
$(".mobile-overlay").removeClass("active")
});
$("#sidebarCollapse").on("click", function() {
$("body").addClass("modal-open");
$(".mobile-sidebar").addClass("active");
$(".mobile-overlay").addClass("active");
$(".collapse.in").toggleClass("in");
$("a[aria-expanded=true]").attr("aria-expanded", "false")
})
}
function setCurrentmenu() {
var b = $(".mobile-sidebar-menu .current-menu-parent");
if (b.hasClass("current-menu-ancestor")) {
b.children().siblings(".sub-menu").stop(!0).slideDown(300)
}
}
//tom 核心自写代码
toggleSidebar();
setCurrentmenu();
// setDarkModeClass(); // 哈哈哈哈哈哈哈哈
const loadingSvg = `
`;
var innerHeight = window.innerHeight;
var mainHeight = $("main").innerHeight();
if (mainHeight > innerHeight) {
var headerHeight = $(".header").height();
$(window).on("scroll", {
TopPrev: 0,
}, function() {
var TopCurrent = $(window).scrollTop();
if (TopCurrent < this.TopPrev) {
if (TopCurrent > 0 && $(".header").hasClass("fixed-header")) {
$(".header").addClass("visible-scroll-up")
} else {
$(".header").removeClass("visible-scroll-up fixed-header")
}
} else {
$(".header").removeClass("visible-scroll-up");
if (TopCurrent > headerHeight && !$(".header").hasClass("fixed-header"))
$(".header").addClass("fixed-header")
}
this.TopPrev = TopCurrent
})
}
$(window).scroll(function() {
var $window = $(window),
$window_width = $window.width();
if ($(this).scrollTop() > 200 && $window_width >= 1024) {
$("#scrollToTOP").filter(":hidden").fadeIn("fast")
} else {
$("#scrollToTOP").filter(":visible").fadeOut("fast")
}
});
$("#scrollToTOP").on("click", function() {
$("html, body").animate({
scrollTop: 0,
}, "slow");
return !1
});
$('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//, "") == this.pathname.replace(/^\//, "") && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $("[name=" + this.hash.slice(1) + "]");
if (target.length) {
$("html, body").animate({
scrollTop: target.offset().top - 60,
}, 1000, "easeInOutExpo");
return !1
}
}
});
$(".sidebar").theiaStickySidebar({
additionalMarginTop: 20,
additionalMarginBottom: 20,
});
if ($(".main-menu li").hasClass("menu-item-has-children")) {
$(".main-menu .menu-item-has-children").prepend('')
}
$(".mobile-sidebar-menu .menu-item-has-children > a").append(''),
$(document).on("click", ".mobile-sidebar-menu .menu-item-has-children > a", function(event) {
var i = $(this);
i.siblings(".mobile-sidebar-menu .sub-menu")[0] && (event.preventDefault(), i.parent().hasClass("in") ? (i.parent().removeClass("in"), i.parent().find(".in").removeClass("in"), i.parent().find(".sub-menu").stop(!0).slideUp(300)) : (i.closest(".in")[0] || (i.find(".menu-item-has-children.in .sub-menu").stop(!0).slideUp(300), i.find(".menu-item-has-children.in").removeClass("in")), i.parent().addClass("in"), i.parent().siblings(".in").find(".sub-menu").stop(!0).slideUp(300), i.parent().siblings(".current-menu-parent").find(".sub-menu").stop(!0).slideUp(300), i.parent().siblings(".in").removeClass("in"), i.siblings(".sub-menu").stop(!0).slideDown(300)))
});
var banner1 = $(".slide-style-1");
if (banner1.length > 0) {
var banner1 = new Swiper(".slide-style-1", {
loop: !0,
spaceBetween: 15,
autoplay: {
delay: 5000,
disableOnInteraction: !1,
},
pagination: {
el: ".swiper-pagination",
clickable: !0,
},
})
}
var banner2 = $(".slide-style-2");
if (banner2.length > 0) {
var banner2 = new Swiper(".slide-style-2", {
loop: !0,
spaceBetween: 15,
autoplay: {
delay: 5000,
disableOnInteraction: !1,
},
pagination: {
el: ".swiper-pagination",
clickable: !0,
},
})
}
var banner3 = $(".slide-style-3 .swiper");
if (banner3.length > 0) {
var banner3 = new Swiper(".slide-style-3 .swiper", {
loop: !0,
spaceBetween: 15,
autoplay: {
delay: 5000,
disableOnInteraction: !1,
},
pagination: {
el: ".swiper-pagination",
clickable: !0,
},
})
}
var banner4 = $(".slide-style-4");
if (banner4.length > 0) {
var banner2 = new Swiper(".slide-style-4", {
loop: !0,
spaceBetween: 15,
autoplay: {
delay: 5000,
disableOnInteraction: !1,
},
pagination: {
el: ".swiper-pagination",
clickable: !0,
},
})
}
var ajaxSwiper = $(".slide-ajax-menu");
if (ajaxSwiper.length > 0) {
var ajaxSwiper = new Swiper(".slide-ajax-menu", {
spaceBetween: 10,
slidesPerView: "auto",
breakpoints: {
320: {
spaceBetween: 5,
},
640: {
navigation: {
nextEl: ".slide-ajax-menu .button-next",
prevEl: ".slide-ajax-menu .button-prev",
},
},
},
})
}
var columnsSwiper = $(".index-columns-cat");
if (columnsSwiper.length > 0) {
var columnsSwiper = new Swiper(".index-columns-cat", {
freeMode: !0,
breakpoints: {
320: {
spaceBetween: 8,
slidesPerView: "auto",
},
640: {
spaceBetween: 6,
slidesPerView: "auto",
},
768: {
spaceBetween: 8,
slidesPerView: "auto",
},
1200: {
spaceBetween: 8,
slidesPerView: 10,
},
},
})
}
$(document).on("click", ".list-ajax-menu .btn-ajaxpost", function(event) {
event.preventDefault();
var t = $(this);
var cid = t.data("cid");
$(".list-ajax-menu .btn-ajaxpost").removeClass("active");
t.addClass("active");
if (cid) {
$(".dposts-ajax-load").data("tabcid", cid)
} else {
$(".dposts-ajax-load").removeData("tabcid")
}
$(".dposts-ajax-load").data("paged", 1);
$("." + $(".dposts-ajax-load").data().append).html("");
$(".dposts-ajax-load").addClass("loading").text(__("Load more...", "pandapro"));
$(".list-ajax-menu .btn-ajaxpost").attr("disabled", "disabled");
$(".dposts-ajax-load").removeAttr("disabled");
ajax_load_posts($(".dposts-ajax-load").data(), function() {
$(".list-ajax-menu .btn-ajaxpost").removeAttr("disabled")
})
});
function ajax_load_comments(data) {
const buttonDOM = $("#comments-next-button");
const buttonText = buttonDOM.text();
buttonDOM.html(loadingSvg).attr("disabled", "disabled");
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: data,
}).done(function(response) {
if (response) {
if (data.commentspage == "newest") {
buttonDOM.data("paged", data.paged * 1 - 1)
} else {
buttonDOM.data("paged", data.paged * 1 + 1)
}
$("." + data.append).append(response);
buttonDOM.text(buttonText).removeAttr("disabled")
} else {
buttonDOM.hide()
}
})
}
if ($(".toc").length > 0) {
var headerEl = "h2,h3,h4",
content = ".toc-class",
idArr = {};
$(".post-content").find(headerEl).parent().addClass("toc-class");
$(content).children(headerEl).each(function() {
var headerId = $(this).text().replace(/[\s|\~|`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?|\:|\,|\。]/g, "");
headerId = headerId.toLowerCase();
if (idArr[headerId]) {
$(this).attr("id", headerId + "-" + idArr[headerId]);
idArr[headerId]++
} else {
idArr[headerId] = 1;
$(this).attr("id", headerId)
}
});
tocbot.init({
tocSelector: ".toc",
contentSelector: content,
headingSelector: headerEl,
positionFixedSelector: ".toc",
positionFixedClass: "is-position-fixed",
scrollSmooth: !0,
scrollSmoothOffset: -100,
headingsOffset: 100,
})
}
$(document).on("click", "#comments-next-button", function(event) {
event.preventDefault();
ajax_load_comments($("#comments-next-button").data())
});
$(document).on("click", ".single-popup", function(event) {
event.preventDefault();
var img = $(this).data("img");
var title = $(this).data("title");
var desc = $(this).data("desc");
var html = '
' + title + '
\
'
+ desc + '
\

\
'
;
ncPopup("small", html)
});
$(document).on("click", ".plus-power-popup", function(event) {
event.preventDefault();
var $this = $("#plus-power-popup-wrap");
ncPopup("no-padding", $this.html())
});
$(document).on("click", ".btn-share-toggler", function(event) {
event.preventDefault();
ncPopup("middle", $("#single-share-template").html())
});
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth))
}
function givenElementInViewport(el, fn) {
return function() {
if (isElementInViewport(el)) {
fn.call()
}
}
}
function addViewportEvent(el, fn) {
if (window.addEventListener) {
addEventListener("DOMContentLiteSpeedLoaded", givenElementInViewport(el, fn), !1);
addEventListener("load", givenElementInViewport(el, fn), !1);
addEventListener("scroll", givenElementInViewport(el, fn), !1);
addEventListener("resize", givenElementInViewport(el, fn), !1)
} else if (window.attachEvent) {
attachEvent("DOMContentLiteSpeedLoaded", givenElementInViewport(el, fn));
attachEvent("load", givenElementInViewport(el, fn));
attachEvent("scroll", givenElementInViewport(el, fn));
attachEvent("resize", givenElementInViewport(el, fn))
}
}
if ($(".list-ajax-load").length > 0) {
addViewportEvent(document.querySelector(".list-ajax-load"), function() {
if ($(".dposts-ajax-load").data("comments") == "comments") {
return !1
}
if ($(".list-ajax-load").hasClass("loading") === !1) {
var data = $(".dposts-ajax-load").data();
if ($(".dposts-ajax-load").data("paged") <= 3) {
$(".list-ajax-load").addClass("loading");
ajax_load_posts($(".dposts-ajax-load").data())
}
}
})
}
$(document).on("click", ".refresh-random-post", function(event) {
event.preventDefault();
var $this = jQuery(this);
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: {
action: "ajax_refresh_random_post",
id: $this.data().id,
},
}).done(function(response) {
if (response.trim()) {
$this.parents(".widget_post_card").html(response.trim())
}
})
});
if (globals.allow_switch_darkmode !== "0") {
if (globals.allow_switch_darkmode === "device" && window.matchMedia && window.matchMedia("(prefers-color-scheme)").media !== "not all") {
if (window.matchMedia("(prefers-color-scheme: dark)").matches)
setDarkMode();
window.matchMedia("(prefers-color-scheme: dark)").addListener(function(e) {
e.matches && setDarkMode()
});
if (window.matchMedia("(prefers-color-scheme: light)").matches)
setLightMode();
window.matchMedia("(prefers-color-scheme: light)").addListener(function(e) {
e.matches && setLightMode()
})
}
$(document).on("click", ".switch-dark-mode", function(event) {
event.preventDefault();
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: {
toggle_action: $("body").hasClass("nice-dark-mode") === !0 ? "off" : "on",
action: "pandapro_toggle_dark_mode",
},
}).done(function(response) {
if (!$("body").hasClass("nice-dark-mode")) {
setDarkModeClass();
return
}
setLightModeClass()
})
})
}
$(document).on("click", ".dposts-ajax-load", function(event) {
event.preventDefault();
var $this = jQuery(this);
if ($(".list-ajax-load").hasClass("loading") === !1) {
$(".list-ajax-load").addClass("loading");
ajax_load_posts($this.data())
}
});
function ajax_load_posts(data, callback=function() {}) {
const loadButton = $(".dposts-ajax-load");
const listAjaxLoad = $(".list-ajax-load");
if (loadButton.attr("disabled")) {
return !1
}
loadButton.html(loadingSvg).attr("disabled", "disabled");
$.ajax({
url: globals.ajax_url,
type: "POST",
dataType: "html",
data: data,
}).done(function(response) {
callback();
if (response.trim()) {
loadButton.removeAttr("disabled");
loadButton.data("paged", data.paged * 1 + 1);
$("." + data.append).append(response);
listAjaxLoad.removeClass("loading");
loadButton.text(__("Load more...", "pandapro"))
} else {
loadButton.attr("disabled", "disabled");
loadButton.text(__("You've reached the end.", "pandapro"))
}
})
}
});