This graph shows how many times the word ______ has been mentioned throughout the history of the program.
Hace unos dÃas, o hace una semana y tal, hice este vÃdeo donde hablo de cómo hacer un calendario con solo tres lÃneas de CSS
y en los comentarios habÃa gente que me preguntaba un poco de, oye, esto está muy bien.
Alguien me preguntaba que si se podÃa hacer este calendario realmente con JavaScript.
Y yo dije, hombre, claro, pues es que ¿dónde está el lÃmite de esto?
Al final yo lo hice el HTML y el CSS, pero aquà se puede hacer un poco de todo.
Se podrÃa intentar hacer esto con JavaScript a saco.
De hacer con JavaScript el calendario entero, con traducciones y con todo.
A ver lo que sale.
Creo que vamos a aprender un montón de cosas, porque se va a ver cosas del Date, Time, Format.
Vamos a ver también, bueno, sobre todo quiero hacer el calendario en JavaScript y lo quiero hacer que se pueda traducir, o sea, que venga traducido.
Asà que a ver, a ver qué sale de todo esto.
Voy a copiarme el HTML, si es que lo tengo en algún sitio.
¿TenÃa el HTML por algún lado?
A ver, de todo esto.
Ah, no, claro, porque aquà ya lo estaba.
No sé si habéis visto mi vÃdeo de este, pero voy a copiarme el HTML este que tenÃa.
Básicamente, estábamos cargando el stylesheet, stylesheet, con href, y esto venÃa del styles.css.
Esto creo que hay que cerrarlo.
Aquà tenÃamos un div.
Y lo que hacÃamos era una lista de números.
Y aquà ya podemos poner todos los números.
En este caso, pues vamos a poner que esto era enero del 2021.
Y aquÃ, ¿esto cómo era?
Esto era... ¿Cuántas veces? ¿Cómo se podÃa escribir esto?
Voy a ver mi propio vÃdeo para ver cómo se escribÃa esto.
¿Lo podéis creer?
¿Lo podéis creer?
No, vale, esto, 31.
Por 31.
Y creo que aquà se le ponÃa el número.
No, no es la N.
¿Cómo era esto?
¿Cómo era para poner el número?
¿Contenido de la etiqueta?
Ah, y eso...
Yo también.
Venga, ya está.
Bueno, más o menos.
TendrÃamos esto por aquÃ.
Esto va afuera.
Esto no va aquÃ.
¿Veis?
Con esto ya tendrÃamos el calendario, súper bien.
Lo que aquÃ, este, tendrÃa que ser el first day.
¿No?
Y esto es lo que...
No, no me acuerdo del estilo.
First day.
Clase first day.
Bueno, pues esto lo que deberÃa hacer era ponerme correctamente el dÃa que era viernes.
¿Vale?
Mira, claro, es que aquà habÃamos hecho esto.
Pero esto serÃa...
Vamos a poner que por ahora esto lo vamos a comentar.
Esto...
Vamos a ver el column start.
Column start.
Y esto tenÃa que empezar el 4.
A ver cómo es el calendario.
El calendario de enero de 2021.
¿Cuándo empezaba el primer dÃa?
El primer dÃa empezó en viernes.
Viernes.
Vale.
Pues...
Se empezó en viernes.
Vamos a dejar...
Vamos a guardar.
Grid column start.
¿Soy yo?
¿O está ignorándome totalmente?
A ver, ¿qué es lo que me está escapando por aqu�
A ver si de verdad me voy a tener que ver mi vÃdeo.
Grid column start tendrÃa...
Bueno, no es el 4.
DeberÃa ser el 5.
Pero aún asà no veo que esto se mueva.
A lo mejor es que...
Bueno, el mÃo.
¿Qué estás haciendo?
Mira, estoy haciendo...
Tengo aquà el vÃdeo que hice de cómo estilar un calendario con tres lÃneas de CSS.
¿Vale?
Entonces, lo que querÃa hacer es este calendario, básicamente, pero con JavaScript.
Y querÃa hacer 2021.
Además, un calendario que se pueda traducir en diferentes idiomas.
Y asà tenÃamos que ver diferentes APIs del navegador muy interesantes para hacer traducciones.
Y vamos a conseguir tener el calendario de enero a diciembre de 2021 todo generado.
¿Vale?
Porque ahora aquà tengo enero y lo tengo aquà puesto a mano.
¿Vale?
Voy a poner los dÃas de la semana.
¿Vale?
DÃas de la semana.
Esto serÃa lunes.
Esto serÃa martes.
Básicamente, lo que quiero es que todo esto que estamos generando todo, ¿eh?
Hasta los nombres de los dÃas.
Los...
Todo, todo.
Los nombres de los meses.
Todo venga hecho con JavaScript.
Porque alguien me preguntaba.
No, que no habéis llegado tarde.
SÃ, que llegáis al momento, Daniel.
No ha llegado tarde.
Asà que eso.
Josef, Jesús.
Estoy haciendo un calendario con JavaScript.
A ver qué es lo que sale de todo esto.
Uy, igual esto queda un poquito pequeñito, ¿no?
PodrÃa hacer que los dÃas...
Gracias por seguirme, Daniel Suárez.
Muchas gracias.
No ha llegado tarde.
Ha llegado al momento justo.
Dayname.
Vale.
Asà que vamos a ponerle el estilo.
El cómo estilar este calendario.
Que ya veis que lo tengo hecho.
Esto es porque viene de...
Uy, la he liado ahà en medio.
Se me ha colado.
Este.
Vale.
El cómo estilar un calendario con CSS.
Esto lo tengo en mi canal de YouTube.
Que...
Que...
Bueno, tuvo bastante buena acogida.
Y lo podéis ver.
Son cuatro minutos y medio.
O sea, cortito.
No...
Va bastante a saco.
Y entonces se ve cómo se estila.
Pero esta vez lo que querÃa hacer.
Era ir más allá.
Porque en los comentarios, aunque no he encontrado.
Alguien me decÃa.
Oye.
Que...
Que esto está muy bien.
Pero claro.
Esto tú has puesto aquà un HTML.
Y lo has estilado.
Pero...
¿Cómo puedo hacer esto mismo con JavaScript?
¿Vale?
Y entonces yo le dije.
Pues me parece muy bien.
Me parece buena idea.
Y vamos a verlo.
¿Vale?
Asà que...
Que vamos a hacerlo.
¿Por qué?
Porque creo...
Estoy seguro que es posible.
Por supuesto.
De hecho, intenté hacer alguna cosilla ya.
Y lo vamos a hacer con JavaScript.
JavaScript vanilla.
O sea...
JavaScript.
Porque, bueno.
Con JavaScript se deberÃa poder hacer esto.
Asà que...
Venga.
Vale.
El único problema que tengo...
Este first day...
A ver si es que...
Lo he escrito mal.
First day.
Este first day deberÃa ser la clase que tenemos aquÃ.
Pero no entiendo por qué no me la está pillando.
Es que no entiendo por qué...
¿Qué se me está perdiendo?
¿Qué se me está pasando?
A ver si me ayudáis mientras.
Gracias por seguirme, Hackze.
Muchas gracias.
Y bienvenido, bienvenida.
Te lo vas a pasar pipa aquà con la programación web.
Pues eso.
Me falta...
Este uno deberÃa empezar en viernes.
Entonces tengo aquà en los estilos...
Gracias por seguirme, Alejito.
Este grid column start.
Que esto es lo que quiero hacer después.
Y lo tengo en el 5.
Y esto ya deberÃa funcionar.
Y no sé qué se me está escapando.
A ver si lo que se me está escapando es cómo funciona Safari.
Y esto en Safari no funciona como espero.
Por X motivo.
No se me extrañarÃa, ¿eh?
No me extrañarÃa.
A ver, he guardado los cambios.
SÃ, he guardado los cambios.
Vamos a...
¿Cuánto tiempo tarda uno en aprender JavaScript?
Pues uno no para nunca de aprender JavaScript.
Tardar por aprender...
Mira, aquà sà que sale bien.
Aquà sà que sale bien.
O sea que es un tema de Safari.
Bueno, vamos a seguir aquÃ.
Aprender lo puedes aprender en una semana.
Depende de lo que consideres aprender.
Gracias por seguirme, Pablo Zick.
Lo más básico.
Pero claro, depende mucho de...
Tienes ya conocimientos, por ejemplo, de programación.
¿Sabes algo de programación?
Porque entonces a lo mejor el problema no es aprender JavaScript.
A lo mejor el problema es aprender los conceptos de la programación.
Que es un bucle, que es un condicional.
Pues se tarda más en eso que en aprender JavaScript.
Porque JavaScript al final no deja de ser un lenguaje.
Entonces, si te refieres más bien a cuánto tiempo tardo en aprender a programar JavaScript,
igual ya ahà sà que estamos hablando de mÃnimo un mes.
Empezar a hacer cosas lo puedes empezar a hacer desde el primer dÃa.
¿Por qué?
Porque abres la herramienta de desarrollo y ahà ya puedes darle caña al JavaScript.
Mira, abre la herramienta de desarrollo estas y aquà ya te puedes quedar muy...
Bueno, sale un montón de cosas raras, pero aquà ya puedes poner JavaScript.
Dices, hola, alert, hola.
Y este es tu primer JavaScript que vas a escribir.
O puedes hacer una función o 2 más 2 y ya está.
Ya tenéis JavaScript.
Vale, pero a partir de ahà obviamente se va complicando.
Bueno, vamos a seguir con esto.
Habréis visto que me salÃan aquà unos acentos súper extraños, ¿vale?
Eso es porque no tenÃa el chart set y le he añadido al HTML este chart set.
Gracias por seguirme, CronoSap.
Gracias por seguirme.
Pues eso.
Alejito le decÃa que mucho.
Pero sÃ, o sea, es que si al final terminar de aprender no terminas nunca porque es un no parar, ¿sabes?
O sea, JavaScript está vivo.
Está vivo y no para de evolucionar.
Voy a hacer esto un poquito más grande, ¿vale?
Para que lo veamos bien.
Entonces, si te acabas de apuntar qué es lo que quiero hacer, esto ya lo tengo estilado.
Es un calendario estilado con CSS que el vÃdeo está en mi canal por si lo quieres ver.
Pero lo que quiero hacer, voy a cerrar Safari, lo que quiero hacer ahora es generar los calendarios con JavaScript, ¿vale?
A ver si somos capaces de generarlo.
Asà que vamos con eso, vamos con eso.
Vale.
Venga.
Lo primero, lo primero que deberÃa hacer...
A ver, tengo por aquà cosas abiertas que me están por aquÃ.
Esto por aquÃ.
Venga.
Lo primero que deberÃa hacer es escribir JavaScript, ¿vale?
O sea que mira, esto te va a servir ya.
Lo voy a hacer a saco en el index.html porque de esta forma pues vamos más rápido y no tenemos que ir cambiando de archivo si está todo en el mismo archivo.
Lo primero que vamos a hacer es un poco cuál es el año en el que quiero extraer, que voy a decir el 2021.
Luego haremos que esto se pueda parametrizar de forma que podamos crear el calendario de 2022 o el que queramos.
Y luego lo que voy a decir es en qué idioma lo quiero porque esto también lo vamos a poder parametrizar.
En este caso pues esto serÃa Spanish y 2021 pues es este año que por si te pasa como a mà que cuesta a veces saber en qué año uno vive, ¿vale?
Entonces, lo primero serÃa recuperar los meses.
Yo creo que es lo primero que tendrÃamos que hacer.
Para recuperar los meses tendrÃamos que crear...
Vale, vamos con... vamos a abrir la documentación ya.
A saco.
Intel Date Time Format.
Vale.
Mira, si es que ya he abierto.
Lo primero que deberÃamos hacer serÃa recuperar los nombres de los meses.
Pero una cosa que podemos hacer aquà al respecto serÃa empezar y crear un array, ¿no?
Es decir, ¿cuántos meses tiene un año?
12.
Ya sé que esto es bastante perurallada.
Pero entonces lo que deberÃamos poder crear es un array de 12 elementos.
De 1, 2, 3, 4, 5, 6.
Pero, claro, esto podemos hacer asÃ, pero esto no mola nada, ¿vale?
Lo que podemos hacer, si no me equivoco, serÃa hacer esto.
Y esto.
Y aquà deberÃamos tener, si no me he equivocado, vamos a verlo.
Si no me he equivocado y guardando los cambios y vamos a la consola, que veo que la consola no me devuelve nada.
AquÃ.
¿Vale?
Ya hemos creado un array.
No sé si este truco lo sabÃais.
Hemos creado un array de 12 posiciones del 0 al 11.
Y creo que esto ya nos va bien porque, si no me equivoco, para recuperar el nombre de un mes...
A ver, State Format.
Un truco que se puede hacer...
Vale, sÃ, con el format.
Para recuperar el nombre del mes.
Vale.
Aquà tenemos las opciones.
Pa, pa, pa.
Vale.
Lo primero que voy a crear ya es esto, que lo vamos a necesitar, ¿vale?
Que básicamente es crear una instancia de la internacionalización.
Aquà hemos dicho que el local que vamos a utilizar es el de España.
Y en las opciones lo que le podemos decir es que el estilo de los meses sea...
A ver, estoy dentro del formato.
Month long.
Esto.
Yo creo que con ese deberÃa ser suficiente.
Eso está muy bien porque esto lo que nos hace es decir, no sé, el nombre del mes de la forma larga.
Asà que tengo ya los números de los meses.
SÃ, sigo programando, Ana.
Es que esto es un no parar porque hay que darle.
Si yo hoy no he programado todo el dÃa.
Hoy estaba súper tranquilo en casa y no he programado nada.
Asà que...
Vale.
Entonces, lo que podemos hacer para crear el calendario serÃa...
Vamos a tener un calendario, ¿vale?
Y el calendario...
Bueno, es es...
Arguello me dice que el local deberÃa ser asÃ.
Bueno, ya verás que es es funciona perfectamente y serÃa como el general.
No habrÃa ningún problema.
Si da algún problema, pues nada.
Lo veremos y lo cambiamos y ya está.
Entonces, los meses.
Vamos a ver.
Los meses.
Los meses.
Entonces, aquà tendrÃamos el month key y ahora lo que tenemos que hacer básicamente es para cada uno de los meses recuperar el nombre.
Asà que month name serÃa utilizando el intel.format y ahora en el format lo que espera como... es la fecha.
Vale.
Y esta fecha la podemos crear fácil porque fÃjate aquà que pone new date y esto es el año que es justamente el que tenemos.
Y luego se le deberÃa pasar el mes.
Vale.
Pues vamos a ver.
El año serÃa el actual year y el mes serÃa justamente el month key que tenemos.
Y vamos a ver qué nos ha devuelto este calendar.
Vamos a ver qué tiene esto.
A ver si ha hecho la iteración más o menos.
Como deberÃa.
Vale.
Esto no ha hecho absolutamente nada.
A ver.
Ah, vale.
Vale.
Es que no estoy devolviendo el month name.
Yo también.
Month name.
Pero tampoco entiendo muy bien por qué.
No sé si es este console.log que me la está jugando.
Porque no sale nada.
¿Sabes?
O sea, le doy aquà y no sale en consola y no sale nada.
A ver.
Vamos a ponerlo aquÃ.
No, no pone nada.
A ver.
He hecho está bien, ¿no?
O sea, tampoco tiene mucho misterio esto.
Vamos a ver.
No sé por qué no me salta nada en la consola.
SÃ, ya sé que ha sido limpiada.
¡Ay!
He refrescado toda la página.
De golpe.
Vamos a ver.
Vamos.
Vamos, consola.
O sea, la consola no devuelve nada.
No.
¿Por qué?
Bueno, a ver.
Lo único que se me ocurre es que haya habido un error o algo.
Pero before...
Yo creo que no hay ningún error, ¿no?
O sea, en la consola no funciona directamente.
Ah, ya nos está complicando esto el tema, ¿no?
A ver.
Voy a comentar esto.
Un momento.
A ver si...
Como no tengo el Inter ni tengo absolutamente nada, es un poco raro.
Pero no, no.
Es que me ha dejado esto de funcionar.
¿Alguien ve un error o algo que tenga...?
Si te imaginas que es el local este, lo voy a poner solo para estar seguro, ¿vale?
Lo voy a poner solo para que estemos seguros.
No, pero es que no me funciona...
Ah, bueno.
Ahora sà que es verdad que es que no tengo ningún...
No tengo nada.
Pero ¿por qué no sale en la consola?
No sale nada en la consola.
¿Sabéis lo que vamos a hacer?
Gracias por seguirme...
Arkin Bauer.
Gracias por seguirme.
Pero ahora es lo que vamos a hacer.
Vamos a crear esto directamente en un proyecto.
Aquà porque lo querÃa hacer aquà por hacer un poco la gracia.
Pero ya veo que...
No sé.
No sé por qué no funciona.
Y me da bastante mal rollo.
La verdad que no me dé feedback.
Calendar.
Ey, ey.
¿Quién me está siguiendo por ah�
BetoroDev.
Gracias por seguirme.
Crack.
Muchas gracias.
Error de course.
Pues es que en problemas tampoco hay ningún problema.
Y no deberÃa ser nada de course.
Es que creo que al code sandbox este se le ha ido bastante la cabeza.
A ver.
Calendar.
Touch.
Index.html.
Code.
Index.html.
Lo que pasa es que mira que me gustaba.
Porque quedaba...
Ah, ah, ah.
Quedaba bastante bien.
Vamos a poner esto aquÃ, a izquierda.
Vamos a pegar todo lo que tenemos aquÃ.
Gracias por tu ayuda, Code Sandbox.
No me has ayudado en nada.
No me has ayudado en nada.
Vamos a pillar los estilos.
Es que al menos asà me aseguraré que no es un problema.
Como Code Sandbox utiliza service workers y cosas súper raras.
Mira, vamos a quitar esto.
Además asà se ve un poquito mejor el...
Le ponemos ahà los estilos.
Y por otro lado aquà lo que vamos a hacer es abrir desde aquÃ.
Open.
Vale.
Ya está.
Me fÃo más.
Que igual sigue sin funcionar, ¿eh?
Pero mira, se está ahà a la primera.
O sea, madre mÃa, no sé por qué.
A veces es una cosa que tiene Code Sandbox y me pone bastante los nervios.
Que parece que no funciona y no sabes si es que no se ha actualizado o qué le pasa.
No sé.
Bueno, el caso.
Para las calidades yo reinicio el directo.
Bueno, no sé.
Vamos a ver si cuando sea afiliado ya no deberÃa dar ningún problema.
Gracias por pasarte, Ana White.
Muchas gracias.
CuÃdate y que vaya genial.
Buenas noches.
Un punto y coma, me dicen por aquÃ.
¿Cómo va a ser un punto y coma, hombre?
Si ya...
¿Veis cómo ya está funcionando?
Que no era el punto y coma.
Ya está.
Ya lo tenemos aquÃ.
Venga.
Pues ahora que ya tenemos console.logs otra vez, ya podemos seguir programando.
No se puede programar sin console.logs.
Es imposible.
Bueno, voy a hacer un poco esto más pequeño.
Decidme si lo veis bien.
Pero es que ocupa demasiado espacio y...
A ver, puedo hacer esto más pequeño para acá.
Y esto lo voy a hacer aquà un poquito más grande.
A ver si asÃ.
¿Vale?
Vale.
Pues ahora que tenemos esto, lo que voy a ver es si tengo todos los meses.
Ya.
Venga.
Venga.
¡Ja, ja!
Tengo todo de enero.
Muy bien.
Month key.
Month key.
Pero month key.
Tenemos todos los meses.
Pero el month key...
Month key...
¿Esto por qué?
No, si los tenemos todos aquÃ.
Ay, perdón.
FÃjate.
Es que el format este que he puesto aquÃ...
He puesto aquà mal esto, ¿no?
He puesto los dos...
He puesto actual year y month key.
Pero aquà lo que hay que pasarle es una fecha.
Que creo que es new date.
Y le tenemos que pasar el año actual y luego el month key.
¿Vale?
Vamos a ver ahora.
Venga.
Enero, febrero.
Ahà ya tenemos todos los nombres, ¿eh?
Ahà tenemos ya todos los nombres.
Vamos a hacer que esto poco a poco vaya tomando vida.
Lo que vamos a hacer en este div...
Vamos a poner aquà un...
Que para cada...
¿Cómo hacemos esto?
Creamos el HTML aquÃ, primero.
Tenemos el calendario.
Con el calendario lo que vamos a hacer es devolver un objeto.
Y vamos a ponerle month name.
Y aquà el calendario lo vamos a recorrer.
Y vamos a recuperar el month name.
Y aquà lo que vamos a hacer es crear el HTML que tenemos que crear para cada mes.
Lo vamos a meter directamente en el div.
Asà que esto seguramente va a desaparecer.
Pero la estructura básicamente serÃa document.getquerySelector.
Vamos a pillar el div y meteremos dentro el HTML que estamos generando.
Y este HTML que estamos generando, lo que vamos a hacer es poner el nombre del mes en el h1.
Eso bien.
Y con el actual year.
Asà que h1.
Month name.
H1.
Y el actual year.
Actual year.
Venga.
Bueno.
Ahà hay un error.
Ahora lo arreglamos.
Pero bueno.
A ver.
Ya esto pinta, ¿no?
Esto pinta.
Esto pinta.
Vamos, vamos, vamos.
Que esto pinta.
Enero del 2021.
Febrero del 2021.
Venga.
La coma esta es porque aquà tendrÃamos que hacer un join.
AsÃ.
Porque si no por defecto cuando intentas renderizar un array pues...
Bueno.
Ya tenemos todos los dÃas de...
Hay todos los dÃas.
Todos los meses del año.
Algo es algo.
¿Qué dice por aqu�
Oye, una pregunta.
¿Algún dÃa harÃas una guÃa para la entrada al open source?
La tengo pendiente.
Y la vamos a hacer.
La vamos a hacer.
Dabgons.
La vamos a hacer seguro.
Vamos.
Te lo puedo asegurar que lo vamos a hacer.
Vale.
¿Qué más información necesitamos?
Lo que necesitamos de cada mes es...
¿Qué necesitamos?
¿Cuántos dÃas tiene?
Days of month, ¿no?
Y el dÃa que empieza.
Starts on.
Tenemos que saber en qué dÃa de la semana empieza el mes.
Ahora a ver cómo sacamos esta información.
¿Cómo sacamos?
Days of month.
Bueno.
Days of month.
Vamos a poner por ahora 31.
Y Starts on.
Vamos a poner que todos empiezan en la posición 0.
para que al menos asà podamos pintar todas las cosas.
¿Qué es JSX?
Pues no estamos haciendo JSX aquÃ.
No nos tienes que preocupar.
Pero básicamente JSX es un azucarillo sintáctico para que no escribas JavaScript a saco.
Cuando en tus componentes de React tendrÃas que escribirlos con JavaScript.
Y lo que haces es tener una sintaxis parecida a HTML que en realidad a su vez se compila en JavaScript.
Lo que te recomiendo para entenderlo mejor es que te vayas al Babel Playground.
Gracias por seguirme JJBalrl.
Mira.
Aquà te vas a Babel.
Y haces esto en el tryout.
Aquà puedes hacer return, h1, hola mundo.
Cerras aquÃ.
Bueno, porque ahà he puesto fuera una función.
Pero bueno, directamente es esto, ¿no?
Uy.
Uy, ¿qué ha pasado con mi...?
¿Ves esto aqu�
H1, no sé qué.
Esto parece HTML.
Esto es JSX.
Porque esto en un archivo de JavaScript con las transformaciones de JSX te lo transforma en esto de la derecha.
Pero claro, esto es un ancoñazo escribirlo.
Entonces mejor utiliza JSX.
Porque cuanto más se complica esto...
Uy, no sé por qué no me deja escribir.
Ahora.
Cuanto más se va complicando esto, pues escribirlo en JavaScript es imposible.
Se va haciendo muy, muy difÃcil.
Muy difÃcil.
Muy difÃcil.
¿Ves?
Aquà el churro que empiezas a tener.
Entonces es más fácil entenderlo con JSX.
Que está basado en XML y que está bastante bien.
¿Vale?
Te devuelvo el favor.
¡Ostras!
Pero eso es muy...
Eso no me gusta, Dorian.
Eso no me gusta.
A mà me gusta más...
Eso está demasiado a saco, ¿eh?
Vamos a ver.
Seguro que hay una forma programática de conseguirlo, ¿eh?
Seguro.
Porque es que para entrar...
Para hacer eso...
Para eso lo hacemos de otra forma, ¿no?
A ver.
Hay un truco, yo creo, con el tema del date.
Son dos funciones.
Ya, pero es muy manual.
Me gustarÃa algo programático.
Algo que digas...
Sabes que yo no tuviera que saber esa información.
Creo...
Hay un truco que creo que cuando haces un new date y lo que le pasamos es el 2021,
le decimos el mes...
El mes siguiente, ¿no?
Por ejemplo, queremos recuperar los dÃas que tenemos en febrero.
No, en enero, ¿vale?
En enero.
En enero serÃa el cero.
Pero vamos a preguntar por el uno y le vamos a decir que es el dÃa cero.
Porque creo que el dÃa cero es el dÃa anterior.
¿Ves?
Es el dÃa anterior.
Entonces, como es el dÃa anterior, ahà puedes recuperar cuál es el último dÃa del mes anterior.
Hemos puesto febrero, el mes de febrero.
Pero al poner el cero nos da el dÃa anterior, que serÃa el 30 de junio.
31 de junio, no.
De enero, perdón.
Entonces, esto ahora...
Get date.
¿Ves?
Y entonces con el get date tendrÃa el dÃa exacto, el número de dÃas que tiene ese mes.
Creo que con esto ya nos servirÃa, ¿no?
A ver.
Al final esto se podrÃa calcular y hacer lo que comentas, ¿eh?
No sé hasta qué punto vale la pena.
Pero bueno, entiendo que esto debe ser menos código.
Es verdad que el tuyo a lo mejor es más entendible.
En el sentido de que...
Lo que pasa es que, claro, lo bueno es que esto te quita los años bisiestos, ¿no?
Porque el otro, supongo que tienes que hacer cálculos de cuál es el año bisiesto.
Ah, no sé.
No sé si va a acabar esto en el mismo nivel del calendario de JSX, ¿eh?
A ver, pero creo que estaba interesante.
El de Airbnb lo bueno que tiene, digamos que es más el tema de que es en React y, bueno, que es bastante interactivo.
Eso está bien.
Vale.
Entonces, para recuperar los dÃas del mes, lo que vamos a hacer...
Y gracias por seguirme, teco barrubias.
Muchas gracias.
Lo que vamos a hacer es...
Hacer el truco este.
Habrá que hacer una cosita con esto del truco, ¿eh?
Ya también os digo.
Gracias por seguirme, Angelisco.
El truco este tiene un problemilla que calcularemos ahora en un momento.
Pero Days of Month...
¿Por qué?
Claro, cuando es el 12...
Asà también funciona.
Bueno, pero eso es lo que he hecho yo, ¿no?
¿Creesco?
¿Qué significa esto?
Claro, esto lo que te da es lo de diciembre del año pasado.
Claro, claro que funciona.
Por eso es lo que he explicado.
¿Qué me estáis contando?
SÃ, claro.
O sea, aunque sea del año pasado...
O sea, es el dÃa anterior.
Aunque sea 0, 1, 2, 3...
Lo que pasa es eso, que es del...
Si pongo 12 de diciembre...
O sea, el mes 12...
Ahora aquÃ, ¿por qué me sale esto?
No.
Es que el 12, claro.
El 12 no es...
El 12, claro.
SerÃa el 11.
Vale.
Si es el 11, pues serÃa noviembre y tal.
Claro, es del 0 al 11.
Vale.
Me han liado, ¿creesco?
Me han liado.
Vale.
Entonces, lo que tenemos que hacer es recuperar...
El nextMonthIndex.
Que en principio deberÃa ser MonthKey más 1.
Pero...
Bueno.
Claro, para enero...
Ahà es donde está el problema.
Para enero.
Vale.
Por ahora vamos a poner.
Para que...
Para que salga.
Y lo que vamos a hacer es ya crear todos los dÃas, todo el churro de dÃas.
Y ya veremos a ver qué sale por ahÃ.
¿Vale?
Por ahora lo importante serÃa crear todos estos li, li, li, li.
A ver, esto lo puedo crear, lo puedo añadir.
Bueno, lo añado después, ¿vale?
Por ahora todos estos li's.
Que lo que vamos a hacer para crear esto...
Podemos...
A ver, se podrÃa hacer de un montón de formas esto, ¿eh?
Yo lo voy a crear asÃ, pero...
Lo podrÃais hacer, pues...
De una forma con menos código y tal.
Pero me parece interesante hacerlo directamente en Vanilla JavaScript y se aprenden cositas.
¿Vale?
Por ejemplo, el número de dÃas.
Pues, aunque lo ideal a lo mejor serÃa hacer un loop.
Pues, utilizando esta técnica de los months que hemos hecho aquÃ, podrÃamos añadir el número de dÃas.
Aquà le...
TenÃamos los days.
Y utilizando el days of months que tenemos aquÃ, podrÃamos utilizar ese número de dÃas del mes para hacer el mismo sistema.
Que va del 1 al no sé qué.
Aunque creo que este days of months...
Claro, si esto empieza en 0, ¿no?
Bueno, ahora lo veremos.
Si no, cuando rendicemos, lo veremos.
SerÃa chévere hacer algo como asignar recordatorios o algo asÃ.
¿Se puede con solo Vanilla?
A ver, espérate que estamos con el calendario.
Estamos con el calendario.
Todo se puede hacer con Vanilla.
Todo se puede hacer.
Todo.
Pero vamos con calma.
Que todavÃa tenemos que sacar los números ahÃ.
SÃ, a ver, si lo conseguimos...
Quién sabe hasta dónde llegamos.
Pero vamos a hacer que se rendicen primero los números y ya veremos.
Qué bueno.
Vale, tengo los dÃas.
Entonces, ahora que tengo este array de dÃas...
RenderDays, los dÃas.
Los mapeamos.
Y esto, básicamente, tendrÃa que ser el Lee.
Lee que hemos hecho aquÃ.
Y aquà le vamos a poner el dÃa.
Vamos a ver este RenderDays.
Que, como hemos visto aquÃ, tendrÃa que ser...
En el H1, justo después del H1, aquà tendrÃamos la lista ordenada y aquà tendrÃamos el RenderDays.
RenderDays.
O Rendered, ¿no?
Mejor, más correcto.
RenderedDays.
Y terminamos la lista ordenada de números.
A ver qué pasa con esto.
Vale.
Otra vez.
El Join.
Pero bueno, no tiene mala pinta del todo.
No tiene mala pinta del todo.
Ya veo que empieza en 0, lo cual está mal.
O sea, vamos a sumarle 1.
Eso para empezar.
O sea, este Day, pues hacemos Day más 1.
Y luego, además, esto aquà vamos a hacer...
Este Map, lo que vamos a hacer es un Join.
Aquà vamos a hacer Join.
Y ya está.
Y a ver qué.
Vale.
Pinta mal, ¿vale?
Pinta mal porque veo aquà que todos los dÃas tienen 31 dÃas, lo cual no está bien.
Vale.
Pero es por esto.
Es por esto.
No pasa nada.
Que nadie se preocupe.
Se me ha olvidado utilizar aquà la variable DaysOfMonth.
A ver ahora.
Ahora sà que pinta bien.
Mira.
Enero, 31 dÃas.
Febrero, 28.
28.
Marzo, 31.
Abril, 30.
Ahà está.
Bueno, voy a asegurarme.
A ver, abril, 30.
A ver si hemos pillado del año correcto.
Abril.
Abril.
Vamos.
Abril llega a 30.
O sea, que está bien.
Ahora, lo que está mal es el dÃa que empieza, ¿vale?
O sea, el dÃa que empieza todavÃa lo tenemos que recuperar.
El dÃa que empieza.
El dÃa que empieza.
A ver eso, ¿cómo lo podemos hacer?
Voy a poner esto un poco más legible, ¿vale?
Si os parece.
Me gusta que las cosas queden un poco...
A ver, title.
Que queden en una sola lÃnea.
Además que asÃ, pues, lo vais a entender mejor.
Si alguien se acaba de apuntar, o hace poco que se ha apuntado, le comento que lo que estamos
haciendo es un calendario con Vanilla JavaScript y que está estilado porque hemos seguido, bueno,
mi calendar, este.
Hice un vÃdeo en mi canal de YouTube donde hacÃamos un calendario, bueno, maquetábamos
un calendario con tres lÃneas de CSS.
Y a partir de ahÃ, mucha gente me preguntó, oye, ¿pero qué pasa con esto?
Que esto está muy bien, que la maquetaba tú aquÃ, pero tienes ese chorro de HTML.
Esto no se podrÃa hacer con JavaScript.
Y yo dije, a ver, con JavaScript se puede hacer todo.
Todo se puede hacer con JavaScript.
Todo.
Lo que tú quieras se hace con JavaScript.
Entonces, lo estábamos intentando hacer con JavaScript y lo bueno de esto es que vamos
a hacer además que esté traducido a diferentes idiomas.
Y para que veas que ya pinta que sÃ, si aquà le pongo en y refresco, fÃjate que ya
vienen con idiomas.
O sea, no me digas que esto no empieza a estar bien.
Pues dices, no, lo quiero en alemán.
Pues toma en alemán también.
January, February, March, April, May, Juni, Juli.
Que lo quiero en chino.
Pues en chino lo tienes también.
Que lo quiero, creo que eso es chino.
Que en japonés.
Pues esto no es japonés, pero hubiera estado bien.
Mira, esto es japonés.
Pues lo tienes en japonés.
Asà que, bueno, con una sola lÃnea.
Esto es brutal, hombre.
Y en catalán, claro que sÃ, en catalán también.
También utensa en catalán.
Jané, Fabré, Mars, lo que quieras.
En gallego también.
No, gallego no sé si es este.
Bueno, pero ya entendéis la idea, ¿no?
Ya entendéis la idea.
¿Qué piensas sobre INEGRAHTML o DOCUMENTFRAGMENT?
Bueno, pues que el INEGRAHTML es bastante bestia.
Pero que en este caso lo tiene sentido.
Oye, alguien me decÃa antes lo del ES o ES-ES.
En este caso habéis visto que es lo mismo.
O sea, hacemos ES-ES o ES.
¿Veis cómo funcionan los dos?
Lo que puedes hacer esto...
Lo que pasa es que el nombre de los meses no es algo que vaya a cambiar en México.
Aunque serÃa bastante chingón.
¿Sabes?
Que de repente febrero fuese Tomatito o algo asÃ.
¿Sabes?
SerÃa muy extraño.
Pero bueno, que da igual que en este caso añadamos el territorio donde está sobre la localización.
Vale.
Entonces, ¡guau!
Ahora se me ocurrió una cosa.
Se me ocurrió una cosa para el tema de...
Claro, que ya tenÃamos hecha.
Bueno, nos faltan los dÃas de la semana.
Asà que los dÃas de la semana...
Vamos a ver los dÃas de la semana.
Los dÃas de la semana vamos a seguir este weekdays.
Vamos a seguir este truquito.
Vamos a poner que son siete.
Como esto sà que sabemos que es asÃ.
Los dÃas de la semana.
O sea, vamos a necesitar uno de estos.
Pero que solo sea para weekday.
Porque si no, también nos devolverÃa el tema del mes.
Entonces, ¿ves?
Aquà tenemos el weekday.
¡Ey, ey!
¿Quién se ha apuntado?
Andrés Fezadaza.
No sé decir los nombres de la gente.
Lo siento, pero es que tenéis que saber que os ponéis nicks muy chungos.
No sé si es que en Twitch están pillados.
Pero hay aquà un hombre que se llama Dabgonz25643.
Que parece que tiene su contraseña en el nombre.
O sea, es muy raro.
¿Qué tema de Visual Studio tienes?
Buah, Daniel Suárez.
Tengo el mejor tema de Visual Studio del mundo.
Pero voy a decÃrtelo después de esta pausa publicitaria.
No, de esta pausa para beber.
Voy a beber dos veces.
Vale.
Qué rica está la agua.
Está asà como hacÃa Ronaldinho, ¿sabes?
Para que ahora no se vea lo que estás haciendo.
Mira, a ver.
Ahora me sale mal el hype que te pegaba ahà con el tema del theme.
Pero, de verdad, yo creo que está muy, muy, muy chulo.
Aunque también te digo que es muy tÃpico.
Se llama...
Ah, no.
Vale.
Dicen los user names.
Vaya por Dios.
¿Qué tema de VS tienes?
¿No has dicho VS?
Para mà VS es Visual Studio.
Ah, vale.
Es que me lo está preguntando otra persona.
Es que veo el chat muy rápidamente.
Vamos a ver.
Visual Studio.
Tengo OneDark Pro.
El tÃpico es OneDark.
Y OneDark Pro tiene unas cositas que lo hacen bastante único.
Por ejemplo, tiene este modo Vivid y las itálicas.
Y bueno, tienes como diferentes...
Aquà tienes un montón de posibilidades.
Entonces...
Ah, las Ball también.
Y bueno, pues por eso está bastante chulo.
Es como más vivo.
Me gusta que sean vivos.
Está bastante bien.
Asà que...
Que eso.
OneDark Pro.
Totalmente gratuito.
Está genial.
Ya no sé por dónde iba de por aquÃ.
Vale.
SÃ, estamos haciendo los dÃas de la semana.
Y entiendo que para los dÃas de la semana, igual que la técnica esta que hemos hecho,
pues deberÃamos hacer esto.
Esto.
Entonces, lo que tenemos que hacer para los dÃas de la semana...
A ver, que esto lo podemos haber mapeado directamente, pero...
Weekdays...
WeekdaysNames.
Weekdays.map.
Y aquà tenÃamos el WeekdayIndex.
Y aquà tendrÃamos que utilizar este Intel Weekday.
Vale.
Igual que hemos hecho aquà antes.
.format.
Y aquà tenÃamos el WeekdayName.
Y con este format...
Claro.
Aquà hay un truco.
Bueno, aquà hay un truco.
Aquà hay un problema.
Que...
A ver, no es un problema.
PodrÃamos hacer unas cuantas cosas.
A ver.
Tenemos que formatear una fecha.
En concreto.
Entonces, podrÃamos buscar una fecha, por ejemplo...
Mira.
¿Qué pasa con esto?
Que queremos recuperar de lunes a domingo el nombre de todos los meses.
Pero claro, para hacerlo fácil, necesitarÃamos un mes que empiece en lunes.
¿Por qué?
Porque el lunes es el Ãndice cero.
Entonces, si asà preguntamos del cero al seis, tendrÃa que ser el lunes, el cero, el uno, el martes.
La única forma que podrÃamos hacerle es buscar un mes, por ejemplo, noviembre de 2021, ¿vale?
Entonces, new date.
Ya decimos, 2021.
El mes serÃa...
Iba a decir 12, pero 12 no tiene sentido.
SerÃa 10, ¿vale?
El 10 es el noviembre.
Y aquà le pasamos el weekday index.
Porque queremos preguntarle por el cero.
Que ya sabemos que es el lunes.
Nosotros sabemos que ese es el lunes.
Sé que es un poco raro, ¿vale?
Pero es que es la única forma.
Porque no puedes, al menos por ahora, a JavaScript no le puedes decir, dime cómo se dice lunes.
No.
Lo que sà que podemos hacer es formatear la fecha.
Que sepamos que el cero, el dÃa cero, es lunes.
Y asà nos recuperarÃa el weekday name.
Nos lo deberÃa dar bien.
Bueno, esto soy yo suponiendo mucho, ¿eh?
No sé.
Yo he metido aquà la charla y a lo mejor la lÃo parda.
Pero bueno, no sé.
Si no, lo miramos ahora.
A ver qué sale de todo esto.
Bueno, casi.
He estado cerca.
He estado cerca.
Domingo, lunes, martes.
Esto ahora no sé si es más bien que me he equivocado con la fecha o que no he hecho bien algo.
Vamos a mirar esto.
Voy a crear aquà la date.
Voy a hacer un console.lot de la date.
Y voy a refrescar aquÃ.
Vale.
¿Ves?
Me dice el cero, el 31.
Claro.
Porque el dÃa cero, como os he dicho, nos da el anterior.
Ahà está.
Entonces, lo que tenemos que preguntarle es el weekday index más uno.
Y ya tendrÃamos lunes, martes.
Porque de esta forma estamos creando el...
Ah, bueno.
Voy a ponerlo otra vez el console.lot del date.
¿Vale?
Un momentito.
Y os lo enseño.
¿Veis?
Estamos creando...
¿Eh?
¿Otra vez?
Me ha dejado mal esto.
No, pero estoy creando ahà el 31 otra vez.
No.
No.
Pero si esto deberÃa ser...
A ver.
El 1.
Esto es el 1.
Weekday index 1.
1.
Vamos a ver qué ha pasado ahÃ.
Weekday index más 1.
Ah, por...
Anda, que yo también.
Porque tengo el console.log una cosa y en el otro sitio otra.
Ahora, ya está.
Ahora.
AhÃ, ahÃ.
Perdón.
¿Quién se ha suscrito?
Ay, que no lo veo.
Zane0042.
Muchas gracias por suscribirte.
Está puesto que la semana que empieza el domingo, ¿no?
No, no, no.
No está puesto eso.
No está puesto...
O sea, me he equivocado, ¿eh?
Con esto.
Daniel Suárez.
Estoy utilizando Twitch Studio Beta.
Asà que en cualquier momento todo esto puede petar.
Tened cuidado.
No, he sido yo que me he equivocado, Yousef.
Porque en realidad tenemos que la semana empieza el lunes.
Lo que pasa es que si...
Es lo que hemos hecho antes, ¿no?
Si hacemos un new date y le pasamos el dÃa cero, nos da el último dÃa del mes anterior.
Y no es lo que queremos.
Por eso, aquÃ, cuando creamos la fecha, tenemos que hacer esto.
Weekday index, porque cuando hacemos aquà las keys y tal, estamos creando a partir de cero.
Pero cuando creamos el date, tenemos que empezar a partir de lunes.
Ahà creamos la date y ahora sÃ, si refresco, ahora sà empieza el lunes.
¿Vale?
Pero es súper importante que sepamos que el primer dÃa de ese mes es lunes.
Este truco solo sirve si sabemos que el dÃa del mes empieza...
El primer dÃa del mes empieza el lunes.
A ver, que no pasa nada.
¿Por qué?
Porque esto lo podemos dejar asÃ.
Esto ya se queda asÃ.
Esto es tal cual.
Una vez que ya sabemos esa información, la dejamos asÃ.
Este 2021 que hemos puesto aquÃ, este no se tiene que cambiar por este.
Porque este es, digamos, los meses que queremos hacer.
¿Ves?
Ahora voy a poner aquà y refresco.
Estos son los que queremos crear.
Y este de aquà lo estamos usando solo para recuperar los dÃas de la semana.
Sé que es un poco raro, pero bueno, funciona, funciona.
Tenemos ahà los dÃas.
Asà que ahora que ya tenemos los weekdays name, los tenemos ahÃ, lo que podemos hacer es poner la parte de arriba que tenÃamos aquà con el lead class day name.
Asà que vamos a renderizar, render days, esto donde, render days, vale.
Y aquà vamos a poner, claro, porque, de hecho lo podrÃamos renderizar una vez, es que ni hace falta, mira, lo podemos hacer aquÃ.
Hacemos rendered weekdays, aquà tenemos el weekdays names punto map y aquà tenÃamos el weekday name.
A ver, que todo esto se podrÃa hacer a saco en una sola función, pero bueno, para que vayamos separando que lo estamos haciendo poco a poco.
Vale, asà que aquà lo que tenemos que hacer es crear básicamente esta clase que hemos puesto que está day name.
Aquà ponemos el weekday name y aquà cerramos un lead y hacemos esto, y hacemos esto, y hacemos esto.
A ver, yo creo que con esto serÃa suficiente.
Cerramos esto aquÃ.
Esto debe trabajar sin linter tela, ¿eh?
Vale, entonces, ahora que tenemos los dÃas aquà de la semana y los dÃas, lo ponemos aquÃ, vale, vale, pinta bien, sÃ, sé que sale una coma, no os preocupéis, porque eso es el join, ¿vale?
Entonces, ¿qué pasa? Que cuando tú estás haciendo este map e intentas renderizar una lista de elementos, esto te lo transforma directamente en un string, lo que he estado intentando hacer es transformarte en un string y te lo separa por coma.
Entonces, lo que queremos hacer es que todo esto, en realidad, nos lo separe por un espacio vacÃo y de esta forma nos queda asÃ.
No está mal.
Ya tenemos ahà nuestro calendario, lunes, martes, miércoles, jueves, viernes, sábado, domingo, y todo esto localizado, localizado.
¡Pam! Ahà está, con todos los idiomas que podemos cambiar.
Que esto podrÃamos hacer una función, ¿eh? Que le podrÃamos poner en alemán, qué bonito.
Oye, esto está como mal, ¿no? Esto... ¡Ah!
Es que pone ahÃ... ¿Sabes? O sea, no está centrado, claramente, ese H1, ¿no?
Pues cosa mÃa.
Es como que tiene... Claro, esto tiene un máximo. Esto tiene un máximo. Vamos a quitarle el máximo.
Vamos a refrescar. Ahora mejor. Vale, ahora mejor.
Ya... Y vamos a volver al inglés porque...
Ich bin an vision of Deutsch, pero no creo que ahora mismo sea el momento de hablar alemán.
Venga, febrero. Febrero, marzo.
Este dÃa, el 12 de febrero, es mi cumpleaños, ¿eh?
Lo digo porque ya que está aquÃ, para que os sepáis, si me queréis hacer un regalo, pues ese dÃa yo acepto todos los regalos que queráis.
¿Qué tal? ¿Os está gustando? O ahora mismo estáis muy callados.
Digo, a ver si alguien se me ha perdido.
¿Qué estáis haciendo? ¿A qué os dedicáis?
¿Os está gustando? ¿SabÃais las cosas que estábamos haciendo aquÃ?
¿Lo tenéis ya controladÃsimo?
Porque yo estoy descubriendo cosas mientras lo estoy haciendo, asà que comentadme, comentadme alguna cosa.
A ver qué tal, cómo va esto.
Solo nos queda, para hacer nuestro calendario, como veis, ahora están mal los calendarios.
El calendario este, ahora mismo está empezando todos el lunes y esto no es correcto.
Lo que podemos hacer en este aspecto serÃa recuperar el weekday, ¿no?
El getday, que esto es una cosa súper rara de JavaScript, pero es lo que nos va a salvar en este caso.
Mira, cuando creas una fecha en JavaScript, primero pones el año, luego pones el mes, vamos a poner febrero, ¿vale?
Que es raro, pero febrero es el 1, ¿ok?
Y luego pones el dÃa, ¿no?
Por ejemplo, vamos a poner el 12 de febrero, ¿ok?
Si ahora tú pones un punto getdate, esto es Ricardo Jarkin, gracias por seguirme.
Si ponemos este getdate, lo que nos da es el dÃa, el dÃa del mes, que tiene sentido, ¿no?
Bueno, tiene sentido, pero el nombre getdate es muy raro.
Tenemos también un getday.
El getday, lo que nos dice el getday es el dÃa de la semana que es, ¿vale?
Entonces, entiendo que 5 serÃa, bueno, ahora no sé exactamente si es viernes o es sábado, pero una de las dos serÃa.
El caso es que te dice el dÃa de la semana.
Por ejemplo, si fuese, mira, vamos a este, ¿vale?
Este, este que estamos haciendo aquÃ, este, pam, hacemos el getday.
Y como getday index, este le vamos a poner 1, pues esto nos devuelve 1, porque es lunes, ¿sabes?
Entonces, el lunes es el 1, el martes es el 2.
Es muy raro esto del getday de JavaScript.
El truco de los dÃas del mes me lo apunto, muy bien, Egucito.
Muy interesante, la verdad, muy bien.
Yo he llegado a la tarde, ¿qué hace la lÃnea 91?
No sabÃa que podÃas hacer array keys, pues, yellow win.
Esto lo que hace es crearte un array del 1 al 7, del 0 al 6, perdón, del 0 al 6, ¿vale?
De esta forma, mira, lo podemos hacer aquÃ, hacemos esto, ¿ves?
Del 0 al 6.
Es bastante útil, porque también puedes hacer esto, pero ¿qué pasa con esto?
Que esto te ha creado un array de undefines.
A ver, ¿qué otra opción que podrÃamos hacer?
Lo que pasa es que, bueno, es un poco raro.
Era hacer esto, tendrÃamos 7 posiciones, y luego en el weekdays, en lugar de utilizar este parámetro,
serÃa utilizar este, weekday index, weekday index.
Y este, pues, no utilizarlo, por ejemplo.
Y esto, pues, deberÃa funcionar igual.
Bueno, de hecho, funciona igual, ¿vale?
Esto nos crea un array de 7 posiciones.
Bueno, que es que, de hecho, eso lo podrÃamos hacer también con este.
Bueno, con este creo que da problemas.
¿Puede ser que este no funciona?
Vamos a ver.
SÃ, efectivamente, este no funciona.
SÃ, sÃ, sÃ.
SÃ, ese es que te hace un, es raro, pero te hace un length de 7, pero no te crea 7 elementos.
De esta forma los estás creando con undefined, y con esta forma los estás creando con los Ãndices.
Y, hombre, está bien, porque asà tienes del 0 al 6 y es bastante más fácil de dominarlo.
Este mismo truco lo hemos utilizado aquà para los meses, y creo que ya está.
Pero, bueno, que eso es lo que hace.
Ricardo dice que me empezó a seguir por Twitter por recomendaciones.
Muy bien, pues, muchas gracias.
También tengo Twitch, ya ves, es que tengo de todo.
Saludos desde México.
Pues yo, saludos desde Barcelona.
Y que estés muy bien, Ricardo.
Os digo una cosa.
Estamos súper cerca en YouTube de llegar a los 20.000.
Que si tenéis amigos, colegas, o lo que sea.
Mira, Brian Cano.
Justo ahora has entrado en el mejor momento.
Estamos casi de celebración.
Mira, 19.900 suscriptores.
Estamos, nada, ahà tocándolo.
Lo estamos tocando con las manos casi.
A ver, os digo justamente cuál es el número en concreto.
948.
O sea, lo estamos ahà acariciando.
Acariciando.
Faltan 52.
Dale cañita.
Afcanop.
Dale cañita, Afcanop.
Ya que me estás siguiendo.
Y te mando un abrazo.
Gracias por seguirme.
Está ahÃ, está ahÃ.
Está ahÃ.
Estamos a 52.
Asà que nada, lo podéis compartir con vuestros amigos,
en foros, en discords, no sé, colegas en el trabajo.
No sé, que hacemos cosas muy chulas en el canal.
Mira, hoy hemos hecho este vÃdeo que dura menos de un minuto
y te enseña cómo hacer un texto degradado.
Que parece una tonterÃa, ¿verdad?
Pero mira.
Este texto que veis aquÃ, pues con el CSS.
En menos de un minuto.
Madre mÃa, qué cosas.
Pues, bueno, que tenÃas cursos de React, de Svelte, de Next.js
y un montón de cositas interesantes.
Y una entrevista con Guillermo Rauch, el creador de Bersel.
Argentino.
Un crack.
Un crack.
Bueno, ya he terminado la promo.
¿La semana no empieza el domingo o estoy loco?
¿Cómo que empieza el domingo?
No, las semanas empiezan el lunes.
Bueno, en principio empieza el lunes.
A ver, depende del paÃs, también es cierto.
Egocito, nos vemos.
CuÃdate.
Mi buena es entrevista con Guillermo.
Gracias, Pablo.
Mi canal favorito.
Joder, qué majos sois.
Más buenos.
Pues a ver si engañáis a vuestros amigos ahà en tromba.
A punto de llegar a los 20.000.
Asà que ayudadme vosotros y vosotras.
Y a ver si lo compartÃs ahà con un montón de gente.
Gracias por seguirme.
Cuadros Code.
Gracias por seguirme.
SÃ, bienvenido a Twitch.
Aquà estoy.
Pues, ¿qué?
¿Volvemos a lo que estábamos haciendo?
Que nos lo estábamos pasando pipa.
Bueno, vosotros no sé.
Yo me lo estaba pasando muy bien.
El caso es que estábamos maquetando un calendario que hice un
vÃdeo en YouTube donde hablaba cómo maquetar el calendario
con tres lÃneas de CSS.
Alguien me dijo, bueno, sÃ, esto está muy bien,
pero ¿cómo lo haces esto en JavaScript?
Y yo le dije, a ver, sujétame el cubata, ¿vale?
Me sujeto el cubata.
Me tomé un poco un sorbo de cubata.
Y dije, vamos a hacerlo en Twitch.
Y aquà estamos haciéndolo en Twitch.
Entonces, hemos dicho que lo último que habÃamos comentado es
que necesitamos, ya tenemos el mes con JavaScript totalmente traducido.
Podemos poner aquà el idioma que queramos y no lo traduce.
Y lo que nos falta es en qué dÃa empieza.
En qué dÃa empieza, justamente, ¿vale?
Y para saber en qué dÃa empieza, vamos a utilizar el getDay,
que es muy raro, que el getDay es que los nombres de JavaScript
tendrÃan que ser getWeekDay, ¿no?
O algo asÃ.
Pero bueno.
¿Dónde hacemos esto?
Aquà habÃamos puesto el startsOn0.
Por ahora vamos a poner aquÃ...
¿Cómo harÃamos esto?
Ahora estoy pensando, ¿eh?
A ver, tiene que ser algo parecido a esto.
StartOn.
Tenemos el dÃa del mes.
Vale.
Esto habrá que arreglarlo, ¿eh?
Ojo, ojo.
Esto habrá que arreglarlo.
Todo.
Arreglar esto y explicar por qué.
Claro, porque aquà hay...
Creo que hay un error, ¿eh?
Luego lo miramos.
Pero...
Pero eso.
GetDay, GetDay.
Vale, entonces, en lugar del GetDate,
utilizamos el GetDay.
Y como es el dÃa,
en lugar del 0 tiene que ser el 1,
porque es el primero del mes.
Y entonces el startsOn va a tener
el nuevo dÃa,
o sea, el dÃa del mes.
El dÃa que empieza ese mes.
Venga, vamos a ver.
Vale, ahora no vamos a ver ningún cambio
que se renderice.
Y ahora te explico por qué, claro.
Y vamos a utilizar las Custom Properties
para darle sentido a esto.
Ahora no vemos ningún cambio,
pero lo que voy a hacer
es poner un Console.log del Calendar.
Calendar, aquÃ.
¿Vale?
Y vamos a ver qué tengo por aquÃ.
Vale, MonthName,
va, va, va, va.
Lo que quiero ver es el StartOn.
¿Vale?
Ya veo que cada uno tiene el suyo.
Por ejemplo,
Enero empieza en Lunes.
Vamos a ver si esto es cierto.
Vamos al calendario.
No, empieza en Lunes.
Ni de coña, vamos.
Ni de coña.
Vale, puede ser que Enero esté mal.
Puede ser que Enero esté mal.
Y ahora os explico por qué.
Y esto es lo que os tenÃa que explicar
de por qué creo que estaba mal.
Vale, Febrero dice que empieza en Lunes
y esto es Lunes.
Marzo dice que empieza en Lunes
y es...
Esto también está mal.
Ahora miramos.
Gracias por seguirme, StickFigure.
¿Por qué está esto mal?
¿Por qué está esto mal?
Gracias, Stoner, por seguirme.
¿Por qué está esto mal?
¿Por qué está esto mal?
Ah, ya sé por qué está mal.
Es que la he liado pardÃsima.
Gracias por seguirme, Zabiloz.
No sé,
ahora estáis aquà de todo.
Todos de golpe.
Ya sé por qué está mal, claro.
El Starts On no tiene que ser del siguiente mes.
Este lo hemos hecho antes
para el truco
para el truco de pillar el dÃa
el último dÃa del mes anterior.
Tiene que ser el mes de ahora.
Para que hacemos el Starts On
tiene que ser del mes de ahora.
¿No?
Vale.
Venga.
A ver, Febrero.
Empieza en Lunes.
Marzo.
Empieza en Lunes.
Esto está bien.
Abril.
Empieza en Lunes, Martes, Miernes.
Jueves.
Empieza en Jueves, Abril.
Empieza en Jueves.
Ahà lo tenemos.
Enero.
Enero, a ver.
Enero dice que empieza en Viernes.
Y esto está bien.
Empieza en Viernes.
Pero vamos a ver Diciembre,
que creo que es el que puede estar mal.
Diciembre de 2021 empieza en Miércoles.
Ah, no.
Esto va a estar bien.
Todos estos van a estar bien.
Bueno, ya tenemos el dÃa en el que empieza la semana.
Y con esto ya vamos a poder dejar nuestro calendario casi, casi finÃsimo.
Pero voy a leeros antes, ¿vale?
Voy a leeros antes.
Porque he leÃdo, he visto ahà por el rabillo del ojo cosillas.
Me encanta que hagas estos directos explicando código.
Me enriquecen un montón.
Gracias.
Yellowwin.
Una pregunta muy cliché.
¿Vale la pena Macos para desarrollar?
Yo creo que sÃ.
Yo creo que totalmente.
A ver, claro, me dices, quitando el lado costo.
Claro, es que el costo pica.
Pica, pica.
Tengo que decir que los M1, ojo, tienen muy buena pinta
y que están bien de precio para la potencia que tienen.
Eso sÃ, hay que tener cuidado de que realmente funcionen todos los programas que necesitas.
Pero si no necesitas pantalla, o sea, tienes un desktop y necesitamos un desktop y tal,
el Mac Mini sale a un precio interesante.
El más chiquitito, 799.
A ver, no lo puedes utilizar para jugar, por ejemplo, lo cual es un poco fail.
Pero ojo, ojo, cuidado, ¿eh?
799.
Y el MacBook Air, que además he estado viendo vÃdeos y tal en YouTube y funciona bastante bien.
Creo que para desarrollo web, desarrollo en iOS e incluso en Android seguro que funciona bastante bien.
1129, no está mal.
Entonces, a mà sà que me gustan mucho los dispositivos Mac para desarrollar, para jugar.
Por ejemplo, soy un gamer brutal y no me gustan para jugar.
Los odio.
Los odio a muerte.
Pero para desarrollar sÃ, porque tiene, creo que ese equilibrio perfecto entre temas de desarrollo, ¿no?
Un poco el Unix, que tiene un poco por debajo.
Y por otro lado, pues lo bonito y lo bien que va, está bastante bien optimizado.
Y para desarrollar en iOS, eso lo necesitas.
Asà que, bueno.
Vas a poner el repo, ¿verdad?
Es que me perdà un cacho.
Bueno, a ver, el vÃdeo este todo se graba.
Bueno, os pasaré, si queréis, luego lo subo en CodeSandbox y os comparto la URL.
Asà que, perfecto.
¿Qué último parámetro?
Dices, crezco.
¿Qué último parámetro?
DecÃas que no sabes para qué sirve.
El último parámetro del New Date.
No sé si te refieres a esto, pero básicamente esto...
A ver, ¿qué te explico?
Este es, este es...
Uy, gracias por seguirme.
A Cruz01.
Gracias por pasarte por aquÃ.
Y aquà estamos, con JavaScript.
Mira, esto es el año.
Este es el mes y este es el dÃa.
Entonces, queremos ver el Starts On.
Lo que queremos hacer es, dime en qué dÃa de la semana empieza el 1 de este mes del 2021.
Por cierto, que aquà he puesto 2021, pero tenÃamos que utilizar Actual Year.
Y aquà también, ¿eh?
Actual Year, que tenemos esta constante aquà arriba.
Mira, tenemos aquà arriba.
Y tiene más sentido.
Vale.
Entonces, ¿habrá enlace al Discord para los que estamos en Twitch?
Madre mÃa, pero si...
Pues claro.
Eso me lo tenéis que pedir.
Si soy más fácil de convencer.
La respuesta correcta al último post de Instagram que subiste es una rey de promises, ¿no?
Que me ha generado dudas.
Lo he probado, pero el resultado que me da no me aclara si es una rey de promises o de dos.
SÃ, es una rey de tres promises.
Para el que no sepa de lo que habla, nuestro amigo Irrafael está hablando de este...
También tengo un Instagram, ¿eh?
Por si os queréis pasar.
Madre mÃa, 3.314 reproducciones.
Madre mÃa, la gente se ha enganchado a esto.
Bueno, esto también lo subà en YouTube.
Lo suelo subir a YouTube y lo subo también a Instagram.
Y básicamente es un reto y al final te dice cuál es la solución.
No vamos a ver spoiler por si queréis pasaros en instagram.com barra midu.dev.
Midu.dev.
Ojo que midu.dev es mi clon malo de la India, ¿vale?
Es este hombre de aquÃ.
Es mi clon malo.
El caso...
Os voy a explicar una historia que sé que no tiene nada que ver con programación, pero lo voy a explicar.
Yo me puse en contacto con este hombre, me puse en contacto con este hombre y le dije, oye, que tengo...
Mientras voy haciéndolo de Discord, ¿vale?
Para pasaros la invitación al canal.
Vale, pues le dije, oye, que es que tienes este nombre en Instagram y ¿sabes qué pasa?
Que me gustarÃa un montón tenerlo porque es que es mi apodo y es el que utilizo.
¿Qué te parece?
Y me dijo, ay, amigo, sÃ, amigo, claro, sÃ, mil euros.
¡Ja, ja, ja!
¡Qué rata!
¡Qué rata!
Mil pavos me querÃa vender por el clon.
El clon indio me querÃa vender.
Me querÃa vender su cuenta de Instagram por mil euros.
Y le dije, a ver, a ver, no te pases, ¿sabes?
Además le dije, le dije, que ponemos diez usos.
Diez usos, va.
Diez usos.
Diez usos.
Mil pavos.
Y le dije, hombre, tÃo, que no cobro por lo que hago en Instagram, que soy pobre, ¿sabes?
¿Cómo que eres pobre?
Que no sé qué, que, bah, mil pavos.
Y yo, joder.
Pues eso, ahà se quedó la cosa.
Me quedé, bueno, y tuve que hacer midu.def, que al final es como mi web y no pasa nada.
Pero esperaba que mi amigo de la India, pues, no sé, se enrollase un poquito.
Y no me diese mi cuenta.
¿Qué más le da?
Le digo, oye, pero ¿qué más te da?
Si midu.def parece un nombre de desarrollador y tú no eres desarrollador.
A ti te gustan los coches, las motos.
Porque empecé a seguirle y tenÃa fotos de eso.
Y me dice, ¿cómo que no?
Es mi nombre.
Y yo, ¿ah, s�
Dice, sÃ.
Dice, me llamo midu.
Una cosa súper rara.
Dice, midu.
Y yo, ajá, sÃ.
Claro.
No podÃa ser otro.
Vale, pues venga, que seguimos con esto.
Me quedé a las puertas.
¿Qué le hice a Moment Yes?
¿Qué le hice?
No, hombre, eso no lo voy a hacer.
Eso no lo voy a hacer.
Bueno, que solo nos queda lo de Starts On.
¿Vale?
Solo nos queda lo de Starts On.
Esto no tengo muy claro si esto funciona bien.
Lo dejamos para el final.
¿O no?
Lo hacemos ahora.
¿Por qué?
A ver, esto.
Voy a quitar Console Logs, que solo nos queda eso.
Este Calendar lo voy a quitar.
Y voy a mirar un momento este Next Month Key.
Claro, ¿por qué digo que esto seguramente está mal?
Porque, a ver, si hago New Date, el mes cero es enero.
Vale.
Vale, es enero.
Entonces, cuando digo que quiero el siguiente mes del anterior, claro, lo que va a pasar aquà es que diciembre, si yo aquà pongo 12, digo cero, ah, pues ya está, sà que funciona.
SÃ que funciona.
Os digo una cosa.
Estoy alucinando realmente.
Pero claro, tiene sentido.
Pero claro, estoy alucinando que cuando le pones 12, o sea, tú puedes poner aquÃ, es que está, JavaScript está muy loco.
Vamos a ver, o sea, tú, cuando creas una fecha, le dices el año, ¿no? 2021.
Y aquà le dices, vale, empieza desde cero.
Esto serÃa el 1 de enero de 2021, que no sé si se ve, pero está por aquÃ.
Vale, entonces, si tú le dices, vale, el 1 es febrero, pa, pa, pa, entonces llegas a diciembre con el 11.
Dices, vale, el 11. Venga, bien.
Diciembre 2021.
Dices, pues, ¿sabes qué? Ahora dame el mes 12.
Y JavaScript, que es más chulo que un 8, dice, claro que sÃ, el mes 12 es enero del 2022.
A ver, tiene sentido.
Pero claro, tú aquà puedes poner el mes, dame el mes 48, y te da enero del 2025.
Ostras, no tenÃa ni idea que esto existÃa, pero bueno, lo bueno de esto es que hace que este código que decÃa que tenÃa que arreglar, ya no lo tengo que arreglar.
Porque esto lo que va a hacer, justamente, es lo que necesitaba.
Pensaba que iba a tener que hacer una lógica de decir, vale, si estoy en diciembre, por favor, me subes el año y me recuperas el de enero.
Pero ya veo que JavaScript sabÃa que iba a tener este problema y ha dicho, bueno, pues ya te lo arreglo yo.
Vale, muy bien, pues, vamos a arreglar lo de... sé que he dicho esto hace un rato, ¿vale?
Pero ahora mismo todos los meses empiezan en lunes. Esto está mal.
Vamos a hacer que empiecen en el dÃa correcto.
Para eso, tenÃamos aquà el primer dÃa. TenÃamos que decirle que el primer dÃa tenÃa que tener una clase.
No sé si es tan importante que tenga una clase.
First day, por ejemplo.
First day.
Vale, podemos hacer que tenga una clase. Venga, sÃ, vamos a hacer que tenga una clase.
Class, vale, class.
¿Qué pasa? Que esto solo lo queremos para el primer dÃa.
Por lo tanto, vamos a utilizar ahora también el Ãndex del map este.
Y aquà lo que vamos a poner... a ver, podrÃamos hacer más cosas.
Esto va a complicar un poco el tema, pero...
Johnny Masurek, muchas gracias por seguirme. Te lo agradezco.
Crack.
Por cierto, feliz año y felices reyes a todo el mundo. Espero que os hagan entre ahà un montón de cosas y todo cosas buenas.
Vale, lo que vamos a hacer aquà es que aquà vamos a crear first day... bueno...
First day class. Vale.
Attributes. Attributes, mejor, ¿vale?
Y aquà lo que vamos a tener es un class, que esto serÃa el first day, y le vamos a poner el atributo aquÃ, que vamos a ponerle un estilo.
¿Veis? Con esto, esto es muy interesante.
Porque con esto lo que se puede hacer justamente serÃa utilizar una custom property y cambiarle el valor al vuelo.
O sea, con un estilo en lÃnea.
Esto no se suele ver mucho y la verdad que está muy bien.
¡Ostras! ¡La rata primigenia!
¡La rata primigenia! ¡La primera rata ha llegado a Twitch!
¡La primera rata primigenia! ¿Cuántos años tienes? Cuéntanos.
Parece muy interesante saber cuántos años tienes.
¡Rata primigenia!
¡Ostras! ¡Qué bueno!
Vale, dice, sÃ, pero cambiaslo desde JavaScript.
Pero es más interesante, me parece mucho más interesante no hacer...
Mira, con JavaScript lo podrÃamos hacer.
Pero me parece más interesante hacerlo asÃ.
Porque si se lo cambio por JavaScript, el scope es un poquito más complejo, Doria.
De esta forma, gracias por seguirme, Crisys Josue.
Crisys Josue.
De esta forma es mucho más fácil porque para cada mes le decimos, vale, toma, toma, toma, toma.
Y está mejor, ¿no?
¿Sabes? Está más scope de ese elemento.
Bueno, vamos a hacerlo y ahora veremos a lo que me refiero.
FirstDayStart, vale, lo que vamos a decir es que el FirstDayStart va a empezar con el StartOn, ¿vale?
Esto lo tenemos aquÃ, StartOn.
Tenemos que decirle a partir de qué dÃa empieza.
Y estos FirstDayAttributes, la clase y este nuevo valor para esta CustomProperty es para el primer dÃa.
Por lo tanto, esto, index, cuando es cero, ponemos los FirstClassProperties y si no ponemos un array vacÃo.
Ay, un array vacÃo. Un string vacÃo, perdón.
Si guardo los cambios...
Vale, pues ya está, ya funciona.
No, pero ¿por qué funciona esto?
No, no, no, no, esto no funciona.
Vale, funciona...
Vamos a ver, claro.
Esto funciona porque está esto, ¿vale?
Dice GridColumnStart y ahora todo se empieza en 5.
No, no, no.
Lo que justamente queremos con esto es indicarle que tiene que empezar con el FirstDayStart.
¡Ostras!
¿Cuántos guiones ha puesto?
Ahora.
Ahora sÃ.
Ahora sÃ.
SÃ, sÃ, sÃ, ahora sÃ.
¿Veis?
Ahora, lo que estamos diciendo es que en esta clase va a leer la variable FirstDayStart,
la CustomProperty FirstDayStart, y eso va a ser el valor para el GridColumnStart.
De esta forma, ahora enero empieza en viernes, que si no me equivoco, y vamos aquà a enero,
empieza en viernes, febrero deberÃa empezar en lunes, que aquà lo tenemos,
y en marzo también empieza en lunes.
De hecho, podrÃa poner todo el año aquÃ, ¿no?
Ir revisando, a ver, pam.
Bueno, abril empieza en jueves, perfecto.
Esto empieza en fin de semana.
Bueno, que tiene buena pinta.
Y diciembre empieza en miércoles.
O sea que, perfecto.
De esta forma, es súper sencillo, ¿no?
El hecho de decir, vale, pues este mes empieza en tal, este mes empieza en otro, y ya lo tendrÃamos.
Solo con esto, ponemos un estilo en lÃnea y le cambiamos el valor de la CustomProperty para cada mes.
¿Te sabÃas este truco?
Si no te lo sabÃas, dale like.
Ah, no, que no se puede dar like a Twitch.
Bueno, ¿qué le vamos a hacer?
Si no lo sabÃas, se lo cuentas a todos tus amigos y amigas y le dices dónde las aprendió.
Y si ya lo sabÃas, pues seguro que estás pensando, bueno, va de chorrada.
Pero bueno, no me digas que no valió la pena.
Y creo que con esto, pues tendrÃamos estilado un poquito nuestro calendario.
Bueno, a ver, todo esto ya no lo necesitamos porque justamente nuestro calendario, pues, es dinámico.
Lo estamos creando al vuelo, para que veáis.
Por GitHub, pues como Midudev.
Si me puedes encontrar por todos los sitios como Midudev.
Excepto en Instagram, que ya he dicho que está el clon indio.
Mira, este soy yo.
Este soy yo.
Este soy yo, Midudev.
Mira, aquà están mis últimos artÃculos, mis últimas fotos en Instagram, mis últimos vÃdeos de YouTube.
Y si quieres hacerte un Ritme tan chulo como el mÃo, porque todo lo que ves está generado automáticamente para recuperar Instagram, YouTube y todo esto.
Pues te vas a YouTube, Midudev.
Y aquÃ, ¿dónde dice?
Midudev, Ritme.
Hice un vÃdeo aquÃ.
Que bueno, también estuve un buen rato charlando.
Pero que hice mi Ritme ahà en directo para que todo el mundo viese cómo lo hacÃa.
Hicimos GitHub Actions, que es bastante interesante y tal.
Las Custom Properties enemigas de Style Component.
Bueno, pero en este caso, mira qué bien nos ha venido las Custom Properties.
Son súper poderosas las Custom Properties.
¿Te gusta más GitHub con...?
SÃ, me gusta más GitHub con el tema claro.
A mà sÃ.
No sé.
Intenté el tema Dark y no...
SÃ que es verdad que lo he activado alguna vez.
Cuando, por ejemplo, he estado, no sé, en la cama de noche y he dicho,
ah, quiero ver una cosa de Guija por un momento y tal.
Y sÃ, pues va bien.
Pero no sé, en general me gusta más el clarito.
Además me recuerda a mi web, que es toda clarita.
Tampoco tengo un modo oscuro todavÃa en mi web.
Pero, ¿qué os gustarÃa que hiciese en Twitch el modo oscuro de la web?
De mi web.
Y asà lo hacemos entre todos.
Vale.
Bueno, pues lo interesante de esto serÃa todo esto que hemos hecho,
sacarlo a una función, ¿no?
Hacer un Create Calendar, que le pasamos el Local y el Year.
Y todo esto...
Pa, pa, pa.
Pa, pa, pa.
Hacemos asÃ.
Hacemos el Salsa.
Y ahora ya podrÃamos crear Create Calendar y le ponemos el Year,
que podrÃamos decirle 2050...
2077, como Cyberpunk.
Y el Local, que sea, pues, catalán, por ejemplo.
Vale, ha apretado algo porque...
Claro, ya...
Ya lo ha liado con los nombres.
El Local es que lo deja igual, pero el Year era Actual Year.
Pues voy a poner Year, Year, Year.
Y...
¿Me he dejado algún Actual Year por aqu�
Actual Year.
AquÃ.
Importante también.
Y bueno, ya está.
Mira, 2077.
Anda, un calendario con JavaScript, con traducciones.
FinÃsimo.
A ver, hemos estado una hora y 20, pero hemos estado charlando,
lo hemos estado aplicando.
Lo hemos estado haciendo paso a paso.
Yo creo que no está mal, no está mal.
Mira, Stoner y Rafael votan porque hagamos el modo oscuro de la web un dÃa en Twitch.
Pues lo vamos a hacer, lo vamos a hacer.
¿Qué?
¿Alguna cosa que creáis que podamos hacerle al calendario?
¿Qué le podemos hacer?
No sé.
La verdad es que aquà ya...
Alguien dijo lo de los recordatorios, pero ostras, los recordatorios aquà ahora creo que no está mal.
La verdad es que me sorprende el tema.
Marcar en rojo el dÃa de hoy.
Hombre, sÃ, eso puede ser.
¿Cómo podrÃamos pillar el dÃa de hoy?
New date.
Esto serÃa el dÃa de hoy y aquà podrÃamos recuperar el CSS.
TenÃamos que recuperar...
Bueno, el dÃa de semana no serÃa tan importante.
Get...
Bueno, claro, get date.
TenÃamos el dÃa.
Get month.
TenÃamos el mes.
Y get...
Bueno, el year se supone que no deberÃa ser...
A ver, deberÃa, claro, deberÃa ser importante, sÃ.
Que solo se vea en un mes en la vista y cambiar de mes con flechas.
¡Ostras!
¡Ostras!
Me parece interesante.
Me parece interesante ese, ¿eh?
¿Tienes pensado resumir estos directos, aunque sea un canal secundario?
Hostia, Nacho, es mucho trabajo.
Mucho trabajo.
Me gustarÃa, ¿eh?
Me gustarÃa hacer algo asÃ.
Lo que pasa es que si ya mi canal principal, el de YouTube, me gustarÃa darle cariño
y llegar a los 20.000 y tal...
¡Ostras!
ImagÃnate si tuviera uno secundario.
Si me dedicase solo a esto, ¿sabes?
Si no tuviese trabajo y solo me dedicase a esto, lo harÃa, ¿eh?
Porque me parece bien.
Pero hacerlo tal y como ahora mismo estoy, que es trabajando, creando contenido y tal...
Lo veo complicado.
Bueno, me ha gustado este de pasar de un mes al otro, ¿vale?
Me ha gustado.
El solo mostrar uno y que se vayan pasando uno tras otro.
Además, con esto lo podrÃamos hacer con scroll snap.
Y, bueno, puede ser interesante.
No sé qué puede salir de esto.
O sea, podemos empezar a hacerlo.
Muchas gracias, RaRapture, por seguirme.
Gracias por pasarte.
Vale.
¿Cómo podrÃamos hacer esto?
Estoy pensando.
Por ejemplo, si yo aquà pusiese que esto...
Esto es esto.
Y esto.
Vamos a poner que sea todo.
Mira, esto me gusta.
Esto me gusta.
A ver, una cosa que se podrÃa hacer rápidamente, que me parece interesante.
Oye, porque aquà hay un margen.
¿De dónde ha salido ese margen?
¿De aquà no será?
¿De dónde ha salido ese margen?
Sà que haré directos en YouTube.
SÃ, pero voy a hacer más en Twitch.
Directos seguramente haré más en Twitch.
Porque asà son más informales.
Me tengo que preparar menos cosas.
Voy un poco a mi bola.
Aprendo cosas.
Hablamos un poco.
Paramos.
Además, el problema es que YouTube, como tal, penaliza, en realidad, hacer directos largos.
No es algo que a la gente que consume en YouTube le guste.
O sea, a vosotros os gusta y lo sé.
Y os lo agradezco un montón.
Pero, por ejemplo, el de Frontend.
Hicimos uno de Frontend del 2001.
Que ha ido súper bien.
Que yo estoy súper contento y tal.
Pero, por ejemplo, hay cosas como, por ejemplo, hice este segmento de top 5 de los lenguajes de programación.
Y es un segmento súper interesante que lo podrÃa sacar.
Pero si hubiese sacado ese vÃdeo, que bueno, ya sea, ya la gente lo ha sacado con el mismo contenido.
Pero lo ha sacado, ¿no?
Como un vÃdeo aparte tendrÃa más éxito que no haber hecho un directo.
Que seguramente de información es bastante potente porque se habla de muchas cosas y muy interesantes.
Pero solo ese vÃdeo hubiera mejor tenido más éxito que todo el directo.
Que está genial que la gente, o sea, hay gente que aportó dinero y todo.
O sea, brutal.
Porque tengo una comunidad brutal y que sois geniales.
Pero, no sé, creo que en Twitch los directos, o sea, Twitch de alguna forma premia los directos.
Y además, cuanto más largos, mejor.
En cambio en YouTube el directo está bien, pero luego como que penaliza un poco.
Me da la sensación a la hora de buscar y tal.
Aunque este vÃdeo de YouTube tiene 10.500 visualizaciones y está tremendo.
Y estoy súper contento y tal.
O sea, que no descarto que haga vÃdeos en YouTube.
No descarto directos.
VÃdeos voy a seguir haciendo seguro.
Pero seguramente directos los voy a enfocar más a Twitch.
Seguramente.
Ya veremos.
Ya veremos.
A ver cómo.
Oye, esto.
SÃ, mira.
Estamos ahà a punto, ¿eh?
Estamos a punto.
Estamos, estamos...
Miren.
Yo, yo, yo, yo.
Ahà estamos, a punto de los 20.000.
Bueno.
Vamos a hacer esto.
Que comentamos un poco de...
Si hago directos cada dÃa.
No hago directos todos los dÃas.
Pero voy a intentar estar bastante activos.
Sobre todo ahora que necesito para ser afiliado que me...
Que hacer 8 horas, creo.
Pues voy a darle bastante caña.
Y voy a intentar, por ejemplo, voy a hacer directos como este.
De programar cosas que quiero probar y a ver cómo salen y a ver qué pasa y eso.
Eso serÃa un tipo de directo que quiero hacer.
Luego va a estar un tipo de directo que será más de yo trabajando en cosas que no puedo enseñaros.
Porque son de trabajo.
Ah, está en el body.
Este.
Y entonces...
Ah, pues he puesto MartÃn.
Ahora.
Vale.
Pues eso.
Trabajaré en mis cosas.
Y que puede ser mi trabajo del dÃa a dÃa.
Y quien quiera acompañarme.
Y entonces de vez en cuando charlar.
Y asà trabajar juntos.
Y tal.
Trabaja y estudia conmigo.
Y eso es una cosa que quiero hacer.
Porque eso también me obliga, de alguna forma, a estar bastante más en el trabajo.
Y qué más.
También me quiero hacer entrevistas y quiero hacer cosas asÃ.
Asà que, bueno.
Voy a darle bastante gañita.
Vale.
Pues ahora que tenemos esto.
Ahora solo se verÃa uno en concreto.
Pero, ¿ves?
Esto serÃa como...
A ver, se podrÃa hacer de otra forma.
Pero ahora mismo solo se verÃa uno.
Lo que me gustarÃa es...
Se puede hacer con flechas o se puede hacer con el scroll, por ejemplo.
EstarÃa bien si se pudiese...
A ver.
Ahà tengo...
Justamente tengo una cosa sobre esto.
ScrollSnapMiduDev.
La solución definitiva.
PodrÃamos utilizar el ScrollSnapType.
Esto en lugar de X.
SerÃa Y.
Porque es en el eje de la Y.
SerÃa de forma vertical.
Vamos a decirle que...
Esto deberÃa estar...
A ver.
Flujo y hidden.
De esta forma.
Si aquà ponemos que la altura sea de 100.
¿Vale?
Y en All le vamos a decir que esto se alinee en el centro.
No sé si esto lo vamos a poder...
No.
¡Ay!
La lia parda.
La lia parda.
Claro, es que esto además...
A ver.
Vamos a ponerlo en modo tal.
¡Hostias!
Esto se ve muy pequeño.
Lo que quiero ver es si podemos hacer...
Si podemos...
Ostras.
Esto...
Overflow...
¿La Y es hidden?
No.
La Y deberÃa ser scroll, ¿no?
Y la X es la que deberÃa ser hidden.
Overflow hidden.
Mira.
TodavÃa tendrÃamos que afinarlo.
Vale.
Con el scroll se queda.
Aunque lo que podrÃamos hacer es que esto se hiciese con las flechitas.
Ahora que tenemos esto, serÃa más fácil añadirle flechitas.
Oye, todavÃa veo...
Esto no sé.
Es esto del body.
El margen ese.
Ahora.
¿Vale?
¿Me das permiso para descargarme el directo cuando acabes para tenerlos como biblioteca de recursos?
Claro.
Claro que sÃ.
Pero si el directo está para que lo utilicéis cuando queráis y como queráis.
Asà que...
Claro que sÃ, hombre.
No os tenéis ni que...
No tenéis ni que preguntar.
Vamos.
SÃ, sÃ.
Podéis hacer lo que queráis con el directo.
Claro.
El problema de este...
A ver.
Es que esto...
Vamos...
Para que sea todo...
Seguramente esto...
Se lo tenemos que poner a este.
Section.
Entonces vamos a tener un deep.
Un deep.
Lo podrÃa hacer al revés.
¿Vale?
Para que se siga viendo dónde es.
Y me parece interesante lo de las flechas porque creo que podemos hacer el scroll to y ver eso como podrÃa funcionar para que haga la animación y todo.
Entonces tenemos el section y tenemos el deep.
Entonces a esta hora le llamamos section y este serÃa el deep.
¿Por qué?
Porque el section tiene que ser también...
Vale.
Ahora la estoy leyendo aquÃ.
Esto es lo que tiene maquetar en directo, amigos.
Es que...
Claro.
El all este tendrÃa que...
Deep.
Claro.
El deep es que al final tiene que ser de cada uno.
No puede ser de...
O sea, tendrÃa que...
Esto, claro.
Esto lo tendrÃa que...
Lo tendrÃa que cambiar a nivel de cada uno.
O sea, tendrÃa que poner un deep que englobase todo esto.
Aquà tendrÃa que poner deep class...
Deep, deep...
¿Cómo le podemos llamar a esto?
Calendar, por ejemplo.
O month, ¿no?
Porque esto serÃa un mes.
Month.
Y hacemos esto.
Entonces ese es el mes.
Ese serÃa el que tendrÃamos que hacer.
Ahora voy a romper un montón los estilos, ¿eh?
Ya lo digo yo.
Este deberÃa ser el que lo pongamos de esta forma.
O sea, que tenga esto.
Esto.
Que es lo que tendrÃamos abajo.
Y esto.
A ver.
Eso por un lado.
Vale.
Esto.
El problema ahora que tenemos...
Ta, ta, ta.
Tenemos el mes.
Pero el mes...
Claro, el grid.
No le...
No le mola.
Oye, esta musiquidad.
Está guay.
Un div por mes.
SÃ, eso es lo que estoy intentando.
BuenÃsimo que comparta esto con todos.
Pues claro.
Ahà compartiendo.
Mientras estoy maquetando, pasando pipa.
Esto ya no está en JavaScript.
Pero...
Pero bueno.
Claro, los siete dÃas de la semana.
Ta, ta.
Tenemos cada una de las fracciones.
Lo que pasa es que esto me la lÃa un poco parda, ¿no?
Claro, porque como lo tengo también ahà en ese...
Claro, cuando se ponen grandes sà que caben bien.
Pero si no...
Además, no queda del todo bien el...
¿Sabes?
Como que le sobra...
Le sobra ahà un poquito de...
Vamos a hacer esto.
Vamos a hacer esto y lo vamos a ver mejor.
Pam, pam, pam, pam.
Exacto.
Venga, vamos a ver qué le sobra.
Tenemos aquÃ...
Claro, el h1...
Claro, cuando hacemos que...
Esto es que no puede ser todo.
Porque si es todo, pues ya la liamos.
Tiene que ser asÃ.
Lo que pasa es que este all no puede ser todo.
O sea, que tendrÃamos que hacer a su vez un grid que tuviese este.
De esta forma podrÃamos llegar a hacer que cada cosa ocupase lo que tenga que ocupar, ¿no?
Y aquà lo que le podrÃamos...
Vale, esto ya empieza a pintar un poco mejor.
Lo que podrÃamos decirle...
No sé si le decimos aquà directamente...
No.
Porque...
Le tendrÃamos que decir que esto es un grid...
Autocomum scripting plate...
Column...
Vale, y le decimos...
Column no.
No.
Algo asÃ.
Vale.
Ahora sà que esto está fino.
Esto ya pinta mejor.
¡Visto!
Vale.
Esto para el mes.
No sé si he roto alguna cosa más.
Vale.
Lo que...
Ya vemos que podemos ir scrolleando.
Y esto que estamos haciendo lo podrÃamos hacer también con unas flechas.
De hecho, lo vamos a intentar hacer ahora.
¿Vale?
Le damos aquÃ, para arriba, para abajo.
Pim, pam, pim, pam.
No está bien porque haces un poco de scroll.
A ver, esto lo que queda bien...
De hecho, podrÃamos hacer que el scroll no funcione.
Pero mira, esto hace este efecto de pasar de un mes a otro.
Bueno.
Estoy viendo esto.
Esto en realidad lo podrÃamos cambiar también.
PodrÃamos hacer que fuese más chiquitito.
No hace falta que los day names tengan justamente la misma altura.
Claro.
Lo que pasa es que como es un grid, si hacemos esto, al final no tiene mucho sentido.
Tenemos que hacerlo a nivel de este grid.
Y hacer grid template rows.
Vale.
Place content.
No.
Esto no es lo que quiero.
Vale.
Pero al menos esto sÃ.
No, para hacer más chiquitito el tema de los dÃas de la semana.
Con esto...
No quede tan...
¿Vale?
Entonces, mira.
Ya podrÃamos pasar de uno a otro.
¿Vale?
Voy a dejar esto asÃ, con el grid template rows a 90.
Para que quede un poquito...
Este en el all.
Y lo que podemos hacer...
Porque decÃas, vale, pues quiero que unas flechas.
Vamos a ver si somos capaces de hacer esto en las flechas.
Voy a poner aquÃ, por ahora, a saco un botón que sea next.
Y vamos a llamar aquà que el document.queryselector a saco.
Le ponemos que escuchamos el evento de click.
Y que cuando hacemos click, ¿vale?
¿Qué es lo que tenemos que hacer cuando hacemos click?
Vale.
Saca el small name de los meses mejor que asà en la pantalla de móvil.
Da como toque.
SÃ, ya te digo.
Argueelo.
Arguello.
Arguello.
Lo podrÃamos cambiar aquÃ.
Justamente tenÃamos...
Weekday.
¿Dónde está?
Estamos en Intel Format.
No.
En los Intel que estamos creando.
Estos los dÃas de la semana.
PodrÃamos poner short.
Y aquà ya tendrÃamos, pum, cortos y pequeños.
Pero bueno, ha quedado bastante bien el calendario este.
No está mal.
No está mal.
Lo que quiero...
No sé si hacer algo asÃ.
SÃ, ¿no?
Queda un poquito más...
¿Cómo me gusta más?
¿Con el center o arriba?
No sé.
SÃ, ya estamos haciendo un Google Calendar aquà en un momento.
A ver, vamos a buscar el Google Calendar.
A ver, faltarÃan cositas, pero no está mal.
No está mal, ¿eh?
¿Arriba os gusta más?
Bueno, sÃ, arriba es como lo tiene...
Vale, pues lo dejamos arriba.
¿Está centrado arriba?
SÃ, venga.
Pues vamos a ponerle, si os parece, para que sea más Google Calendar.
Vamos a ponerle ese bordecillo, ¿no?
Que tiene.
No sé si esto...
Ay, aquà no.
No sé si esto quedará muy bien.
Claro, es que va a tener como un doble...
Claro, y los que están separados, ¿qué?
¡Ah!
¡Ah!
Esto no lo habÃamos pensado, ¿eh?
Cuando hicimos el columnar estar aquÃ.
¡Ah!
Claro, aquà se ven los dÃas anteriores.
A ver, lo podrÃamos llegar a hacer, ¿eh?
Los dÃas anteriores.
No...
Es tedioso, pero no serÃa imposible, porque ya lo hemos visto, ¿vale?
Y además...
Bueno, no queda mal.
Pero bueno, lo vamos a quitar, porque sà que es verdad que entonces se ve la vergüenza.
Se ve la vergüenza.
¿Qué decÃs?
De poner esto de sticky.
Bueno, esto lo podrÃamos poner sticky.
Lo que pasa es que entonces deberÃamos no utilizarlo en cada mes, ¿no?
PodrÃa ser una forma...
¿Quién utiliza esto?
Mira, React Calendar.
React...
No, React Dates creo que utiliza esto.
Ese efecto de dejar los dÃas de la semana, dejarlos ahÃ, creo que los hace React Dates.
¿Puede ser?
SÃ, mira, ¿ves?
Están ahà fijos.
La verdad es que está muy bien pensado.
Le da un efecto bastante chulo.
Pero a ver, vamos con el botón.
Tenemos el botón este.
Vamos con el botón.
Vamos con el botón.
Bien, el CH...
Alguien me preguntaba, ¿qué es el CH este?
El CH, que lo estoy utilizando con los números, el CH lo que significa es el espacio que en este tipo de letra ocupa el número cero.
¿Vale?
Es un poquito especial.
Pero lo que te hace es el ancho que utiliza el número cero es el que se utiliza para la fuente.
Tú le dices cuántas veces lo tengo que utilizar.
Hola, Moonshape.
Muchas gracias por seguirme.
Bienvenido o bienvenida.
Espero que te lo pases genial.
Vale.
Entonces, ¿por qué es útil esto?
Porque si tú pones en números, pones que tenga un font size normal, cuando se utilizan dos números puede ser que uno ocupe más que el otro.
Pero de esta forma los dos, el 15 y el 16, ocupan de ancho lo mismo.
Y queda bastante bien visualmente.
Si no, lo que te puedes encontrar es que ocupen un poquito más, un poquito menos y tal.
Y es un poco raro.
Sobre todo esto va bien con los contadores para que no den saltos.
Y con eso queda bastante bien.
La idea del calendario, básicamente, no sé si os acabáis de entrar, quien se acabe de incorporar, que sepa que lo que hemos hecho es que yo tenÃa un vÃdeo en YouTube.
Que era de maquetar un calendario con tres lÃneas de CSS.
Con tres lÃneas de CSS se podÃa maquetar un calendario.
Y era utilizando Grid y estaba bastante bien, pero mucha gente me dijo, oye, ¿qué pasa?
Es que tú has creado aquà el HTML y esto es un coñazo crear HTML.
Vale, pues lo que hemos hecho hoy, que hemos estado aquà un ratito, es que lo estamos haciendo todo con JavaScript.
De forma que el HTML se genera automáticamente.
AsÃ, de esta forma, pues tenemos aquà un calendario que dices, vale, pues esto es de enero de 2077.
Y ahora le podemos pasar el año y el idioma y nos genera el calendario.
Y todo esto con JavaScript, puramente JavaScript.
Y le podemos decir también, pues en japonés.
Lo pone en japonés.
Qué chulo, ¿no?
En japonés.
Súper guay.
Muy chulo.
Bueno, pues eso.
Y ahora lo que estamos haciendo es un efecto de que solo salga un mes y que se pueda pasar de uno al otro.
Y bueno, que tenga este efecto y está bien.
Pues eso.
Pues eso.
Pues nos quedamos ahà con el botón que querÃamos que al seleccionar este botón, vamos a destilar el botón un momento.
Y vamos a poner que tenga un Position Absolute.
Bueno, podrÃamos poner que sea Fix o Sticky.
Pero vamos a poner y que se quede siempre a 10.
32 pÃxeles, 32 pÃxeles, Border Radius.
Vamos a poner esto de este color mismo, de este color mismo.
Vamos a ver por dónde sale este botón.
Vale.
Borde 0, Padding 32 pÃxeles.
¡Hostia!
¡Ostras!
Nuestro botón.
Vale.
Y pon TextOnline.
Bueno, tampoco es muy importante cómo se vea, ¿eh?
Era por...
De hecho, vamos a poner aquà Down.
Como para el siguiente, básicamente.
La idea.
With.
¿Ya habÃa puesto With?
¿Cómo lo estoy imaginando yo?
Ah, ¿no?
Vale.
Bueno, esto es nuestro botón.
¡Uy!
Short.
Vale.
Lo que queremos es que cada vez que le demos, vaya al siguiente.
Entonces, ¿cómo podemos hacer esto?
Y esto es interesante porque...
¿Qué es lo que se supone...?
TendrÃamos que utilizar, yo creo, el Scroll To.
De esta forma, vamos a ver cuál es el que tiene el Scroll.
El que tiene el Scroll es el Section, ¿no?
Section...
No, es el Deep.
Vale.
Pues el Deep.
Bueno.
Pues el Deep.
Vamos a Document, Query, Selector, Deep.
Scroll To.
A ver qué pasa con esto.
No pasa nada.
Vale.
Vamos a ver una cosa.
O lo podemos ir probando más fácilmente si lo abrimos aquà y vamos haciendo cosas.
No, es que Scroll To...
Es que no es Scroll To.
¿Esto cómo es?
A ver.
Query Selector.
El Deep.scrollBy...
No, no sé qué tiene Scroll To.
¿Por qué me ha dicho que no?
Vale.
X.
Vale.
X es indiferente.
Uno.
¿Menos uno?
No.
Bueno, pero al menos ya esto sà que tiene Scroll To.
¿Qué he puesto aqu�
Document Query Selector.
Deep.
Pero me ha dicho...
Tu Dictionary at HTML's Button.
Vale.
No sé por qué aquà se me está quejando de este Document Query Selector al recuperar el Deep.
QuerySelector.scrollTo.
Add Listener.
No deberÃa haber más.
Ah, sÃ, claro.
Tiene razón.
Igualmente el Query Selector me deberÃa devolver uno.
Porque si yo pongo esto, esto debe ser un elemento solo.
Solo tiene que ser un Deep.
¿No?
Y aquÃ...
Y aquÃ...
Shup.
Hacemos esto.
Y esto solo es cuando le damos al siguiente.
Está ahà abajo.
¿Ves?
Aquà tenemos este.
O sea que esto lo está haciendo bien, ¿eh?
Está recuperando bien el que queremos y tal.
Lo que no...
Hombre, César Vidal 2002.
Muchas gracias por pasarte.
ScrollTo.
ScrollTo.
ScrollTo.
Funcionar deberÃa funcionar.
Pero, ¿qué es lo que queremos decir?
Le decimos las coordenadas a las que tiene que ir.
Vale, claro.
Esto...
Vale, vale, vale, vale.
Claro, claro.
Las coordenadas.
Efectivamente.
Claro.
Entonces, en este caso, si nosotros hacemos el documento.querySelector y recuperamos el Deep, que es el Deep que queremos, y le hacemos ScrollTo, esto lo dejamos igual y hacemos menos 2000, esto está sudando de nosotros.
Ah, ahora sÃ.
Ahora sÃ.
Vale.
Vale, vale.
Entonces, si ahora le...
Claro, mejor si utilizamos esto y además...
Porque se entiende mejor, es que al final el top es lo que queremos.
Lo que queremos aquà cambiar es el top, que sea 2000.
Por poner un ejemplo, Behavior Smooth.
Vale, esto es que ya estaba.
Bueno, el Behavior, no sé si es que lo he escrito mal.
SÃ, lo he escrito mal.
Lo he escrito en la forma...
Vale, aquà está.
Bueno, ahora este ya lo tenÃamos aquÃ.
¡Madre mÃa!
Pues ahà tenemos.
Claro, el tema ahora es saber cuánto ocupa cada uno.
Pero bueno, que esto es lo que tiene buena pinta.
Vamos a ver por qué esto no nos funciona.
Dime por qué no me funciona.
A ver, si hemos visto ya que esto está bien.
Vale, Deep.ScrollTo.
Vale, entonces le decimos...
Por ahora vamos a ir a saco.
Vamos a poner top 5000.
Que ahora lo calcularemos.
Esto se puede calcular.
No pasa nada.
Behavior Smooth.
Vale, para que haga el efectito.
Vamos a refrescar.
Le doy al botón este pequeñÃsimo que tenemos aquÃ.
Bueno, a ver, puedo hacer esto asà para que veamos el botón.
Vale.
Ha hecho un salto, pero lo importante es que sà que va.
Ahora, lo que podrÃamos hacer es que vaya siempre al siguiente.
Para hacer esto, creo que lo que tenemos que poner aquÃ...
PodrÃamos poner un estado.
A ver.
PodrÃamos hacer un montón de cosas aquÃ.
PodrÃamos recuperar el scroll actual.
PodrÃamos recuperar el scroll actual.
Hacer un intersection observer.
PodrÃamos hacer tantas cosas.
PodrÃamos tener un estado para guardar en cuál estamos.
O ir informando en ese intersection observer.
Y ir actualizando en qué posición nos estamos encontrando.
Para que haga el correcto.
Por ahora lo que voy a hacer es que siempre vaya hacia abajo.
Y entiendo que para eso.
Vamos a utilizar el inner height.
Que es lo que ocupa window.
Window.
Es lo que ocupa.
Entonces, cada vez que le demos window.inner height...
Esto deberÃa ser el scroll top más...
Vale.
Document.
Query selector.
Vamos a ver si me devuelve esto el scroll top.
Vale.
Vale.
Eso es cuánto ha scrolleado ya.
Más.
El siguiente.
Si empezamos en el 1.
Vamos al 2, al 3, al 4.
¿Qué te parece?
Vale.
Ahora el problema.
Vale.
Pues ya está.
Es que ni siquiera hace falta guardar en la variable.
Porque como estamos utilizando el scroll top.
Y siempre decimos que queremos ir al siguiente.
Pues ya está.
Ya tenemos aquà una flecha.
Que nos va siempre al siguiente.
Qué bien pensado, ¿no?
Mira que...
Estaba pensando.
No, si hago esto.
Pues seguro que no sé qué es lo cuento.
Y claro.
Con esto ya nos lo arregla.
Claro, claro, claro.
Y además, hacer algo al revés no deberÃa ser muy complicado.
Mira.
Vamos a poner aquà app.
Bueno.
Vamos a ponerle una idea.
Por hacer app.
Y...
Bueno.
App.
Yo también.
Yo también soy dislésico.
Soy dislésico.
Vamos a ver.
App.
Esto.
Para arriba o para abajo.
Venga.
Venga.
Claro, el app al principio no tendrá mucho sentido.
Pero bueno.
El query selector.
Get element by id.
Y recuperamos el down.
AquÃ.
Recuperamos el app.
A ver.
Que esto se podrÃa reutilizar mejor.
App.
Aunque sea para no volverme muy loco.
Vamos a poner esto asÃ.
Lo que me falta ahora.
Claro.
Tenemos el botón.
Pero claro.
Al botón.
Ahora el app.
Voy a querer que esté un poco por encima.
Asà que vamos a poner que el bottom está...
Bueno.
Voy a ver cómo queda esto.
Ahora lo arreglamos.
Más o menos.
Está chulo.
Está chulo.
Ha quedado súper bien.
Drop the mic.
Mira.
Hemos creado un calendario con javascript.
Una hora cincuenta.
Tampoco nos tarda tanto.
Tampoco nos tarda tanto.
A ver.
Mira.
Le puedes dar un montón de veces.
Y no se rompe.
A lo mejor te va.
Pero tampoco hace nada extraño.
¿Sabes?
Pues si le das dos veces.
Y todavÃa no ha calculado suficiente.
Pues bueno.
A ver.
PodrÃamos hacer.
PodrÃamos hacer.
Desactivar el botón.
Y tal.
Además.
Mira.
Es súper accesible.
Además.
Porque mira.
Tenemos.
Podés scrollear si quieres.
Puedes ir con las flechitas.
Si estás con el móvil.
Puedes hacer el swipe.
Y vas al siguiente.
Para arriba o para abajo.
Tienes los botones para ir.
¡Ostras!
¡Máximo!
¿Qué?
¿Qué?
¿Qué?
¿Qué?
¿Qué?
Madre mÃa.
Ya hay gente que está alucinando de tal forma que hablan japonés.
Es increÃble.
Un poquito de performance.
En vez de buscar con selector.
Puedes sacar el scroll con window scroll y window inner height.
Un poquito de...
En vez de buscar con selector.
No, ¿eh?
Lo que comentas arguello, aunque arguello, aunque tiene buena intención, no.
No porque...
Bueno, al menos por ahora, ¿eh?
Porque el window...
No tenemos el scroll y del window.
No lo tenemos.
Está en el elemento, que es el que funcionarÃa.
Que sà que podemos optimizar, ¿eh?
Hemos hecho aquà cosas a saco para ir avanzando.
Seguro que, por ejemplo, esto de recuperar el dip este cada vez que hacemos el click.
Esto no tiene mucho sentido.
Este dip seguramente...
Bueno, vamos a ponerlo asÃ.
Lo podrÃamos sacar una vez.
Esto ya lo quitarÃamos.
Esto también lo quitarÃamos.
Luego, aquà abajo, esto también ya serÃa en el innerHTML este.
Por cierto, voy a formatear esto porque está mal formateado.
Y, bueno, funcionar seguirÃa funcionando.
¿Vale?
Luego se podrÃan hacer más cosas.
Por ejemplo, esta función...
El window este también se podrÃa poner una vez.
Vamos a recuperarlo.
InnerHight.
Esto que sea en Height.
O Window.
¿Vale?
Pero esto es lo que nos obligarÃa, aunque es más performante, lo que deberÃamos hacer es tener un AddEventListener
para asegurarnos que recuperamos la información correcta si se hace un resize de la ventana.
Esa podrÃa ser una.
Tampoco, a ver, como es al hacer clic, tampoco serÃa tan problemático.
Tampoco me parece muy grave.
Luego, otra cosa que se podrÃa hacer, pues reutilizar lo de la función.
Esta parte de la función, reutilizarla también.
La diferencia serÃa multiplicar por menos uno, uno de los dos y ya está.
Ya estarÃa.
Bueno, Arguello, pues nada.
Un abrazo.
Un abrazo.
Bueno, el viernes por la noche hacemos streaming otra vez aquà en Twitch, asà que apúntate.
No sé si mañana estaré.
SÃ, igual, sà que me animo, a saco.
Y nada.
Pues nada, yo creo que ha quedado brutal.
Muchas gracias a los que os habéis quedado hasta aquÃ.
Estamos cerca de los 20.000 en YouTube, ya sabéis.
Y compartiendo en vuestras redes sociales, en donde sea, para que todo el mundo no se pierda mi canal de YouTube o Twitch.
Vamos a irnos a descansar, que creo que hemos hecho un trabajo fabuloso y que ha quedado genial.
Ya subiré en Code Sandbox.
Os lo subo ahora, antes de que nos vayamos todos a por ahÃ.
Venga, os lo subo ahora, ¿vale?
Y os lo dejo en el chat, que no se diga que esto no se ha creado, que nunca ha existido.
Bueno, vamos a crear un Sandbox.
Y el Index HTML, os lo dejo aquÃ.
Al final lo hemos hecho todo en un Index HTML, asà que no es lo ideal, ¿vale?
Pero os lo saco.
¡Wow! ¡Qué guay!
Ha quedado de lujo.
La verdad es que ha quedado de lujo.
Calendario con JavaScript.
Ha quedado de lujo.
No sé, no sé de muchas cosas de estas todos los dÃas.
Vamos a ver.
Copy Sandbox link y os lo paso, ¿vale?
Y ahà lo tenéis, para vuestro disfrute.
Te vas contenta, ¿eh?
Porque has aprendido cosas nuevas.
Genial.
Pues yo también me voy contento por haber compartido con todos ustedes.
Pues cuidado mucho y nos vemos en el siguiente directo, en el canal de YouTube, en Instagram,
o en Twitter o en cualquier sitio, en cualquier lado.
Bueno, venga, un abrazo.
¡Chao!
¡Chao!
Gracias.