Skip to main content
Glama
KennanYang

Financial Report Generator MCP Server

by KennanYang
time-range-selector.tsx2.14 kB
'use client'; import { Check, ChevronsUpDown } from 'lucide-react'; import { cn } from '../../lib/utils'; import { Button } from '../ui/button'; import { Command, CommandEmpty, CommandGroup, CommandItem, CommandList, } from '../ui/command'; import { Popover, PopoverContent, PopoverTrigger, } from '../ui/popover'; import { useFinancialStore } from '../../store/financial-store'; import { TIME_RANGES } from '../../lib/constants'; import { useState } from 'react'; export function TimeRangeSelector() { const { timeframe, setTimeframe } = useFinancialStore(); const [open, setOpen] = useState(false); const currentTimeframe = TIME_RANGES.find(t => t.value === timeframe) || TIME_RANGES[0]; const handleTimeframeSelect = (value: string) => { setTimeframe(value as '1M' | '3M' | '6M' | '1Y' | '2Y' | '5Y' | 'ALL'); setOpen(false); }; return ( <Popover open={open} onOpenChange={setOpen}> <PopoverTrigger asChild> <Button variant="outline" role="combobox" aria-expanded={open} className="w-32 justify-between" > {currentTimeframe.label} <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" /> </Button> </PopoverTrigger> <PopoverContent className="w-32 p-0"> <Command> <CommandList> <CommandEmpty>未找到时间范围。</CommandEmpty> <CommandGroup> {TIME_RANGES.map((timeframe) => ( <CommandItem key={timeframe.value} value={timeframe.value} onSelect={() => handleTimeframeSelect(timeframe.value)} > <Check className={cn( "mr-2 h-4 w-4", currentTimeframe.value === timeframe.value ? "opacity-100" : "opacity-0" )} /> {timeframe.label} </CommandItem> ))} </CommandGroup> </CommandList> </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/KennanYang/financial-report'

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