import React, { Fragment } from 'react'; import ReactDOM from 'react-dom'; import { getMemory } from '../../memory'; import { useEmitter } from '../../util'; import './report-window.scss'; import Questions from './questions'; import EmailContent from './email-content'; import { parseAnswers, ParsedAnswers } from './parse-answers'; import ScreenshotGenerator from './screenshot-generator'; function Report() { try { const url = new URL(document.location.toString()); const origin = url.searchParams.get('origin'); const [counter] = useEmitter(getMemory()); const [answers, setAnswers] = React.useState( url.searchParams.get('answers') ? JSON.parse(url.searchParams.get('answers')) : null ); const [mode, setMode] = React.useState(url.searchParams.get('mode') || 'survey'); const clusters = getMemory().getClustersForOrigin(origin); /* const [entries, setEntries] = React.useState([]); */ /* React.useEffect(() => { * setEntries( * Object.values(clusters) * .map((cluster) => { * cluster.calculateRepresentativeStolenData(); * return cluster.representativeStolenData; * }) * .reduce(reduceConcat, []) * .filter((entry) => entry.isMarked) * ); * }, []); */ /* if (entries.length == 0) { * return <>Wczytywanie...; * } */ React.useEffect(() => { const url = new URL(document.location.toString()); url.searchParams.set('origin', origin); url.searchParams.set('answers', JSON.stringify(answers)); url.searchParams.set('mode', mode); history.pushState({}, 'Rentgen', url.toString()); }, [mode, answers, origin]); const visited_url = Object.values(clusters) .find((cluster) => cluster.getMarkedRequests().length > 0) ?.getMarkedRequests()[0].originalURL; const result = (
{mode === 'survey' ? ( cluster.getMarkedRequests().length > 0) .map((cluster) => cluster.id)} onComplete={(answers) => { setAnswers(parseAnswers(answers)); setMode('screenshots'); }} > ) : ( '' )} {mode === 'screenshots' ? ( ) : ( '' )} {mode === 'preview' ? : ''} {/* */}
); return (
{origin ? ( <> Generowanie raportu {origin} ) : ( Przejdź do wybranej strony internetowej )}
{result}
); } catch (e) { console.error(e); return
ERROR! {JSON.stringify(e)}
; } } ReactDOM.render(, document.getElementById('app'));