Skip to main content
Glama
Arize-ai

@arizeai/phoenix-mcp

Official
by Arize-ai
RunDatasetExperimentButton.tsx2.95 kB
import { useState } from "react"; import { useNavigate } from "react-router"; import { Button, ButtonProps, DialogTrigger, Flex, Icon, Icons, Menu, MenuItem, MenuTrigger, Popover, Text, } from "@phoenix/components"; import { ExperimentCodeModal } from "@phoenix/components/experiment"; import { useDatasetContext } from "@phoenix/contexts/DatasetContext"; type RunDatasetExperimentButtonProps = Pick<ButtonProps, "variant" | "size">; enum ExperimentAction { RUN_VIA_SDK = "run-via-sdk", RUN_IN_PLAYGROUND = "run-in-playground", } /** * A button with a popover menu for running experiments on a dataset. * Provides two options: * - Run via SDK: Opens a dialog with code examples * - Run in Playground: Navigates to the playground with the dataset */ export function RunDatasetExperimentButton( { variant = "default", size = "S" }: RunDatasetExperimentButtonProps = { variant: "default", size: "S", } ) { const navigate = useNavigate(); const datasetId = useDatasetContext((state) => state.datasetId); const datasetName = useDatasetContext((state) => state.datasetName); const version = useDatasetContext((state) => state.latestVersion); const [isCodeDialogOpen, setIsCodeDialogOpen] = useState(false); const hasExamples = version != null; return ( <> <MenuTrigger> <Button size={size} variant={variant} leadingVisual={<Icon svg={<Icons.PlusOutline />} />} > Experiment </Button> <Popover placement="bottom end"> <Menu disabledKeys={ hasExamples ? [] : [ExperimentAction.RUN_IN_PLAYGROUND] } onAction={(action) => { switch (action) { case ExperimentAction.RUN_VIA_SDK: setIsCodeDialogOpen(true); break; case ExperimentAction.RUN_IN_PLAYGROUND: navigate(`/playground?datasetId=${datasetId}`); break; } }} > <MenuItem id={ExperimentAction.RUN_VIA_SDK}> <Flex direction="row" gap="size-100" alignItems="center"> <Icon svg={<Icons.Code />} /> <Text>Run via SDK</Text> </Flex> </MenuItem> <MenuItem id={ExperimentAction.RUN_IN_PLAYGROUND}> <Flex direction="row" gap="size-100" alignItems="center"> <Icon svg={<Icons.PlayCircleOutline />} /> <Text>Run in Playground</Text> </Flex> </MenuItem> </Menu> </Popover> </MenuTrigger> <DialogTrigger isOpen={isCodeDialogOpen} onOpenChange={setIsCodeDialogOpen} > <ExperimentCodeModal datasetId={datasetId} datasetName={datasetName} version={version} /> </DialogTrigger> </> ); }

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/Arize-ai/phoenix'

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