diff --git a/components/report-window/email-content.scss b/components/report-window/email-content.scss
new file mode 100644
index 0000000..3fa4b50
--- /dev/null
+++ b/components/report-window/email-content.scss
@@ -0,0 +1,31 @@
+@import './../../styles/colors.scss';
+
+.mail-container {
+ box-shadow: rgba(12, 12, 13, 0.1) 0px 1px 4px 0px;
+ background-color: #fff;
+ max-width: 40rem;
+ margin-top: 0.5rem;
+
+ &__header {
+ display: flex;
+ justify-content: flex-end;
+
+ &--control {
+ }
+ }
+
+ &__content {
+ height: 75vh;
+ overflow-y: scroll;
+ padding: 1rem 2rem;
+ color: $black-color;
+ }
+
+ h2 {
+ font-size: 1.125rem;
+ }
+
+ p {
+ font-size: 1rem;
+ }
+}
diff --git a/components/report-window/email-content.tsx b/components/report-window/email-content.tsx
index b2ae6b8..85aa4a3 100644
--- a/components/report-window/email-content.tsx
+++ b/components/report-window/email-content.tsx
@@ -4,6 +4,7 @@ import deduceProblems from './deduce-problems';
import { Explainers } from './explainers';
import { ParsedAnswers } from './parse-answers';
import { v } from './verbs';
+import './email-content.scss';
declare var PLUGIN_NAME: string;
declare var PLUGIN_URL: string;
@@ -27,32 +28,40 @@ export default function EmailContent({
)
).map((explainer_key) => Explainers[explainer_key]);
return (
-
-
{JSON.stringify(answers, null, 3)}
-
Dzień dobry,
-
- w dniu {getDate()} {_('odwiedziłem')} stronę {visited_url}. Po podejrzeniu ruchu
- sieciowego generowanego przez tę stronę za pomocą wtyczki{' '}
- {PLUGIN_NAME} w przeglądarce Firefox {_('mam')} pytania
- dotyczące przetwarzania {_('moich')} danych osobowych, na które nie {_('znalazłem')}{' '}
- odpowiedzi nigdzie na Państwa stronie.
-
- {problems.map((problem) => problem.getEmailContent())}
- {explainers.map((explainer) => explainer(answers.zaimek))}
-
Państwa rola jako współadministratora danych osobowych
-
- {_('Zwracam')} Państwa uwagę na fakt, że w myśl{' '}
-
- treści wyroku TSUE w sprawie C-40/17
- {' '}
- poprzez wysyłanie moich danych w wyżej opisanym zakresie stają się Państwo
- współadministratorem moich danych osobowych, dlatego ciąży na Państwu obowiązek
- odpowiedzi na moje pytania na mocy Art. 12 i 13 Rozporządzenia 2016/679 Parlamentu
- Europejskiego i Rady (UE) z dnia 27 kwietnia 2016 r. w sprawie ochrony osób
- fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego
- przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o
- ochronie danych, dalej: „RODO”).
-
+
+
+
+ {/*
{JSON.stringify(answers, null, 3)}
*/}
+
+ Dzień dobry,
+
+ w dniu {getDate()} {_('odwiedziłem')} stronę {visited_url}. Po podejrzeniu ruchu
+ sieciowego generowanego przez tę stronę za pomocą wtyczki{' '}
+ {PLUGIN_NAME} w przeglądarce Firefox {_('mam')} pytania
+ dotyczące przetwarzania {_('moich')} danych osobowych, na które nie{' '}
+ {_('znalazłem')} odpowiedzi nigdzie na Państwa stronie.
+
+ {problems.map((problem) => problem.getEmailContent())}
+ {explainers.map((explainer) => explainer(answers.zaimek))}
+ Państwa rola jako współadministratora danych osobowych
+
+ {_('Zwracam')} Państwa uwagę na fakt, że w myśl{' '}
+
+ treści wyroku TSUE w sprawie C-40/17
+ {' '}
+ poprzez wysyłanie moich danych w wyżej opisanym zakresie stają się Państwo
+ współadministratorem moich danych osobowych, dlatego ciąży na Państwu obowiązek
+ odpowiedzi na moje pytania na mocy Art. 12 i 13 Rozporządzenia 2016/679
+ Parlamentu Europejskiego i Rady (UE) z dnia 27 kwietnia 2016 r. w sprawie
+ ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie
+ swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne
+ rozporządzenie o ochronie danych, dalej: „RODO”).
+
+
);
}
diff --git a/components/report-window/report-window.tsx b/components/report-window/report-window.tsx
index 737acd5..ff281ca 100644
--- a/components/report-window/report-window.tsx
+++ b/components/report-window/report-window.tsx
@@ -7,6 +7,7 @@ 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 {
@@ -54,12 +55,17 @@ function Report() {
.map((cluster) => cluster.id)}
onComplete={(answers) => {
setAnswers(parseAnswers(answers));
- setMode('preview');
+ setMode('screenshots');
}}
>
) : (
''
)}
+ {mode === 'screenshots' ? (
+
+ ) : (
+ ''
+ )}
{mode === 'preview' ?
: ''}
{/*
*/}
diff --git a/components/report-window/screenshot-generator.scss b/components/report-window/screenshot-generator.scss
new file mode 100644
index 0000000..e69de29
diff --git a/components/report-window/screenshot-generator.tsx b/components/report-window/screenshot-generator.tsx
new file mode 100644
index 0000000..03ed9cc
--- /dev/null
+++ b/components/report-window/screenshot-generator.tsx
@@ -0,0 +1,83 @@
+import React, { Fragment } from 'react';
+import { RequestCluster } from '../../request-cluster';
+import './screenshot-generator.scss';
+
+function createTaskEndpoint(visited_url: string, domains: string[]) {
+ return `http://65.108.60.135:3000/api/requests?url=${visited_url}${domains.reduce(
+ (prev: string, curr: string) => prev + '&domains[]=' + curr,
+ ''
+ )}`;
+}
+
+function createTask(visited_url: string, domains: string[]) {
+ return fetch(createTaskEndpoint(visited_url, domains), { method: 'POST' });
+}
+
+async function subscribe(path: string) {
+ let request = await fetch(path, { method: 'GET' });
+ const response = await request.json();
+
+ if (response.status === 'running' || response.status === 'waiting') {
+ console.debug(response.status);
+
+ await new Promise((resolve) => setTimeout(resolve, 1000));
+ await subscribe(path);
+ } else if (response.status === 'finished') {
+ console.log('response', response);
+ return response;
+ }
+}
+
+export default function ScreenshotGenerator({
+ visited_url,
+ clusters,
+}: {
+ visited_url: string;
+ clusters: Record