Entonces, el grupo básicamente tiene que saber si uno de sus elementos es el valor actual de IO. ¿Entonces, cómo funciona esto?
Ahora, esto es un poco aburrido. Es una navegación con una lista dentro. Y ese elemento también es un poco aburrido. Es el elemento de la lista dentro, porque el padre es un UL. Entonces, esto tiene que ser un LI. Y luego renderizamos un componente de enlace del design de la component library. Entonces, todas las cosas divertidas están ahí.
Entonces, ese grupo, por supuesto, es el elemento de la lista porque se renderiza dentro de un UL. Y esta cosa es un botón, porque haces clic en él y puedes cambiar el estado. Tiene un icono de reunión. Renderizamos los hijos junto a él. Y ahora necesitamos una forma de identificar básicamente si esto está abierto o cerrado. Entonces, establecemos el estado, decimos, gestionamos el estado. El estado se puede alternar con el botón. Y luego incluso podemos hacer esto, llevarlo como un icono adicional. Lo llevo hacia arriba o lo llevo hacia abajo, ¿verdad? Como este.
Entonces, todo esto es bastante genial cuando interactúas con él. Pero, ¿cuál es el valor predeterminado de esto? Necesitamos saber si este grupo de navegación tiene un elemento dentro de él, que tiene ARIA actual, para que podamos establecer eso como abierto por defecto es igual a verdadero. Ahora, un recordatorio de que esto es lo que estamos buscando, pero estamos buscando, necesitamos acceder a este valor aquí arriba en el grupo. Entonces, una de las opciones podría ser simplemente preguntar al usuario, ¿verdad? Preguntar al desarrollador que está usando este componente que establezca el valor predeterminado. Y eso obviamente funciona, pero si piensas en qué sería la developer experience aquí, qué tipo de código tendrían que escribir, probablemente sería algo como esto, donde tienes que mantener una lista de todos estos, y luego decir si incluye alguno de ellos, entonces esto debería estar abierto. Y ya están haciendo parte de esta información aquí, y esto se siente un poco redundante. Esto obviamente no funcionaría en SSR, así que probablemente tendrías que acceder a un enrutador aquí. Y se siente como mucho trabajo que es fundamental para lo que están tratando de hacer, lo que también significa que podemos ser pasados por alto y luego obtienes una mala user experience. Entonces, un componente inteligente simplemente absorbería esto.
Entonces, ¿cómo enviamos este valor automáticamente? Una forma, por supuesto, sería hacer crímenes para seleccionar los componentes de los hijos. Y hemos hecho algo así antes, donde podemos decir que el valor predeterminado abierto es falso, y luego mapeamos todos los hijos. Y si alguno de ellos tiene ARIA Aparente, entonces ese valor predeterminado abierto debería ser verdadero, ¿verdad? Eso tiene sentido. Y eso es bastante fácil.
Comments