Skip to content

Commit e5bc139

Browse files
committed
Agregando filtrado en recursos
Cambios: - Agregar filtrado para mostrar los recursos - Reacomodo de elementos HTML para mostrar los filtrados
1 parent b98be79 commit e5bc139

File tree

1 file changed

+43
-32
lines changed

1 file changed

+43
-32
lines changed

src/routes/recursos/+page.svelte

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,53 @@
44
55
export let data
66
const { conocimientos, recursos } = data
7+
const categories = ['todos', 'conocimiento', ...recursos.map(recurso => recurso.categorias)]
8+
let categorySelected = 'todos'
9+
let resources = [...recursos]
10+
11+
const handleCategorySelected = (category = '') => {
12+
categorySelected = category
13+
resources = categorySelected === 'todos'
14+
? [...recursos]
15+
: recursos.filter(recurso => recurso.categorias === categorySelected)
16+
}
717
</script>
818

919
<Hero accentColor="#FF6D53" image="/recursos.png" title="Recursos" subtitle="Conocimiento que hemos construido a lo largo del tiempo sobre tecnología cívica, datos abiertos y más." />
1020

11-
<!-- <div id="filtros" class="container mx-auto flex justify-start md:justify-center gap-3 my-8 flex-wrap p-3">
12-
<p class="uppercase font-bold inline">Todo</p>
13-
<p class="uppercase font-bold inline">Conocimiento</p>
14-
<p class="uppercase font-bold inline">Herramientas</p>
15-
<p class="uppercase font-bold inline">Proyectos</p>
16-
<p class="uppercase font-bold inline">Eventos</p>
17-
<p class="uppercase font-bold inline">Oportunidades</p>
18-
<p class="uppercase font-bold inline">Otros</p>
19-
</div> -->
20-
<section id="conocimiento" class="container mx-auto my-6 p-3">
21-
<h2 class="text-5xl font-bold"><img src="/recursos-conocimiento.png" class="inline h-[50px] my-5" alt="Conocimiento">
22-
Conocimiento</h2>
23-
{#each conocimientos as subseccion }
24-
<div class="my-5">
25-
<h3 class="text-3xl font-bold my-5">{subseccion.name}</h3>
26-
<div class="flex flex-wrap">
27-
{#each subseccion.recursos as item }
28-
<RecursosCard title={item.title} url={item.url} authors={item.authors}/>
29-
30-
{/each}
31-
</div>
32-
</div>
21+
<div id="filtros" class="container mx-auto flex justify-start justify-center gap-3 my-8 flex-wrap p-3">
22+
{#each categories as category}
23+
<a
24+
href={null}
25+
class={`uppercase font-bold inline cursor-pointer hover:underline${categorySelected === category ? ' text-cmxred' : ''}`}
26+
on:click={() => handleCategorySelected(category)}
27+
>{category}</a>
3328
{/each}
34-
</section>
35-
{#each recursos as categoria }
36-
<section id="{categoria.categorias}" class="container mx-auto my-6 p-3">
37-
<h2 class="text-5xl font-bold capitalize"><img src="/recursos-{categoria.categorias}.png" class="inline h-[50px] my-5" alt="{categoria.categorias}">
38-
{categoria.categorias}</h2>
39-
<div class="flex flex-wrap my-5">
40-
{#each categoria.recursos as recurso}
41-
<RecursosCard title={recurso.name} url={recurso.url}/>
29+
</div>
30+
{#if (categorySelected === 'todos' || categorySelected === 'conocimiento')}
31+
<section id="conocimiento" class="container mx-auto my-6 p-3">
32+
<h2 class="text-5xl font-bold"><img src="/recursos-conocimiento.png" class="inline h-[50px] my-5" alt="Conocimiento">
33+
Conocimiento</h2>
34+
{#each conocimientos as subseccion }
35+
<div class="my-5">
36+
<h3 class="text-3xl font-bold my-5">{subseccion.name}</h3>
37+
<div class="flex flex-wrap">
38+
{#each subseccion.recursos as item }
39+
<RecursosCard title={item.title} url={item.url} authors={item.authors}/>
40+
{/each}
41+
</div>
42+
</div>
4243
{/each}
43-
</div>
44-
</section>
44+
</section>
45+
{/if}
46+
{#each resources as resource}
47+
<section id="{resource.categorias}" class="container mx-auto my-6 p-3">
48+
<h2 class="text-5xl font-bold capitalize"><img src="/recursos-{resource.categorias}.png" class="inline h-[50px] my-5" alt="{resource.categorias}">
49+
{resource.categorias}</h2>
50+
<div class="flex flex-wrap my-5">
51+
{#each resource.recursos as recurso}
52+
<RecursosCard title={recurso.name} url={recurso.url}/>
53+
{/each}
54+
</div>
55+
</section>
4556
{/each}

0 commit comments

Comments
 (0)