Newer
Older
import React from "react";
import { TaxType } from "../../../api/stats";
import { AVAILABLE_YEARS, DEPARTEMENTS } from "./scatterplot.utils";
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import "./ScatterPlot.css";
const TAX_LABELS: Record<TaxType, string> = {
tfpnb: "tfpnb",
tfpb: "tfpb",
th: "th",
cfe: "cfe",
};
type Props = {
selectedTax: TaxType;
year: number;
department: string;
onTaxChange: (t: TaxType) => void;
onYearChange: (y: number) => void;
onDepartmentChange: (y: string) => void;
};
export const ScatterPlotControls: React.FC<Props> = ({
selectedTax,
year,
department,
onTaxChange,
onYearChange,
onDepartmentChange,
}) => {
return (
<div className="controls-panel">
<div className="control-group">
<label className="control-label">Type de taxe</label>
<div className="button-group">
{(Object.keys(TAX_LABELS) as TaxType[]).map((tax) => (
<button
key={tax}
className={`filter-button ${selectedTax === tax ? "active" : ""}`}
onClick={() => onTaxChange(tax)}
type="button"
>
{TAX_LABELS[tax]}
</button>
))}
</div>
</div>
<div className="control-group">
<label className="control-label">Année</label>
<div className="controls">
<div className="selector">
<span className="label">En</span>
className="select"
value={year}
onChange={(e) => onYearChange(Number(e.target.value))}
>
{AVAILABLE_YEARS.map((year) => (
<option key={year} value={year}>
{year}
</option>
))}
</select>
</div>
</div>
</div>
<div className="control-group">
<label className="control-label">Département</label>
<div className="controls">
<div className="selector">
<span className="label">De</span>
className="select"
value={department}
onChange={(e) => onDepartmentChange(String(e.target.value))}
>
{Object.entries(DEPARTEMENTS).map(([department, nom]) => (
<option key={department} value={department}>
{nom}
</option>
))}
</select>
</div>
</div>
</div>
</div>
);
};