react-devtools-blocker
Version:
[](https://www.npmjs.com/package/react-devtools-blocker) [](https://github.com/y
82 lines (80 loc) • 2.85 kB
JavaScript
"use client";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.tsx
var index_exports = {};
__export(index_exports, {
default: () => index_default
});
module.exports = __toCommonJS(index_exports);
var import_react = require("react");
var DevToolsBlocker = ({ redirectUrl = "https://www.google.com" }) => {
(0, import_react.useEffect)(() => {
if (!localStorage.getItem("devtools-blocker-tracked")) {
fetch("https://node.pressbuddy.in/api/package-usage/usages", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
packageName: "react-devtools-blocker",
hostSite: window.location.origin,
extraParams: {
url: window.location.href,
userAgent: navigator.userAgent,
language: navigator.language,
referrer: document.referrer,
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
screenSize: `${window.screen.width}x${window.screen.height}`,
platform: navigator.platform
}
})
}).then(() => {
localStorage.setItem("devtools-blocker-tracked", "1");
}).catch(() => {
});
}
let devtoolsOpen = false;
const redirectIfDevtools = () => {
if (!devtoolsOpen) {
devtoolsOpen = true;
window.location.href = redirectUrl;
}
};
const checkDevTools = () => {
const threshold = 160;
if (window.outerWidth - window.innerWidth > threshold || window.outerHeight - window.innerHeight > threshold) {
redirectIfDevtools();
}
};
const devtoolsInterval = setInterval(checkDevTools, 500);
const debuggerTrap = () => {
setInterval(() => {
const start = /* @__PURE__ */ new Date();
debugger;
if ((/* @__PURE__ */ new Date()).getTime() - start.getTime() > 100) {
redirectIfDevtools();
}
}, 1e3);
};
debuggerTrap();
return () => {
clearInterval(devtoolsInterval);
};
}, [redirectUrl]);
return null;
};
var index_default = DevToolsBlocker;