Состояние палитры
useCommandPalette() — composable, предоставляющий глобальное состояние палитры и все функции управления. Должен вызываться внутри дерева компонентов, где установлен VCommandPalettePlugin. Передайте имя инстанса — useCommandPalette('sidebar') — чтобы обратиться к именованному инстансу.
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
Закрепляет команду, если она не закреплена, открепляет — если закреплена.
Программное управление
const { open, close, toggle } = useCommandPalette()
open() // открыть палитру
close() // закрыть и сбросить состояние
toggle() // переключить открыто/закрыто
// Открыть под-палитру (навигация по хлебным крошкам)
open('parent-command-id')