diff --git a/src/components/Home/PipelineSection/PipelineRow.tsx b/src/components/Home/PipelineSection/PipelineRow.tsx index ae71d66e2..eeb024727 100644 --- a/src/components/Home/PipelineSection/PipelineRow.tsx +++ b/src/components/Home/PipelineSection/PipelineRow.tsx @@ -1,4 +1,4 @@ -import { Link, useNavigate } from "@tanstack/react-router"; +import { useNavigate } from "@tanstack/react-router"; import { type MouseEvent, useCallback, useMemo } from "react"; import { ConfirmationDialog } from "@/components/shared/Dialogs"; @@ -86,15 +86,6 @@ const PipelineRow = ({ return formatDate(modificationTime.toISOString()); }, [modificationTime]); - const linkProps = { - to: `${EDITOR_PATH}/$name`, - params: { name: name ?? "" }, - className: "hover:underline", - onClick: (e: MouseEvent) => { - e.stopPropagation(); - }, - }; - return ( <> - {name} + {name} diff --git a/src/components/Home/RunSection/RunRow.tsx b/src/components/Home/RunSection/RunRow.tsx index da817b76a..77435f5f3 100644 --- a/src/components/Home/RunSection/RunRow.tsx +++ b/src/components/Home/RunSection/RunRow.tsx @@ -1,4 +1,4 @@ -import { Link, useNavigate } from "@tanstack/react-router"; +import { useNavigate } from "@tanstack/react-router"; import { type MouseEvent, useCallback } from "react"; import type { PipelineRunResponse } from "@/api/types.gen"; @@ -15,6 +15,7 @@ import { TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; +import { Paragraph } from "@/components/ui/typography"; import useToastNotification from "@/hooks/useToastNotification"; import { APP_ROUTES } from "@/routes/router"; import { @@ -50,14 +51,6 @@ const RunRow = ({ run }: { run: PipelineRunResponse }) => { const clickThroughUrl = `${APP_ROUTES.RUNS}/${runId}`; - const LinkProps = { - to: clickThroughUrl, - className: "underline hover:text-blue-500 text-black", - onClick: (e: MouseEvent) => { - e.stopPropagation(); // Prevent triggering the row click handler - }, - }; - const createdByButton = ( {jobWebUrl && ( - Job - + )} {jsonBlobUrl && ( diff --git a/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx b/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx index f04d98aba..294958171 100644 --- a/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx +++ b/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx @@ -1,3 +1,5 @@ +import { Link } from "@/components/ui/link"; + import { InfoBox } from "../../InfoBox"; interface ManualSubmissionInstructionsProps { @@ -15,31 +17,17 @@ export const ManualSubmissionInstructions = ({ return ( Download{" "} - + pipeline_job.json - + , then go to{" "} - + Vertex Pipelines - {" "} + {" "} and{" "} - + create a new run - + . ); diff --git a/src/components/shared/TaskDetails/Details.tsx b/src/components/shared/TaskDetails/Details.tsx index a40383ed4..9d6a7d57d 100644 --- a/src/components/shared/TaskDetails/Details.tsx +++ b/src/components/shared/TaskDetails/Details.tsx @@ -2,7 +2,6 @@ import { ChevronsUpDown, ClipboardIcon, DownloadIcon, - ExternalLink, TrashIcon, } from "lucide-react"; import { type ReactNode, useCallback, useState } from "react"; @@ -14,6 +13,7 @@ import { CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; +import { Link } from "@/components/ui/link"; import { Tooltip, TooltipContent, @@ -337,54 +337,54 @@ function LinkBlock({ {url && ( <>
- View raw component.yaml - - +
- View directory on GitHub - - +
)} {canonicalUrl && ( <>
- View raw canonical URL - - +
- View canonical URL on GitHub - - +
)} diff --git a/src/components/ui/link.tsx b/src/components/ui/link.tsx index 8cd4f7d82..97bd36c3b 100644 --- a/src/components/ui/link.tsx +++ b/src/components/ui/link.tsx @@ -1,34 +1,36 @@ import { cva } from "class-variance-authority"; -import { DownloadIcon, ExternalLink } from "lucide-react"; import { type AnchorHTMLAttributes } from "react"; import { cn } from "@/lib/utils"; +import { Icon } from "./icon"; +import { InlineStack } from "./layout"; + const linkVariants = cva("items-center inline-flex cursor-pointer", { variants: { variant: { - default: "text-primary", - link: "text-primary hover:underline", + primary: "text-primary hover:underline", disabled: "text-muted-foreground cursor-not-allowed pointer-events-none", + classic: "text-sky-500 hover:text-sky-600 hover:underline", + block: "text-inherit", }, size: { - default: "", + xs: "text-xs", sm: "text-sm", + md: "text-md", lg: "text-lg", }, }, defaultVariants: { - variant: "default", - size: "default", + variant: "classic", + size: "md", }, }); interface LinkProps extends AnchorHTMLAttributes { external?: boolean; - download?: boolean; - iconClassName?: string; - variant?: "default" | "link" | "disabled"; - size?: "default" | "sm" | "lg"; + variant?: "primary" | "disabled" | "classic" | "block"; + size?: "xs" | "sm" | "md" | "lg"; } function Link({ @@ -36,7 +38,6 @@ function Link({ children, className, download, - iconClassName, variant, size, ...props @@ -48,12 +49,14 @@ function Link({ - {children} - {external && } - {download && } + + {children} + {external && } + ); }