Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Ctrl+; with a property value row in the block selection throws in toggle-collapse!

Abierto Apto para principiantes
#1,360 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
86/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
clojure
Área
frontend

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:

  1. 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).
  2. 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de logseq/db-test

Todos los issues de logseq/db-test

Issues similares

Más issues de Web Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.