DurableDashboard.Components.Command.CommandPalette (DurableDashboard v0.1.0-rc)

Copy Markdown View Source

⌘K command palette. Rendered once by Layouts.app — always present, hidden when closed. The JS hook (assets/src/hooks/command_palette.ts) bridges keypresses to LC events.

What it searches

The palette searches the nouns of the console, grouped:

  • Go to — the static page routes (Overview, Workflows, Executions, Inputs, Schedules, Settings).
  • Workflows — live workflow definitions (Durable.Query.list_workflows), each jumping to that workflow's executions list.
  • Recent runs — the latest executions, each jumping to its detail page.

Live data is snapshotted on open (one query pass) and filtered in-memory on every keystroke — so typing never hits the database.

Events

  • palette:open — open, snapshot live data, focus the input
  • palette:close — close (Esc, click overlay)
  • palette:search %{"value" => q} — phx-change on the input
  • palette:move %{"dir" => "up" | "down"} — keyboard nav (wraps)

  • palette:select %{"index" => i} — hover highlights a row
  • palette:activate — Enter / click → live-navigate to the selected result

Required assigns

  • :base_path — host mount path, for building hrefs
  • :durable — Durable instance name, for live workflow/run search (when nil, the palette degrades to page routes only)