https://dev.kronoz.win/r/marzneshin.git
| 1 |
3d1a4b1 |
Mrdn |
2y ago |
import { useState, useEffect } from "react"; |
| 2 |
3d1a4b1 |
Mrdn |
2y ago |
import { |
| 3 |
9ddfbc8 |
Mardin |
2y ago |
CommandDialog, |
| 4 |
9ddfbc8 |
Mardin |
2y ago |
CommandEmpty, |
| 5 |
9ddfbc8 |
Mardin |
2y ago |
CommandInput, |
| 6 |
9ddfbc8 |
Mardin |
2y ago |
CommandList, |
| 7 |
68f084a |
Mardin |
2y ago |
ScrollArea, |
| 8 |
3d1a4b1 |
Mrdn |
2y ago |
} from "@marzneshin/components"; |
| 9 |
3d1a4b1 |
Mrdn |
2y ago |
import { SearchBox } from "./search-box"; |
| 10 |
9ddfbc8 |
Mardin |
2y ago |
import { useAuth } from "@marzneshin/features/auth"; |
| 11 |
68f084a |
Mardin |
2y ago |
import { CommandItems } from "./command-items"; |
| 12 |
68f084a |
Mardin |
2y ago |
import { commandItems } from "./commands"; |
| 13 |
3d1a4b1 |
Mrdn |
2y ago |
|
| 14 |
3d1a4b1 |
Mrdn |
2y ago |
export function CommandBox() { |
| 15 |
9ddfbc8 |
Mardin |
2y ago |
const [open, setOpen] = useState(false); |
| 16 |
68f084a |
Mardin |
2y ago |
const { isSudo } = useAuth(); |
| 17 |
3d1a4b1 |
Mrdn |
2y ago |
|
| 18 |
9ddfbc8 |
Mardin |
2y ago |
useEffect(() => { |
| 19 |
9ddfbc8 |
Mardin |
2y ago |
const down = (e: KeyboardEvent) => { |
| 20 |
9ddfbc8 |
Mardin |
2y ago |
if (e.key === "k" && (e.metaKey || e.ctrlKey)) { |
| 21 |
9ddfbc8 |
Mardin |
2y ago |
e.preventDefault(); |
| 22 |
9ddfbc8 |
Mardin |
2y ago |
setOpen((open) => !open); |
| 23 |
9ddfbc8 |
Mardin |
2y ago |
} |
| 24 |
9ddfbc8 |
Mardin |
2y ago |
}; |
| 25 |
9ddfbc8 |
Mardin |
2y ago |
document.addEventListener("keydown", down); |
| 26 |
9ddfbc8 |
Mardin |
2y ago |
return () => document.removeEventListener("keydown", down); |
| 27 |
9ddfbc8 |
Mardin |
2y ago |
}, []); |
| 28 |
3d1a4b1 |
Mrdn |
2y ago |
|
| 29 |
9ddfbc8 |
Mardin |
2y ago |
return ( |
| 30 |
9ddfbc8 |
Mardin |
2y ago |
<> |
| 31 |
9ddfbc8 |
Mardin |
2y ago |
<SearchBox onClick={() => setOpen(true)} /> |
| 32 |
9ddfbc8 |
Mardin |
2y ago |
<CommandDialog open={open} onOpenChange={setOpen}> |
| 33 |
9ddfbc8 |
Mardin |
2y ago |
<CommandInput |
| 34 |
9ddfbc8 |
Mardin |
2y ago |
placeholder="Type a command or search..." |
| 35 |
9ddfbc8 |
Mardin |
2y ago |
className="focus:ring-0 ring-0 m-1 border-none" |
| 36 |
9ddfbc8 |
Mardin |
2y ago |
/> |
| 37 |
68f084a |
Mardin |
2y ago |
<ScrollArea className="max-h-100"> |
| 38 |
68f084a |
Mardin |
2y ago |
<CommandList> |
| 39 |
68f084a |
Mardin |
2y ago |
<CommandEmpty>No results found.</CommandEmpty> |
| 40 |
68f084a |
Mardin |
2y ago |
<CommandItems items={commandItems} isSudo={isSudo} setOpen={setOpen} /> |
| 41 |
68f084a |
Mardin |
2y ago |
</CommandList> |
| 42 |
68f084a |
Mardin |
2y ago |
</ScrollArea> |
| 43 |
9ddfbc8 |
Mardin |
2y ago |
</CommandDialog> |
| 44 |
9ddfbc8 |
Mardin |
2y ago |
</> |
| 45 |
9ddfbc8 |
Mardin |
2y ago |
); |
| 46 |
3d1a4b1 |
Mrdn |
2y ago |
} |
| 47 |
68f084a |
Mardin |
2y ago |
|
| 48 |
68f084a |
Mardin |
2y ago |
|