mirror of
https://github.com/zen-browser/www.git
synced 2025-07-08 17:30:01 +02:00
removed umami
This commit is contained in:
parent
bd9291a1d4
commit
b269bee3f7
5 changed files with 1 additions and 189 deletions
172
public/uma.js
172
public/uma.js
|
@ -1,172 +0,0 @@
|
|||
!(function () {
|
||||
"use strict";
|
||||
((t) => {
|
||||
const {
|
||||
screen: { width: e, height: a },
|
||||
navigator: { language: r },
|
||||
location: n,
|
||||
localStorage: i,
|
||||
document: c,
|
||||
history: o,
|
||||
} = t,
|
||||
{ hostname: s, href: u } = n,
|
||||
{ currentScript: l, referrer: d } = c;
|
||||
if (!l) return;
|
||||
const f = "data-",
|
||||
m = l.getAttribute.bind(l),
|
||||
h = m(f + "website-id"),
|
||||
p = m(f + "host-url"),
|
||||
g = m(f + "tag"),
|
||||
y = "false" !== m(f + "auto-track"),
|
||||
b = "true" === m(f + "exclude-search"),
|
||||
v = m(f + "domains") || "",
|
||||
S = v.split(",").map((t) => t.trim()),
|
||||
w = `${(p || "" || l.src.split("/").slice(0, -1).join("/")).replace(/\/$/, "")}/api/send`,
|
||||
N = `${e}x${a}`,
|
||||
T = /data-umami-event-([\w-_]+)/,
|
||||
A = f + "umami-event",
|
||||
x = 300,
|
||||
O = (t) => {
|
||||
if (t) {
|
||||
try {
|
||||
const e = decodeURI(t);
|
||||
if (e !== t) return e;
|
||||
} catch (e) {
|
||||
return t;
|
||||
}
|
||||
return encodeURI(t);
|
||||
}
|
||||
},
|
||||
U = (t) => {
|
||||
try {
|
||||
const { pathname: e, search: a } = new URL(t);
|
||||
t = e + a;
|
||||
} catch (t) {}
|
||||
return b ? t.split("?")[0] : t;
|
||||
},
|
||||
j = () => ({
|
||||
website: h,
|
||||
hostname: s,
|
||||
screen: N,
|
||||
language: r,
|
||||
title: O(q),
|
||||
url: O(D),
|
||||
referrer: O(_),
|
||||
tag: g || void 0,
|
||||
}),
|
||||
k = (t, e, a) => {
|
||||
a && ((_ = D), (D = U(a.toString())), D !== _ && setTimeout(I, x));
|
||||
},
|
||||
E = () =>
|
||||
!h || (i && i.getItem("umami.disabled")) || (v && !S.includes(s)),
|
||||
L = async (t, e = "event") => {
|
||||
if (E()) return;
|
||||
const a = { "Content-Type": "application/json" };
|
||||
void 0 !== R && (a["x-umami-cache"] = R);
|
||||
try {
|
||||
const r = await fetch(w, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ type: e, payload: t }),
|
||||
headers: a,
|
||||
}),
|
||||
n = await r.text();
|
||||
return (R = n);
|
||||
} catch (t) {}
|
||||
},
|
||||
$ = () => {
|
||||
B ||
|
||||
(I(),
|
||||
(() => {
|
||||
const t = (t, e, a) => {
|
||||
const r = t[e];
|
||||
return (...e) => (a.apply(null, e), r.apply(t, e));
|
||||
};
|
||||
(o.pushState = t(o, "pushState", k)),
|
||||
(o.replaceState = t(o, "replaceState", k));
|
||||
})(),
|
||||
(() => {
|
||||
const t = new MutationObserver(([t]) => {
|
||||
q = t && t.target ? t.target.text : void 0;
|
||||
}),
|
||||
e = c.querySelector("head > title");
|
||||
e &&
|
||||
t.observe(e, { subtree: !0, characterData: !0, childList: !0 });
|
||||
})(),
|
||||
c.addEventListener(
|
||||
"click",
|
||||
async (t) => {
|
||||
const e = (t) => ["BUTTON", "A"].includes(t),
|
||||
a = async (t) => {
|
||||
const e = t.getAttribute.bind(t),
|
||||
a = e(A);
|
||||
if (a) {
|
||||
const r = {};
|
||||
return (
|
||||
t.getAttributeNames().forEach((t) => {
|
||||
const a = t.match(T);
|
||||
a && (r[a[1]] = e(t));
|
||||
}),
|
||||
I(a, r)
|
||||
);
|
||||
}
|
||||
},
|
||||
r = t.target,
|
||||
i = e(r.tagName)
|
||||
? r
|
||||
: ((t, a) => {
|
||||
let r = t;
|
||||
for (let t = 0; t < a; t++) {
|
||||
if (e(r.tagName)) return r;
|
||||
if (((r = r.parentElement), !r)) return null;
|
||||
}
|
||||
})(r, 10);
|
||||
if (!i) return a(r);
|
||||
{
|
||||
const { href: e, target: r } = i,
|
||||
c = i.getAttribute(A);
|
||||
if (c)
|
||||
if ("A" === i.tagName) {
|
||||
const o =
|
||||
"_blank" === r ||
|
||||
t.ctrlKey ||
|
||||
t.shiftKey ||
|
||||
t.metaKey ||
|
||||
(t.button && 1 === t.button);
|
||||
if (c && e)
|
||||
return (
|
||||
o || t.preventDefault(),
|
||||
a(i).then(() => {
|
||||
o || (n.href = e);
|
||||
})
|
||||
);
|
||||
} else if ("BUTTON" === i.tagName) return a(i);
|
||||
}
|
||||
},
|
||||
!0,
|
||||
),
|
||||
(B = !0));
|
||||
},
|
||||
I = (t, e) =>
|
||||
L(
|
||||
"string" == typeof t
|
||||
? { ...j(), name: t, data: "object" == typeof e ? e : void 0 }
|
||||
: "object" == typeof t
|
||||
? t
|
||||
: "function" == typeof t
|
||||
? t(j())
|
||||
: j(),
|
||||
),
|
||||
K = (t) => L({ ...j(), data: t }, "identify");
|
||||
t.umami || (t.umami = { track: I, identify: K });
|
||||
let R,
|
||||
B,
|
||||
D = U(u),
|
||||
_ = d !== s ? d : "",
|
||||
q = c.title;
|
||||
y &&
|
||||
!E() &&
|
||||
("complete" === c.readyState
|
||||
? $()
|
||||
: c.addEventListener("readystatechange", $, !0));
|
||||
})(window);
|
||||
})();
|
|
@ -47,15 +47,6 @@ export default async function RootLayout({
|
|||
<head>
|
||||
<link rel="me" href="https://fosstodon.org/@zenbrowser"></link>
|
||||
<link rel="canonical" href="https://zen-browser.app/"></link>
|
||||
{/* Analitics */}
|
||||
<script
|
||||
defer
|
||||
src="https://cdn.jsdelivr.net/gh/zen-browser/www/public/uma.js"
|
||||
data-host-url="https://uma.zen-browser.app"
|
||||
data-website-id="7148ef7c-5299-4ca1-9a18-9d6964e93b53"
|
||||
data-domains="zen-browser.app"
|
||||
></script>
|
||||
{/* End */}
|
||||
<link
|
||||
rel="alternate"
|
||||
type="application/rss+xml"
|
||||
|
|
|
@ -359,7 +359,7 @@ export default function Features() {
|
|||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>
|
||||
<Button data-umami-event="patreon-feature" variant="ghost">
|
||||
<Button variant="ghost">
|
||||
Patreon <ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
</a>
|
||||
|
@ -369,7 +369,6 @@ export default function Features() {
|
|||
target="_blank"
|
||||
>
|
||||
<Button
|
||||
data-umami-event="ko-fi-feature"
|
||||
className="ml-8"
|
||||
variant="ghost"
|
||||
>
|
||||
|
|
|
@ -17,7 +17,6 @@ export default function Footer() {
|
|||
<h1 className="text-2xl font-bold opacity-80">Zen Browser</h1>
|
||||
<a
|
||||
target="_blank"
|
||||
data-umami-event="footer-status"
|
||||
rel="noopener noreferrer"
|
||||
href="https://uptime.zen-browser.app/"
|
||||
className="mt-2 flex w-fit cursor-pointer items-center rounded-md bg-surface px-3 py-2 shadow"
|
||||
|
@ -92,7 +91,6 @@ export default function Footer() {
|
|||
<li>
|
||||
<a
|
||||
target="_blank"
|
||||
data-umami-event="footer-discord"
|
||||
href="https://discord.com/servers/mauro-s-little-sweatshop-1088172780480114748"
|
||||
>
|
||||
Discord
|
||||
|
@ -114,7 +112,6 @@ export default function Footer() {
|
|||
</li>
|
||||
<li className="mt-2">
|
||||
<a
|
||||
data-umami-event="footer-privacy-policy"
|
||||
href="/privacy-policy"
|
||||
>
|
||||
Privacy Policy
|
||||
|
@ -150,7 +147,6 @@ export default function Footer() {
|
|||
<li>
|
||||
<a
|
||||
target="_blank"
|
||||
data-umami-event="patreon-fotter"
|
||||
href="https://patreon.com/zen_browser"
|
||||
>
|
||||
Patreon
|
||||
|
@ -159,7 +155,6 @@ export default function Footer() {
|
|||
<li className="mt-2">
|
||||
<a
|
||||
target="_blank"
|
||||
data-umami-event="ko-fi-fotter"
|
||||
href="https://ko-fi.com/zen_browser"
|
||||
>
|
||||
Ko-fi
|
||||
|
|
|
@ -96,7 +96,6 @@ const ListItem2 = React.forwardRef<
|
|||
<li>
|
||||
<NavigationMenuLink asChild>
|
||||
<a
|
||||
data-umami-event={title}
|
||||
ref={ref}
|
||||
className={ny(
|
||||
"block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue