ბრძანებების ძიება · Command
კლავიატურით მართვადი ძიება Base UI Autocomplete-ზე; გვერდზეც და დიალოგშიც.
მაგალითი
"use client";
import { useEffect, useState } from "react";
import { Button } from "@llc-conciergia/ui/button";
import { CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from "@llc-conciergia/ui/command";
export function Example() {
const [open, setOpen] = useState(false);
useEffect(() => { const key = (event: KeyboardEvent) => { if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "k") { event.preventDefault(); setOpen(value => !value); } }; window.addEventListener("keydown", key); return () => window.removeEventListener("keydown", key); }, []);
return <><Button onClick={() => setOpen(true)}>ბრძანებების ძიება ⌘K</Button><CommandDialog open={open} onOpenChange={setOpen} title="სასტუმროს ძიება" description="აირჩიეთ განყოფილება"><CommandInput /><CommandList><CommandEmpty /><CommandGroup heading="სასტუმრო"><CommandItem value="rooms" keywords={["ნომრები", "ოთახი"]} onSelect={() => setOpen(false)}>ნომრები</CommandItem><CommandItem value="guests" keywords={["სტუმრები"]} onSelect={() => setOpen(false)}>სტუმრები</CommandItem></CommandGroup></CommandList></CommandDialog></>;
}ინსტალაცია
pnpm add @llc-conciergia/uiimport { CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from "@llc-conciergia/ui/command";npx @llc-conciergia/cli add commandnpx shadcn@latest add https://ui.conciergia.co/r/command.jsonშენიშვნები
⌘K/Ctrl+K listener მშობელში დაამატეთ, როგორც მაგალითშია; კომპონენტი გლობალურ ძიებას თვითნებურად არ ითვისებს. Escape ხურავს დიალოგს. ძიების შეცვლა არ იწვევს onSelect-ს; onSelect-ში გამოიყენეთ router.push და დახურეთ დიალოგი.Props
| Prop | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
| Command: value / defaultValue / onValueChange | string / string / (value: string) => void | — | საძიებო ტექსტი; არ არის არჩეული ბრძანების id. |
| Command: filter | (value, search, keywords) => boolean | — | საკუთარი ფილტრი. ნაგულისხმევი ძიება ამოწმებს value-ს, ტექსტსა და keywords-ს. |
| CommandInput: placeholder / disabled | Autocomplete.Input props | — | ლოკალიზებული placeholder და aria-label; შეგიძლიათ გადაფაროთ. |
| CommandList | Autocomplete.List props | — | inline სია; ისრები და Enter არჩევისთვის. |
| CommandEmpty: children | ReactNode | — | ლოკალიზებული ცარიელი შედეგი; შესაძლებელია გადაფარვა. |
| CommandGroup: heading | ReactNode | — | ჯგუფის სათაური; ცარიელი ჯგუფი იმალება. |
| CommandItem: value / keywords / onSelect / disabled | string / string[] / (value) => void / boolean | — | value უნიკალურია მთელ Command-ში; onSelect მუშაობს კლავიატურითაც. |
| CommandSeparator / CommandShortcut | separator / span props | — | გამყოფი და ვიზუალური shortcut. Shortcut თვითონ არაფერს არეგისტრირებს. |
| CommandDialog: title / description | string (required) | — | screen reader-ისთვის აუცილებელი ტექსტები. |
| CommandDialog: open / defaultOpen / onOpenChange | Dialog props | — | მშობელი მართავს გახსნას და საჭიროებისას onSelect-ში დახურვას. |
| CommandDialog: commandProps | CommandProps | — | შიდა Command-ის საძიებო ტექსტი, ფილტრი და სტილი. |
| ყველა ვიზუალური ნაწილი: className / ref | native or Base UI props | — | props გადაეცემა შესაბამის ელემენტს. |