import * as React from "react" | |
import { | |
Select, | |
SelectContent, | |
SelectItem, | |
SelectTrigger, | |
SelectValue, | |
} from "@/components/ui/select" | |
import { useAppDispatch, useAppSelector } from "@/common/hooks" | |
import { | |
setSelectedGraphId, | |
} from "@/store/reducers/global" | |
import { useIsCompactLayout } from "@/common" | |
import { cn } from "@/lib/utils" | |
export function RemoteGraphSelect() { | |
const dispatch = useAppDispatch() | |
const graphName = useAppSelector((state) => state.global.selectedGraphId) | |
const graphs = useAppSelector((state) => state.global.graphList) | |
const agentConnected = useAppSelector((state) => state.global.agentConnected) | |
const onGraphNameChange = (val: string) => { | |
dispatch(setSelectedGraphId(val)) | |
} | |
const graphOptions = graphs.map((item) => ({ | |
label: item, | |
value: item, | |
})) | |
return ( | |
<> | |
<Select | |
value={graphName} | |
onValueChange={onGraphNameChange} | |
disabled={agentConnected} | |
> | |
<SelectTrigger | |
className={cn( | |
"w-auto", // or "w-auto max-w-full" if you want to keep the existing defaults | |
)} | |
> | |
<SelectValue placeholder={"Select Graph"} /> | |
</SelectTrigger> | |
<SelectContent> | |
{graphOptions.map((item) => ( | |
<SelectItem key={item.value} value={item.value}> | |
{item.label} | |
</SelectItem> | |
))} | |
</SelectContent> | |
</Select> | |
</> | |
) | |
} | |