Ctrl+; with a property value row in the block selection throws in toggle-collapse!
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 86/100
Línea de trabajo
Empieza en src/main/frontend/handler/editor.cljs, en toggle-collapse!, y compara después su manejo de la selección con util/selection-node-block-id en src/main/frontend/util.cljc y con el marcado de la fila de propiedad en src/main/frontend/components/property.cljs. Reproduce la acción Ctrl+; con una fila de valor de propiedad seleccionada; se considera terminado cuando se omite la fila y los bloques seleccionados se contraen o expanden sin el TypeError.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Steps
Not reduced to hand-written steps. What is known:
- Blocks are selected (not editing), and the selection includes a property value row of a block (the rows under a block such as "Status Open", rendered as
.ls-block.property-value-container). - Press Ctrl+; (
:editor/toggle-block-children, "mod+;").
Expected
The selected blocks collapse or expand, and a selected property row is skipped.
Actual
TypeError: Cannot read properties of null (reading 'toLowerCase') from cljs.core/uuid in frontend.handler.editor/toggle-collapse!, reported to the window as uncaught. Nothing collapses.
Cause (read in code)
In src/main/frontend/handler/editor.cljs, the selection branch of toggle-collapse! computes
(map #(-> % (dom/attr "blockid") uuid) (get-selected-blocks))
The selection holds DOM nodes collected by class ls-block (util/get-blocks-noncollapse, select-all-blocks!), and property value rows carry that class without a blockid attribute (src/main/frontend/components/property.cljs, :div.ls-block.property-value-container). Other selection handlers go through util/selection-node-block-id (src/main/frontend/util.cljc), which reads the inner block of such a row or returns nil, and drop the nils with keep. toggle-collapse! calls uuid on nil instead.
Found by a monkey test (gremlins.js with trusted Playwright input) of the web build of master 16c4ed1a0: seed 105, action 729 (Ctrl+; right after an ArrowUp), and once in a replay of seed 205. Replaying the logged actions of seed 105 up to the failure on a fresh graph reproduced it 1 of 2 times. A text property row did not reproduce it by hand (0 of 2): that row holds an inner block with an id, which is what gets selected.
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 28
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. 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 logseq/db-test
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Pressing Delete after double-clicking a journal page's title row throws in keydown-delete-handlerAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Todos los issues de logseq/db-test
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
godotengine/godot-website#1432 ·
-
Issues in error templateAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
getgrav/grav-theme-quark2#26 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
SocialGouv/egapro#4672 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
[TreeSelect] 切换父级后,之前的子级选中样式会丢失Abierto🐞 bug 🧐 unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Tencent/tdesign-miniprogram#4664 · 1 comentario ·
Los mantenedores suelen responder en 1 día