import { GitPullRequestIcon, GitCommitIcon, GitBranchIcon } from "lucide-react"; import { type GitMetaLinks } from "~/presenters/v3/BranchesPresenter.server"; import { LinkButton } from "./primitives/Buttons"; import { SimpleTooltip } from "./primitives/Tooltip"; export function GitMetadata({ git }: { git?: GitMetaLinks | null }) { if (!git) return null; return ( <> {git.pullRequestUrl && git.pullRequestNumber && } {git.branchUrl && } {git.shortSha && } ); } export function GitMetadataBranch({ git, }: { git: Pick; }) { return ( } leadingIconClassName="group-hover/table-row:text-text-bright" iconSpacing="gap-x-1" to={git.branchUrl} className="pl-1 duration-0 [&_span]:duration-0 group-hover/table-row:[&_span]:text-text-bright" > {git.branchName} } content="Jump to GitHub branch" /> ); } export function GitMetadataCommit({ git, }: { git: Pick; }) { return ( } leadingIconClassName="group-hover/table-row:text-text-bright" iconSpacing="gap-x-1" className="pl-1 duration-0 [&_span]:duration-0 group-hover/table-row:[&_span]:text-text-bright" > {`${git.shortSha} / ${git.commitMessage}`} } content="Jump to GitHub commit" /> ); } export function GitMetadataPullRequest({ git, }: { git: Pick; }) { if (!git.pullRequestUrl || !git.pullRequestNumber) return null; return ( } leadingIconClassName="group-hover/table-row:text-text-bright" iconSpacing="gap-x-1" className="pl-1 duration-0 [&_span]:duration-0 group-hover/table-row:[&_span]:text-text-bright" > #{git.pullRequestNumber} {git.pullRequestTitle} } content="Jump to GitHub pull request" /> ); }