Skip to main content
Glama
monostate

100ms Raydium Sniper MCP

by monostate
combobox.tsx2.4 kB
import React from "react"; import { Check, ChevronsUpDown } from "lucide-react"; import { cn } from "@/lib/utils"; import { Button } from "@/components/ui/button"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, } from "@/components/ui/command"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; interface ComboboxProps { value: string; onChange: (value: string) => void; onInputChange: (value: string) => void; options: string[]; placeholder?: string; emptyMessage?: string; id?: string; } export function Combobox({ value, onChange, onInputChange, options = [], placeholder = "Select...", emptyMessage = "No results found.", id, }: ComboboxProps) { const [open, setOpen] = React.useState(false); const handleSelect = React.useCallback( (option: string) => { onChange(option); setOpen(false); }, [onChange], ); const handleInputChange = React.useCallback( (value: string) => { onInputChange(value); }, [onInputChange], ); return ( <Popover open={open} onOpenChange={setOpen}> <PopoverTrigger asChild> <Button variant="outline" role="combobox" aria-expanded={open} aria-controls={id} className="w-full justify-between" > {value || placeholder} <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" /> </Button> </PopoverTrigger> <PopoverContent className="w-full p-0" align="start"> <Command shouldFilter={false} id={id}> <CommandInput placeholder={placeholder} value={value} onValueChange={handleInputChange} /> <CommandEmpty>{emptyMessage}</CommandEmpty> <CommandGroup> {options.map((option) => ( <CommandItem key={option} value={option} onSelect={() => handleSelect(option)} > <Check className={cn( "mr-2 h-4 w-4", value === option ? "opacity-100" : "opacity-0", )} /> {option} </CommandItem> ))} </CommandGroup> </Command> </PopoverContent> </Popover> ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/monostate/100ms-SPL-Token-Sniper-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server