Skip to content

Состояние палитры

useCommandPalette() — composable, предоставляющий глобальное состояние палитры и все функции управления. Должен вызываться внутри дерева компонентов, где установлен VCommandPalettePlugin. Передайте имя инстанса — useCommandPalette('sidebar') — чтобы обратиться к именованному инстансу.

ts
import { useCommandPalette } from '@macrulez/vue-command-palette'

const palette = useCommandPalette()

Состояние

isOpen

Readonly<Ref<boolean>>

Открыта ли палитра в данный момент.

query

Ref<string>

Текущий поисковый ввод. Доступен для записи — присвойте значение, чтобы менять запрос программно.

results

ComputedRef<SearchResult[]>

Текущие результаты поиска для query.

activeIndex

Ref<number>

Индекс выбранного с клавиатуры результата.

history

Readonly<Ref<Array<{ paletteId: string; query: string; activeIndex: number }>>>

Стек хлебных крошек для вложенных палитр/страниц — по одной записи на уровень, добавленный через open(paletteId).

loadingCommandId

Readonly<Ref<string | null>>

ID команды, у которой сейчас выполняется perform(), либо null.

colorTheme

Ref<'light' | 'dark' | 'system'>

Активная цветовая тема — см. Встроенный переключатель темы.

pinnedIds

Readonly<Ref<string[]>>

ID закреплённых в данный момент команд, в порядке закрепления.

queryHistory

Readonly<Ref<string[]>>

Недавно отправленные запросы за сессию (сначала самые недавние) — см. История запросов.

Методы

open

(paletteId?: string) => void

Открывает палитру. Передайте id команды, чтобы добавить под-палитру/страницу в стек хлебных крошек, вместо сброса к корню.

close

() => void

Закрывает палитру и сбрасывает query, activeIndex и history.

toggle

() => void

Открывает палитру, если она закрыта, закрывает — если открыта.

goBack

() => void

Извлекает один уровень из history, либо закрывает палитру, если истории нет.

executeActive

() => Promise<void>

Запускает текущий выбранный с клавиатуры результат.

executeCommand

(cmd: Command) => Promise<void>

Запускает конкретную команду через полный поток (диалог подтверждения, под-палитра/страница, отслеживание недавних/frecency, состояние загрузки).

getRecentCommands

() => Command[]

Разрешает список недавних команд в их текущие объекты Command.

getPinnedCommands

() => Command[]

Разрешает pinnedIds в текущие объекты Command.

registerCommands

(commands: Command[]) => () => void

Регистрирует команды без заголовка группы. Возвращает функцию снятия регистрации. Внутри компонента предпочтительнее useRegisterCommands — она снимает регистрацию автоматически при размонтировании.

registerGroup

(group: CommandGroup) => () => void

Регистрирует полную группу команд. Возвращает функцию снятия регистрации. Внутри компонента предпочтительнее useRegisterGroup.

addRecent

(id: string) => void

Вручную добавляет ID команды в список недавних.

isPinned

(id: string) => boolean

Закреплена ли команда с данным ID.

pin

(id: string) => void

Закрепляет команду.

unpin

(id: string) => void

Открепляет команду.

togglePin

(id: string) => void

Закрепляет команду, если она не закреплена, открепляет — если закреплена.

Программное управление

ts
const { open, close, toggle } = useCommandPalette()

open() // открыть палитру
close() // закрыть и сбросить состояние
toggle() // переключить открыто/закрыто

// Открыть под-палитру (навигация по хлебным крошкам)
open('parent-command-id')