Core:note-list-show-notes-with-status ですべての book のノートが対象になる

確認内容

core:note-list-show-notes-with-status コマンドの挙動についての確認です。
選択中の book のみではなく、全ての book で active なノートが表示されるのは意図した挙動なのか(違うのではないか)です。

利用環境

  • Platform: (macOS/Windows/)
  • Platform version: (macOS Catalina/ win10 2004)
  • App Version: (5.3.0)

再現方法

Notebooks に book book と scrap book の 2 つがあります。

image

scrap book を選択します。

image

scrap book が選択された状態で Active な note の一覧を表示するコマンド(core:note-list-show-notes-with-status )を実行します (init.js の中で自作コマンドを定義して、keymap.cson にキーを定義しています)。

inkdrop.commands.add(document.body, "mycmd:select-active", () => {
  inkdrop.commands.dispatch(
    document.body,
    "core:note-list-show-notes-with-status",
    {
      status: "active",
    }
  );
});
'body':
    'ctrl-@': 'mycmd:select-active'

サイドバーの表示は変わりませんが(scrap book が選ばれている)、 すべての book の Active なノートが表示されます (book book の Active なノートも表示される)。
scrap book にある Active なノートのみが表示されるのが正解 に思います(そうであって欲しいと思っています)。

サイドバーの Active を選択した場合の挙動は期待通りの挙動です (scrap book 内の Active なノートのみが表示される)。

こんにちは。ご報告ありがとうございます。

core:note-list-show-notes-with-status コマンドは原則、全ノート対象です。ワークスペース内でdispatchされる事は想定されていないので、UIの一貫性が崩れてしまっています。
ワークスペース内でstatusでフィルタする場合は、 core:note-list-show-notes-in-book コマンドを使います。

例:

commands.dispatch(document.body, 'core:note-list-show-notes-in-book', {
  bookId: bookId,
  status: "active",
  filter: false,
  includeChildren: true
})

現在選択されているbookIdは、 queryContextステートから取得できます。
ワークスペースは設計上、あくまでノートブックの中身をフィルタしているという考え方です。

期待通りの動きになりました!
ありがとうございます!

Great! Have a nice day.