Skip to content

Commit 57567fa

Browse files
committed
Fix "Post e Webinar": Rename components, update target and method lists, and refine styles
1 parent 20f23b9 commit 57567fa

File tree

6 files changed

+51
-26
lines changed

6 files changed

+51
-26
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ src > pages > [path_del_file].astro
2323

2424
---
2525

26-
## Inserimento Immagini nelle **Attività in Diretta**
26+
## Inserimento Immagini nelle **APost e Webinar**
2727

28-
Per aggiungere correttamente le immagini da visualizzare nella pagina dinamica **Risorse > Attività in Diretta**, segui queste istruzioni:
28+
Per aggiungere correttamente le immagini da visualizzare nella pagina dinamica **Risorse > Post e Webinar**, segui queste istruzioni:
2929

3030
1. Vai nella cartella dedicata alle immagini:
3131

3232
```
33-
public > risorse > attivita-in-diretta
33+
public > risorse > post-e-webinar
3434
```
3535

3636
2. Inserisci l'immagine:
File renamed without changes.
File renamed without changes.

src/components/DynamicSpreadsheet.tsx

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,18 @@ export default function DynamicSpreadsheet() {
1111
descrizione: string;
1212
url_video: string;
1313
nome_immagine: string;
14-
metodo: string;
15-
target: string;
14+
metodi: string[];
15+
targets: string[];
16+
};
17+
18+
type TmpRow = {
19+
data: string;
20+
nome: string;
21+
descrizione: string;
22+
url_video: string;
23+
nome_immagine: string;
24+
metodi: string;
25+
targets: string;
1626
};
1727

1828
const spreadshettPath = import.meta.env.PUBLIC_SPREADSHEET_URL;
@@ -28,32 +38,33 @@ export default function DynamicSpreadsheet() {
2838
});
2939

3040
const [metodi, setMetodi] = useState([
31-
{ name: 'CodyRoby', selected: false, color: 'yellow' },
32-
{ name: 'CodyColor', selected: false, color: 'green' },
33-
{ name: 'CodyFeet', selected: false, color: 'red' },
41+
{ name: 'CodyRoby', selected: false, color: '#6af32a' },
42+
{ name: 'CodyColor', selected: false, color: '#f3d52a' },
43+
{ name: 'CodyFeet', selected: false, color: '#dc2af3' },
3444
]);
3545

3646
const [target, setTarget] = useState([
37-
{ name: 'Infanzia', selected: false, color: 'yellow' },
38-
{ name: 'Primaria', selected: false, color: 'green' },
39-
{ name: 'Secondaria', selected: false, color: 'red' },
47+
{ name: 'Infanzia', selected: false, color: '#2a37f3' },
48+
{ name: 'Primaria', selected: false, color: '#2af3d2' },
49+
{ name: 'Secondaria', selected: false, color: '#fd1919' },
4050
]);
41-
4251
const handleFilterSelection = ({ filter, value }) => {
4352
setFilters((prevFilters) => {
4453
const updatedFilterValues = prevFilters[filter]?.includes(value)
4554
? prevFilters[filter].filter((item) => item !== value)
4655
: [...(prevFilters[filter] || []), value];
4756

57+
console.log(updatedFilterValues);
4858
return {
4959
...prevFilters,
5060
[filter]: updatedFilterValues,
5161
};
5262
});
63+
5364
if (filter === 'metodo') {
54-
setMetodi((prevMetodi) =>
55-
prevMetodi.map((item) => (item.name === value ? { ...item, selected: !item.selected } : item))
56-
);
65+
setMetodi((prevMetodi) => {
66+
return prevMetodi.map((item) => (item.name === value ? { ...item, selected: !item.selected } : item));
67+
});
5768
} else if (filter === 'target') {
5869
setTarget((prevTargets) =>
5970
prevTargets.map((item) => (item.name === value ? { ...item, selected: !item.selected } : item))
@@ -62,8 +73,9 @@ export default function DynamicSpreadsheet() {
6273
};
6374

6475
const filteredRows = rows.filter((row: Row) => {
65-
const metodiMatch = filters.metodo.length === 0 || filters.metodo.includes(row.metodo);
66-
const targetMatch = filters.target.length === 0 || filters.target.includes(row.target);
76+
console.log('Entri qua ', row);
77+
const metodiMatch = filters.metodo.length === 0 || filters.metodo.some((metodo) => row.metodi.includes(metodo));
78+
const targetMatch = filters.target.length === 0 || filters.target.some((target) => row.targets.includes(target));
6779
return metodiMatch && targetMatch;
6880
});
6981

@@ -88,7 +100,13 @@ export default function DynamicSpreadsheet() {
88100
return dateB.getTime() - dateA.getTime();
89101
});
90102

91-
setRows(sortedRecords);
103+
const splittedRecords = sortedRecords.map((tmp: TmpRow) => ({
104+
...tmp,
105+
metodi: tmp.metodi.split(',').map((metodo) => metodo.trim()),
106+
targets: tmp.targets.split(',').map((target) => target.trim()),
107+
}));
108+
109+
setRows(splittedRecords);
92110
});
93111
} catch (error) {
94112
console.error('Error fetching spreadsheet data:', error);
@@ -107,7 +125,7 @@ export default function DynamicSpreadsheet() {
107125

108126
return (
109127
<div className="prose-page">
110-
<div className="flex justify-start items-center gap-4 ">
128+
<div className="flex justify-start items-center gap-4">
111129
<p className="font-semibold">Filtri:</p>
112130

113131
<IconSelect
@@ -124,7 +142,6 @@ export default function DynamicSpreadsheet() {
124142
/>
125143
</div>
126144
<div className="flex gap-4 not-prose">
127-
{/* {isMetodiSelected && <p>Metodi: </p>} */}
128145
{metodi.map(
129146
(m) =>
130147
m.selected && (
@@ -170,14 +187,22 @@ export default function DynamicSpreadsheet() {
170187
key={index}
171188
target="_blank"
172189
>
173-
<img src={`/risorse/attivita-in-diretta/${row.nome_immagine}`} alt="" className="max-w-[200px]" />
190+
<img src={`/risorse/post-e-webinar/${row.nome_immagine}`} alt="" className="max-w-[200px]" />
174191

175192
<div className="not-prose">
176193
<h3 className="text-2xl">{row.nome}</h3>
177194
{row.descrizione && <p className="text-base text-slate-700 mt-2">{row.descrizione}</p>}
178195
<div className="flex gap-2 mt-2">
179-
<Filter name={row.metodo} color={getColor('metodo', row.metodo)} />
180-
<Filter name={row.target} color={getColor('target', row.target)} />
196+
{row.metodi &&
197+
row.metodi.length > 0 &&
198+
row.metodi.map((metodo) => (
199+
<Filter key={`${row.nome}-${metodo}`} name={metodo} color={getColor('metodo', metodo)} />
200+
))}
201+
{row.targets &&
202+
row.targets.length > 0 &&
203+
row.targets.map((target) => (
204+
<Filter key={`${row.nome}-${target}`} name={target} color={getColor('target', target)} />
205+
))}
181206
</div>
182207
</div>
183208
</a>

src/navigation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ export const headerData = {
7777
href: getPermalink(`${appPath}/videolezioni`),
7878
},
7979
{
80-
text: 'Attività in diretta',
81-
href: getPermalink(`${appPath}/attivita-in-diretta`),
80+
text: 'Post e Webinar',
81+
href: getPermalink(`${appPath}/post-e-webinar`),
8282
},
8383
],
8484
},

src/pages/risorse/attivita-in-diretta.astro renamed to src/pages/risorse/post-e-webinar.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { parse } from 'csv-parse/browser/esm';
66
import DynamicSpreadsheet from '~/components/DynamicSpreadsheet.tsx';
77
88
const metadata = {
9-
title: 'Attività in diretta',
9+
title: 'Post e Webinar',
1010
tagline: 'Risorse',
1111
};
1212
---

0 commit comments

Comments
 (0)