diff --git a/README.md b/README.md index 7225958..9fff163 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build](https://github.com/uqbar-project/eg-paises-svelte/actions/workflows/build.yml/badge.svg)](https://github.com/uqbar-project/eg-paises-svelte/actions/workflows/build.yml) -![demo](./videos/demo.gif) +![demo](./videos/demoNueva.gif) En este ejemplo podemos estudiar diff --git a/images/forms-debounce.gif b/images/forms-debounce.gif new file mode 100644 index 0000000..52a0e60 Binary files /dev/null and b/images/forms-debounce.gif differ diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 43cea71..de9b8b7 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -6,6 +6,7 @@ import Bandera from '$lib/Bandera.svelte' let paisBusqueda = $state('') + let busquedaAutomatica = $state(false) let paises = $state([]) let buscarHabilitado = $derived(paisBusqueda.trim() !== '') @@ -13,11 +14,26 @@ paises = await paisService.buscarPais(paisBusqueda) } - const handleKeydown = async (event: { keyCode: number }) => { + const handleKeyDownBuscar = async (event: { keyCode: number }) => { if (event.keyCode === 13) { await buscar() } } + + let timeout: ReturnType + + const debounce = (callback: Function, wait: number) => { + return (...args: any[]) => { + clearTimeout(timeout) + timeout = setTimeout(() => { callback(...args) }, wait) + } + } + + const handleKeyUpBuscar = async () => { + if (busquedaAutomatica && buscarHabilitado) { + debounce(buscar, 1000)() + } + }
@@ -26,11 +42,18 @@
- + {#if !busquedaAutomatica} + + {/if} +
+
+ +
{#each paises as pais, indice} diff --git a/src/routes/pais/[code]/pais.css b/src/routes/pais/[code]/pais.css index d073dab..a00f77d 100644 --- a/src/routes/pais/[code]/pais.css +++ b/src/routes/pais/[code]/pais.css @@ -46,4 +46,8 @@ img.superpoblado { margin-top: 1.5em; height: 3em; font-size: large; +} + +.botonera:hover { + cursor: pointer; } \ No newline at end of file diff --git a/src/routes/paises.css b/src/routes/paises.css index d27bf7a..607060b 100644 --- a/src/routes/paises.css +++ b/src/routes/paises.css @@ -19,6 +19,22 @@ button { height: 2rem; } +button:hover { + cursor: pointer; +} + +.check { + display: flex; + flex-direction: row; + align-items: center; +} + +.checkbox { + width: auto; + margin: 0 0.5rem; +} + + .paises { margin-top: 1rem; display: grid; @@ -46,7 +62,7 @@ button { color: darkslategray; } -@media(min-width: 440px) { +@media(max-width: 500px) { .paises { grid-template-columns: 1fr 1fr; } diff --git a/videos/demo.gif b/videos/demo.gif deleted file mode 100644 index ee44575..0000000 Binary files a/videos/demo.gif and /dev/null differ diff --git a/videos/demoNueva.gif b/videos/demoNueva.gif new file mode 100644 index 0000000..5ba4fe1 Binary files /dev/null and b/videos/demoNueva.gif differ