Кнопка поиска открывает палитру поверх экрана: она появляется на пружине, а группы команд проявляются из размытия одна за другой. Поиск фильтрует команды по названию, группе и ключевым словам, подсветка перелетает между строками при касании или наведении.
Нажатие на строку выполняет команду или переходит по ссылке. В вебе палитра открывается по ⌘K / Ctrl+K и управляется стрелками, Enter и Escape. Если ничего не найдено и передан onAsk, палитра предлагает задать запрос ИИ. При «Уменьшении движения» пружины и размытие отключаются. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install react-native-reanimated react-native-svgpnpm add react-native-reanimated react-native-svgyarn add react-native-reanimated react-native-svgbun add react-native-reanimated react-native-svgСкопируйте эти файлы в src/shared/components/organisms/command-palette/:
Код доступен по подпискеPro
Исходник «Командная палитра» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Командная палитра» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
commands?Тип readonly ICommand[]
groupOrder?Тип readonly string[]
placeholder?Тип string
onAsk?Тип (query: string) => void
askLabel?Тип string
onNavigate?Тип (href: string) => void
hotkey?Тип boolean
panelWidth?Тип number
groupStagger?Тип number
theme?Тип CommandPaletteTheme
style?Тип StyleProp<ViewStyle>