rentgen/components/report-window/problems/problem.tsx

39 lines
1.2 KiB
TypeScript
Raw Normal View History

import { RequestCluster } from '../../../request-cluster';
2022-02-10 21:52:40 +01:00
import { ExplainerKey } from '../explainers';
import { ParsedAnswers } from '../parse-answers';
function formatRange(cluster: RequestCluster) {
2022-04-24 22:11:33 +02:00
const parts = [] as string[];
console.log(cluster);
if (cluster.hasMarkedCookies()) {
parts.push('mojego identyfikatora internetowego pozyskanego z Cookie');
}
if (cluster.exposesOrigin()) {
parts.push('części mojej historii przeglądania');
}
return parts.join(' oraz ');
2022-02-10 21:52:40 +01:00
}
export abstract class Problem {
2022-04-24 22:11:33 +02:00
constructor(public answers: ParsedAnswers, public clusters: Record<string, RequestCluster>) {}
2022-02-10 21:52:40 +01:00
2022-04-24 22:11:33 +02:00
abstract getEmailContent(): JSX.Element;
abstract getNecessaryExplainers(): ExplainerKey[];
2022-02-10 21:52:40 +01:00
2022-04-24 22:11:33 +02:00
getMarkedClusters() {
return Object.values(this.clusters).filter((c) => c.hasMarks());
}
2022-02-10 21:52:40 +01:00
2022-04-24 22:11:33 +02:00
getRangeDescription() {
return (
<ul>
{this.getMarkedClusters().map((cluster) => (
<li key={cluster.id}>
{cluster.id} (w zakresie: {formatRange(cluster)})
</li>
))}
</ul>
);
}
2022-02-10 21:52:40 +01:00
}