Skip to content

Commit 3bb9b19

Browse files
authored
Merge pull request #63 from CodeandoMexico/issue44
Agregando filtrado en recursos
2 parents 1f5109b + a0990d2 commit 3bb9b19

File tree

1 file changed

+43
-33
lines changed

1 file changed

+43
-33
lines changed

src/routes/recursos/+page.svelte

Lines changed: 43 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,57 @@
22
import { updateMenuSelector } from '@/lib/menuSelectorUpdater.js';
33
import Hero from "@/components/Hero.svelte";
44
import RecursosCard from "@/components/Cards/RecursosCard.svelte";
5-
65
export let data
76
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+
}
817
918
updateMenuSelector({url: '/recursos'})
1019
</script>
1120

1221
<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." />
1322

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

0 commit comments

Comments
 (0)