import React, { useState } from "react"; import ReactDOM from "react-dom"; import { getMemory } from "../memory"; import { RequestCluster } from "../request-cluster"; import { Classifications, Sources } from "../stolen-data-entry"; import { getDate } from "../util"; const emailClassifications: Record = { id: "sztucznie nadane mi ID", history: "część mojej historii przeglądania", }; const emailSources: Record = { header: "w nagłówku HTTP", cookie: "z pliku Cookie", pathname: "jako części adresu URL", queryparams: "jako część adresu URL (query-params)", }; type PopupState = "not_clicked" | "clicked_but_invalid"; function DomainSummary({ cluster }: { cluster: RequestCluster }) { return (
  • Właściciel domeny {cluster.id} otrzymał:{" "}
      {cluster .getMarkedEntries() .sort((entryA, entryB) => (entryA.value > entryB.value ? -1 : 1)) .reduce((acc, entry, index, arr) => { if (index === 0) { return [entry]; } if (entry.value != arr[index - 1].value) { acc.push(entry); } return acc; }, []) .map((entry) => (
    • {emailClassifications[entry.classification]}{" "} {emailSources[entry.source]}  ({entry.name.trim()})
    • ))}
  • ); } function Report() { const [popupState, setPopupState] = useState("not_clicked"); const origin = new URL(document.location.toString()).searchParams.get( "origin" ); const clusters = getMemory().getClustersForOrigin(origin); const marked_entries = Object.values(clusters) .map((cluster) => cluster.getMarkedRequests()) .reduce((a, b) => a.concat(b), []) .map((request) => request.getMarkedEntries()) .reduce((a, b) => a.concat(b), []); return (

    Generuj treść maila dla {origin}

    {marked_entries.map((entry) => ( ))}
    Adres docelowy Źródło danych Treść danych Klasyfikacja
    {entry.request.shorthost} {entry.source}:{entry.name} {entry.markedKeys.join(",")} {entry.value}

    Dzień dobry, w dniu {getDate()} odwiedziłem stronę{" "} {marked_entries[0].request.originalURL}. Strona ta wysłała moje dane osobowe do podmiotów trzecich - bez mojej zgody.{" "}

      {Object.values(clusters) .filter((cluster) => cluster.hasMarks()) .map((cluster) => ( ))}
    {popupState === "not_clicked" ? (

    Dane te zostały wysłane przez Państwa stronę zanim zdążyłem w ogóle przeczytać treść wyskakującego okienka ze zgodami.

    ) : null}
    ); } ReactDOM.render(, document.getElementById("app"));