Ctrl+; with a property value row in the block selection throws in toggle-collapse!
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
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:
- 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.
- 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di logseq/db-test
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Tutte le issue di logseq/db-test
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
PostHog/posthog.com#20628 ·
I maintainer di solito rispondono entro 1 giorno
-
bug status:Needs Triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
jupyterlab/jupyterlab#19964 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
area: notebooks-jupyter bug theme: new notebook frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
posit-dev/positron#16347 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
friction
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
kentcdodds/kody#2752 ·
I maintainer di solito rispondono entro 1 giorno