import React, { useEffect, useState } from "react"; import ReactDOM from "react-dom"; import memory from "./memory"; import { RequestCluster, Sources } from "./request-cluster"; import { Tab, useEmitter } from "./util"; async function getTabByID(id: number) { const tabs = await browser.tabs.query({ currentWindow: true }); return tabs.find((tab) => tab.id == id); } async function getCurrentTab() { const [tab] = await browser.tabs.query({ active: true, windowId: browser.windows.WINDOW_ID_CURRENT, }); return tab.id; } const TabDropdown = ({ setPickedTab, pickedTab, }: { setPickedTab: (tab_id: number) => void; pickedTab: number; }) => { const [tabs, setTabs] = useState([]); useEffect(() => { browser.tabs.query({ currentWindow: true }).then(setTabs); }, []); return ( ); }; const StolenDataRow = ({ tabID, shorthost, minValueLength, cookiesOnly, }: { tabID: number; shorthost: string; refreshToken: number; minValueLength: number; cookiesOnly: boolean; }) => { const cluster = memory.getClustersForTab(tabID)[shorthost]; const icons: Record = { cookie: "🍪", pathname: "🛣", queryparams: "🅿", header: "H", }; return (

{cluster.id} {cluster.hasCookies() ? "🍪" : ""} x {cluster.requests.length}

{cluster .getStolenData({ minValueLength, cookiesOnly }) .map((entry) => ( ))}
{entry.name} {icons[entry.source]} {entry.value} {entry.isIAB ? "!!!!! IAB" : ""}
); }; const StolenData = ({ pickedTab, refreshToken, minValueLength, cookiesOnly, }: { pickedTab: number | null; refreshToken: number; minValueLength: number; cookiesOnly: boolean; }) => { const [tab, setTab] = useState(null); useEffect(() => { getTabByID(pickedTab).then(setTab); }, [pickedTab]); if (!pickedTab || !tab) { return
; } const clusters = Object.values(memory.getClustersForTab(pickedTab)).sort( RequestCluster.sortCompare ); return (
{" "}

{tab.title}

{clusters .filter((cluster) => !cookiesOnly || cluster.hasCookies()) .map((cluster) => ( ))}
); }; const Options = ({ minValueLength, setMinValueLength, cookiesOnly, setCookiesOnly, }) => { return (

Zaawansowane ustawienia

setMinValueLength(parseInt(e.target.value))} />
setCookiesOnly(e.target.checked)} />
); }; const Sidebar = () => { const [pickedTab, setPickedTab] = useState(null); const [minValueLength, setMinValueLength] = useState(7); const [cookiesOnly, setCookiesOnly] = useState(false); const counter = useEmitter(memory); return ( <>
); }; ReactDOM.render(, document.getElementById("app"));