Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Chiusa Adatta ai principianti
#1,360 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
86/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
clojure
Ambito
frontend

Direzione di ricerca

Inizia in src/main/frontend/handler/editor.cljs, da toggle-collapse!, poi confronta la relativa gestione della selezione con util/selection-node-block-id in src/main/frontend/util.cljc e con il markup della riga della proprietà in src/main/frontend/components/property.cljs. Riproduci l'azione Ctrl+; con una riga del valore della proprietà selezionata; è completato quando la riga viene ignorata e i blocchi selezionati vengono compressi o espansi senza il TypeError.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Nessun dato sulla lingua
Stelle
28
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di logseq/db-test

Tutte le issue di logseq/db-test

Issue simili

Altre issue su Web Dev

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.