Skip to content

Commit

Permalink
typecheck fixes checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
kuba-orlik committed Jul 9, 2022
1 parent c86a3e2 commit e1d97f0
Show file tree
Hide file tree
Showing 15 changed files with 107 additions and 101 deletions.
8 changes: 5 additions & 3 deletions components/report-window/email-content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@ export default function EmailContent({
function copyTextToClipboard() {
// Should be changed in the future to Clipboard API (https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write#browser_compatibility)
let r = document.createRange();
r.selectNode(document.querySelector('.mail-container__content'));
window.getSelection().addRange(r);
const container = document.querySelector('.mail-container__content');
if (!container) return;
r.selectNode(container);
window.getSelection()?.addRange(r);
document.execCommand('copy');
window.getSelection().removeAllRanges();
window.getSelection()?.removeAllRanges();
setCopy(true);
}

Expand Down
5 changes: 4 additions & 1 deletion components/report-window/generate-survey-questions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ function generateHostPage(
defaultValueExpression:
index == 0
? 'marketing'
: `{${f('legitimate_interest_description', previous_cluster)}}`,
: `{${f(
'legitimate_interest_description',
previous_cluster || undefined
)}}`,
},
{
type: 'radiogroup',
Expand Down
11 changes: 8 additions & 3 deletions components/report-window/har-converter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ function handleNewFile(
);
setFiltered(new Blob([JSON.stringify(content)], { type: 'application/json' }));
});
reader.readAsText(element.files[0]);
const file = element?.files?.[0];
if (!file) throw new Error('file empty?');
reader.readAsText(file);
}

function generateFakeHAR(entries: StolenDataEntry[]) {
Expand Down Expand Up @@ -80,8 +82,11 @@ export default function HARConverter({ entries }: { entries: StolenDataEntry[] }
type="file"
accept=".har"
onChange={(e) => {
setFilename(e.target.files[0].name);
handleNewFile(e.target, entries, setFiltered);
const file = e.target?.files?.[0];
if (file) {
setFilename(file.name);
handleNewFile(e.target, entries, setFiltered);
}
}}
/>
{(filtered && (
Expand Down
36 changes: 0 additions & 36 deletions components/report-window/problems/unlawful-data.tsx

This file was deleted.

14 changes: 10 additions & 4 deletions components/report-window/report-window.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,30 @@ function Report() {
const url = new URL(document.location.toString());
const origin = url.searchParams.get('origin');
const [counter] = useEmitter(getMemory());
const rawAnswers = url.searchParams.get('answers');
const [answers, setAnswers] = React.useState<ParsedAnswers>(
url.searchParams.get('answers') ? JSON.parse(url.searchParams.get('answers')) : null
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);
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)
.find((cluster) => cluster.getMarkedRequests().length > 0)
?.getMarkedRequests()[0].originalURL;
.sort((clusterA, clusterB) => (clusterA.lastModified > clusterB.lastModified ? -1 : 1))
.find((cluster) => !!cluster.lastFullUrl)?.lastFullUrl;

if (!visited_url) {
return <div>Wczytywanie...</div>;
}

const result = (
<div {...{ 'data-version': counter }}>
Expand Down
6 changes: 3 additions & 3 deletions components/report-window/screenshot-generator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export default function ScreenshotGenerator({
}) {
const [mode, setMode] = React.useState<string>('idle');
const [images, setImages] = React.useState<Screenshot[]>([]);
const [taskId, setTaskId] = React.useState<string>(null);
const [taskId, setTaskId] = React.useState<string | null>(null);
const [output, setOutput] = React.useState<any>({});

async function subscribeTask(path: string): Promise<screenshotTask> {
Expand All @@ -75,8 +75,8 @@ export default function ScreenshotGenerator({
await new Promise((resolve) => setTimeout(resolve, 1000));
response = await (await pollTask(path)).json();
setImages((response as screenshotTask)?.images);
document.querySelector('.images').scrollTo({
top: document.querySelector('.images').scrollHeight,
document.querySelector('.images')?.scrollTo({
top: document.querySelector('.images')?.scrollHeight,
behavior: 'smooth',
});
}
Expand Down
4 changes: 2 additions & 2 deletions components/report-window/use-survey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import verbs, { v } from './verbs';
export default function useSurvey(
clusters: RequestCluster[],
{ onComplete }: { onComplete: (sender: { data: RawAnswers }) => void }
): Survey.ReactSurveyModel {
const [survey, setSurvey] = React.useState<Survey.Model>(null);
): Survey.ReactSurveyModel | null {
const [survey, setSurvey] = React.useState<Survey.Model | null>(null);
React.useEffect(() => {
const model = generateSurveyQuestions(clusters);
const survey = new Survey.Model(model);
Expand Down
25 changes: 9 additions & 16 deletions components/sidebar/sidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
import React from 'react';
import ReactDOM from 'react-dom';
import Options from '../../options';
import { StolenData } from './stolen-data';
import { getshorthost, useEmitter } from '../../util';
import { getMemory } from '../../memory';

async function getCurrentTab() {
const [tab] = await browser.tabs.query({
active: true,
windowId: browser.windows.WINDOW_ID_CURRENT,
});
return tab;
}

import Options from '../../options';
import { useEmitter } from '../../util';
import './../../styles/global.scss';
import './sidebar.scss';
import { StolenData } from './stolen-data';

const Sidebar = () => {
const url = new URL(document.location.toString());
Expand All @@ -28,8 +19,8 @@ const Sidebar = () => {
const [cookiesOnly, setCookiesOnly] = React.useState<boolean>(false);
const [stolenDataView, setStolenDataView] = React.useState<boolean>(true);
const [cookiesOrOriginOnly, setCookiesOrOriginOnly] = React.useState<boolean>(false);
const [eventCounts, setEventCounts] = useEmitter(getMemory());
const [marksOccurrence, setMarksOccurrence] = React.useState<boolean>(false);
const [eventCounts] = useEmitter(getMemory());
const [_, setMarksOccurrence] = React.useState<boolean>(false);
const [infoDataDialogAck, setInfoDataDialogAck] = React.useState<boolean>(
localStorage.getItem('infoDataDialogAck') === null
? true
Expand All @@ -53,6 +44,7 @@ const Sidebar = () => {
);

React.useEffect(() => {
if (!origin) return;
for (const cluster of Object.values(getMemory().getClustersForOrigin(origin))) {
if (cluster.hasMarks()) {
return setMarksOccurrence(true);
Expand All @@ -62,6 +54,7 @@ const Sidebar = () => {
return setMarksOccurrence(false);
}, [eventCounts['*']]);

if (!origin) return <div>Błąd: Brak parametru "origin"</div>;
return (
<div className="sidebar">
<header className="header">
Expand Down Expand Up @@ -204,15 +197,15 @@ const Sidebar = () => {
<StolenData
origin={origin}
eventCounts={eventCounts}
minValueLength={minValueLength}
minValueLength={minValueLength === null ? 7 : minValueLength}
cookiesOnly={cookiesOnly}
cookiesOrOriginOnly={cookiesOrOriginOnly}
detailsVisibility={detailsVisibility}
/>
</>
) : (
<Options
minValueLength={minValueLength}
minValueLength={minValueLength === null ? 7 : minValueLength}
setMinValueLength={setMinValueLength}
cookiesOnly={cookiesOnly}
setCookiesOnly={setCookiesOnly}
Expand Down
4 changes: 2 additions & 2 deletions components/sidebar/stolen-data.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export function StolenData({
detailsVisibility,
}: {
origin: string;
eventCounts: Record<string, number>;
eventCounts: Record<string, number | undefined>;
minValueLength: number;
cookiesOnly: boolean;
cookiesOrOriginOnly: boolean;
Expand Down Expand Up @@ -43,7 +43,7 @@ export function StolenData({
origin={origin}
shorthost={cluster.id}
key={cluster.id + origin}
refreshToken={eventCounts[cluster.id]}
refreshToken={eventCounts[cluster.id] || 0}
minValueLength={minValueLength}
cookiesOnly={cookiesOnly}
cookiesOrOriginOnly={cookiesOrOriginOnly}
Expand Down
3 changes: 2 additions & 1 deletion components/sidebar/tab-dropdown.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from 'react';
import { Tab } from '../../util';

export default function TabDropdown({
setPickedTab,
Expand All @@ -7,7 +8,7 @@ export default function TabDropdown({
setPickedTab: (tab_id: number) => void;
pickedTab: number;
}) {
const [tabs, setTabs] = React.useState([]);
const [tabs, setTabs] = React.useState<Tab[]>([]);
React.useEffect(() => {
browser.tabs.query({ currentWindow: true }).then(setTabs);
}, []);
Expand Down
40 changes: 27 additions & 13 deletions components/toolbar/toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@ import './toolbar.scss';

const Toolbar = () => {
const [origin, setOrigin] = React.useState<string | null>(null);
const [stolenDataView, setStolenDataView] = React.useState<boolean>(true);
const [eventCounts, setEventCounts] = useEmitter(getMemory());
const [eventCounts] = useEmitter(getMemory());
const [cookieDomainCopy, setCookieDomainCopy] = React.useState<string | null>(null);
const [marksOccurrence, setMarksOccurrence] = React.useState<boolean>(false);
const [_, setMarksOccurrence] = React.useState<boolean>(false);
const [exposedOriginDomainCopy, setExposedOriginDomainCopy] = React.useState<string | null>(
null
);
Expand All @@ -33,6 +32,7 @@ const Toolbar = () => {
const tab = await getCurrentTab();

if (tab !== undefined) {
if (!tab.url) return;
const url = new URL(tab.url);
if (url.origin.startsWith('moz-extension')) {
return;
Expand All @@ -58,23 +58,27 @@ const Toolbar = () => {

switch (exposedOriginDomains.length) {
case 0:
return null;
break;
case 1:
return setExposedOriginDomainCopy(`${exposedOriginDomains[0]}.`);
setExposedOriginDomainCopy(`${exposedOriginDomains[0]}.`);
break;
case 2:
return setExposedOriginDomainCopy(
setExposedOriginDomainCopy(
`${exposedOriginDomains[0]} oraz ${exposedOriginDomains[1]}.`
);
break;
case 3:
return setExposedOriginDomainCopy(
setExposedOriginDomainCopy(
`${exposedOriginDomains[0]}, ${exposedOriginDomains[1]} oraz ${exposedOriginDomains[2]}.`
);
break;
default:
return setExposedOriginDomainCopy(
setExposedOriginDomainCopy(
`${exposedOriginDomains[0]}, ${exposedOriginDomains[1]} (i ${
exposedOriginDomains.length - 2 < 2 ? 2 : exposedOriginDomains.length - 2
} innych).`
);
break;
}
}, [eventCounts['*'], origin]);

Expand All @@ -86,25 +90,30 @@ const Toolbar = () => {

switch (cookieDomains.length) {
case 0:
return null;
null;
case 1:
return setCookieDomainCopy(`${cookieDomains[0]}.`);
setCookieDomainCopy(`${cookieDomains[0]}.`);
break;
case 2:
return setCookieDomainCopy(`${cookieDomains[0]} oraz ${cookieDomains[1]}.`);
setCookieDomainCopy(`${cookieDomains[0]} oraz ${cookieDomains[1]}.`);
break;
case 3:
return setCookieDomainCopy(
setCookieDomainCopy(
`${cookieDomains[0]}, ${cookieDomains[1]} oraz ${cookieDomains[2]}.`
);
break;
default:
return setCookieDomainCopy(
setCookieDomainCopy(
`${cookieDomains[0]}, ${cookieDomains[1]} (i ${
cookieDomains.length - 2 < 2 ? 2 : cookieDomains.length - 2
} innych).`
);
break;
}
}, [eventCounts['*'], origin]);

React.useEffect(() => {
if (!origin) return;
for (const cluster of Object.values(getMemory().getClustersForOrigin(origin))) {
if (cluster.hasMarks()) {
return setMarksOccurrence(true);
Expand All @@ -115,12 +124,17 @@ const Toolbar = () => {
}, [eventCounts['*']]);

function autoMark() {
if (!origin) return;
for (const cluster of Object.values(getMemory().getClustersForOrigin(origin))) {
cluster.autoMark();
}
return setMarksOccurrence(true);
}

if (!origin) {
return <div>Wczytywanie...</div>;
}

return (
<div className="toolbar">
<header className="header">
Expand Down
Loading

0 comments on commit e1d97f0

Please sign in to comment.