Files
klz-cables.com/.pnpm-store/v10/files/6e/6f4691fb0bc129908aa94f51c646051d9b4248f7ef032437a5e651edae64cad97729a8ccae38e144c4aa89b569b604ea046288e2a41496322bd3bcc33a882f
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

144 lines
3.6 KiB
Plaintext

'use client';
import { c as _c } from "react/compiler-runtime";
import { useCallback, useEffect, useRef, useState } from 'react';
import { useConfig } from '../providers/Config/index.js';
export const usePopupWindow = props => {
const $ = _c(15);
const {
eventType,
onMessage,
url
} = props;
const isReceivingMessage = useRef(false);
const [isOpen, setIsOpen] = useState(false);
const {
config: t0
} = useConfig();
const {
serverURL
} = t0;
const popupRef = useRef(null);
let t1;
let t2;
if ($[0] !== eventType || $[1] !== isOpen || $[2] !== onMessage || $[3] !== serverURL || $[4] !== url) {
t1 = () => {
const receiveMessage = async event => {
if (event.origin !== window.location.origin || event.origin !== url || event.origin !== serverURL) {
return;
}
if (typeof onMessage === "function" && event.data?.type === eventType && !isReceivingMessage.current) {
isReceivingMessage.current = true;
await onMessage(event.data?.searchParams);
isReceivingMessage.current = false;
}
};
if (isOpen && popupRef.current) {
window.addEventListener("message", receiveMessage, false);
}
return () => {
window.removeEventListener("message", receiveMessage);
};
};
t2 = [onMessage, eventType, url, serverURL, isOpen];
$[0] = eventType;
$[1] = isOpen;
$[2] = onMessage;
$[3] = serverURL;
$[4] = url;
$[5] = t1;
$[6] = t2;
} else {
t1 = $[5];
t2 = $[6];
}
useEffect(t1, t2);
let t3;
if ($[7] !== url) {
t3 = e => {
if (e) {
e.preventDefault();
}
const features = {
height: 700,
left: "auto",
menubar: "no",
popup: "yes",
toolbar: "no",
top: "auto",
width: 800
};
const popupOptions = Object.entries(features).reduce((str, t4) => {
const [key, value] = t4;
let strCopy = str;
if (value === "auto") {
if (key === "top") {
const v = Math.round(window.innerHeight / 2 - features.height / 2);
strCopy = strCopy + `top=${v},`;
} else {
if (key === "left") {
const v_0 = Math.round(window.innerWidth / 2 - features.width / 2);
strCopy = strCopy + `left=${v_0},`;
}
}
return strCopy;
}
strCopy = strCopy + `${key}=${value},`;
return strCopy;
}, "").slice(0, -1);
const newWindow = window.open(url, "_blank", popupOptions);
popupRef.current = newWindow;
setIsOpen(true);
};
$[7] = url;
$[8] = t3;
} else {
t3 = $[8];
}
const openPopupWindow = t3;
let t4;
let t5;
if ($[9] !== isOpen) {
t4 = () => {
let timer;
if (isOpen) {
timer = setInterval(function () {
if (popupRef.current.closed) {
clearInterval(timer);
setIsOpen(false);
}
}, 1000);
} else {
clearInterval(timer);
}
return () => {
if (timer) {
clearInterval(timer);
}
};
};
t5 = [isOpen, popupRef];
$[9] = isOpen;
$[10] = t4;
$[11] = t5;
} else {
t4 = $[10];
t5 = $[11];
}
useEffect(t4, t5);
let t6;
if ($[12] !== isOpen || $[13] !== openPopupWindow) {
t6 = {
isPopupOpen: isOpen,
openPopupWindow,
popupRef
};
$[12] = isOpen;
$[13] = openPopupWindow;
$[14] = t6;
} else {
t6 = $[14];
}
return t6;
};
//# sourceMappingURL=usePopupWindow.js.map