hidden="until-found" がAstro/Reactコンポーネントのスプレッドで値が落ちる
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
Read Lism.astro and setAccordion.js, then trace how hidden="until-found" passes through the component prop spread and how ACCORDION_HIDDEN_VALUE is obtained. Reproduce the static and spread cases described in the issue; done means the rendered attribute retains "until-found" and accordion interactions do not replace it with an empty value.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
概要
Lismコンポーネントに hidden="until-found" を渡すと、出力されるHTMLでは値が落ちて単なる hidden になってしまう。
原因
Astroのランタイム(render/util.ts)が hidden をboolean属性として扱っているため、{...props} でスプレッドする際に文字列値が無視され、truthy → hidden(値なし)に変換される。
- 静的HTML:
<div hidden="until-found">→ そのまま出力される(OK) - 動的スプレッド:
<div {...{hidden: "until-found"}}>→<div hidden>になる(NG)
Lismコンポーネントは内部で <JSX {...getLismProps(props)}> とスプレッドしているため、後者のパターンに該当する。
getLismProps 自体は hidden: "until-found" を正しくパススルーしており、Lism側のprop処理には問題ない。
参考: React 18でも同様の問題がある(React 19で修正済み)
https://github.com/facebook/react/issues/24740
影響
- Accordionパネルなど
hidden="until-found"を使用するコンポーネントで、ブラウザのページ内検索(Find in Page)が正しく動作しない setAccordion.jsで初期値をgetAttribute('hidden')で取得する処理にも波及し、JS側の開閉後もhidden=""になってしまう(デフォルトの'until-found'が空文字で上書きされる)
対応案
- Lism.astro で
hiddenを特別扱いし、スプレッドではなく直接属性として出力する方法を検討 setAccordion.jsのACCORDION_HIDDEN_VALUE取得ロジックで空文字の場合にデフォルト値を維持する修正
- Lenguaje dominante
- TypeScript
- Estrellas
- 283
- Forks
- 8
- Merge medio
- 6 h 37 min
- PR fusionados (30 d)
- 15
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de lism-css/core
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
将来的に検討
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de lism-css/core
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
CopilotKit/openmuse#215 ·
Los mantenedores suelen responder en 3 días
-
b:minor bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
software-mansion/argent#1698 ·
Los mantenedores suelen responder en 1 día
-
e2e-failure ready-to-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
redhat-developer/rhdh-plugin-export-overlays#4624 · 1 comentario ·
Los mantenedores suelen responder en 1 día