Ctrl+; with a property value row in the block selection throws in toggle-collapse!
まだ誰も着手していません。
評価
調査の方向性
src/main/frontend/handler/editor.cljs の toggle-collapse! から始め、選択処理を src/main/frontend/util.cljc の util/selection-node-block-id および src/main/frontend/components/property.cljs のプロパティ行のマークアップと比較します。選択されたプロパティ値の行で Ctrl+; アクションを再現します。完了条件は、その行がスキップされ、選択されたブロックが TypeError なしに折りたたまれるか展開されることです。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- 言語のデータがありません
- スター
- 28
- フォーク
- 2
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
logseq/db-test のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Pressing Delete after double-clicking a journal page's title row throws in keydown-delete-handlerオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
CSCfi/sd-search-ui#145 ·
メンテナーはふだん 1 日以内に返信
-
Type/Task
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
OpenNSW/nsw-srilanka#537 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
stac-utils/stac-fields#42 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
MTES-MCT/rapportnav2#1557 ·
メンテナーはふだん 1 日以内に返信