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 downloadFiles(link: string) { let a = document.createElement('a'); a.setAttribute('href', link); a.setAttribute('download', ''); a.setAttribute('target', '_blank'); a.click(); } function Report() { try { const url = new URL(document.location.toString()); const origin = url.searchParams.get('origin'); if (!origin) { return
Błąd: brak parametru "origin"
; } const [counter] = useEmitter(getMemory()); const rawAnswers = url.searchParams.get('answers'); const [answers, setAnswers] = React.useState( rawAnswers ? JSON.parse(rawAnswers) : null ); const [mode, setMode] = React.useState(url.searchParams.get('mode') || 'survey'); const [scrRequestPath, setScrRequestPath] = React.useState(''); const clusters = getMemory().getClustersForOrigin(origin || ''); React.useEffect(() => { if (!origin) return; 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) .sort((a, b) => (a.lastModified > b.lastModified ? -1 : 1)) .find((cluster) => !!cluster.lastFullUrl)?.lastFullUrl; if (!visited_url) { return
Wczytywanie...
; } const result = (
{mode === 'survey' ? ( cluster.getMarkedRequests().length > 0 )} 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'));