import { memo, useState } from "react"; import { toast } from "sonner"; import { cn } from "@/lib/utils"; import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip"; import { artifactDefinitions, type UIArtifact } from "./artifact"; import type { ArtifactActionContext } from "./create-artifact"; type ArtifactActionsProps = { artifact: UIArtifact; handleVersionChange: (type: "next" | "prev" | "toggle" | "latest") => void; currentVersionIndex: number; isCurrentVersion: boolean; mode: "edit" | "diff"; metadata: ArtifactActionContext["metadata"]; setMetadata: ArtifactActionContext["setMetadata"]; }; function PureArtifactActions({ artifact, handleVersionChange, currentVersionIndex, isCurrentVersion, mode, metadata, setMetadata, }: ArtifactActionsProps) { const [isLoading, setIsLoading] = useState(false); const artifactDefinition = artifactDefinitions.find( (definition) => definition.kind === artifact.kind ); if (!artifactDefinition) { throw new Error("Artifact definition not found!"); } const actionContext: ArtifactActionContext = { content: artifact.content, handleVersionChange, currentVersionIndex, isCurrentVersion, mode, metadata, setMetadata, }; return (