From e5cd1e16784c4d6890fbbd8aa8ee48008c66c01e Mon Sep 17 00:00:00 2001 From: Trevor Walker Date: Thu, 24 Sep 2026 04:57:31 -0600 Subject: [PATCH] fix(web): show pull request edit actions on touch --- .../pullRequest/PullRequestDetailPanel.tsx | 11 +++----- .../pullRequest/PullRequestEditButton.tsx | 27 +++++++++++++++++++ .../PullRequestReviewAnnotation.tsx | 11 +++----- .../pullRequest/PullRequestSummaryTab.tsx | 21 +++------------ .../pullRequest/PullRequestTimelineTab.tsx | 12 +++------ 5 files changed, 41 insertions(+), 41 deletions(-) create mode 100644 apps/web/src/components/pullRequest/PullRequestEditButton.tsx diff --git a/apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx b/apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx index 0080f4348d..d85f973353 100644 --- a/apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx +++ b/apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx @@ -36,7 +36,6 @@ import { LinkIcon, MoreHorizontalIcon, PanelRightIcon, - PencilIcon, PlayIcon, RotateCcwIcon, TriangleAlertIcon, @@ -112,6 +111,7 @@ import { import { EnvironmentMachineIcon } from "../EnvironmentMachineIcon"; import { Badge } from "../ui/badge"; import { Button } from "../ui/button"; +import { PullRequestEditButton } from "./PullRequestEditButton"; import { Input } from "../ui/input"; import { Toggle, ToggleGroup } from "../ui/toggle-group"; import { @@ -2417,15 +2417,10 @@ export function PullRequestDetailPanel({ {detail.title} {canEditPullRequestChangeRequest(detail) ? ( - + /> ) : null} ) : ( diff --git a/apps/web/src/components/pullRequest/PullRequestEditButton.tsx b/apps/web/src/components/pullRequest/PullRequestEditButton.tsx new file mode 100644 index 0000000000..b04ec17b87 --- /dev/null +++ b/apps/web/src/components/pullRequest/PullRequestEditButton.tsx @@ -0,0 +1,27 @@ +import { PencilIcon } from "lucide-react"; +import type { ComponentProps } from "react"; + +import { cn } from "../../lib/utils"; +import { Button } from "../ui/button"; + +/** Edit affordances stay visible on touch devices and reveal on hover or focus. */ +export function PullRequestEditButton({ + className, + ...props +}: Omit, "children" | "render" | "size" | "variant"> & { + "aria-label": string; +}) { + return ( + + ); +} diff --git a/apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx b/apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx index f1e8955c3d..d49cb52cc3 100644 --- a/apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx +++ b/apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx @@ -14,7 +14,6 @@ import { CircleIcon, HammerIcon, MessageSquareIcon, - PencilIcon, Trash2Icon, } from "lucide-react"; import { useRef, useState } from "react"; @@ -23,6 +22,7 @@ import { formatRelativeTimeLabel } from "~/timestampFormat"; import { cn } from "~/lib/utils"; import { Button } from "../ui/button"; +import { PullRequestEditButton } from "./PullRequestEditButton"; import { Textarea } from "../ui/textarea"; import { isCommentSubmitShortcut } from "../diffs/commentSubmitShortcut"; import { @@ -297,15 +297,10 @@ export function ReviewThreadCard({ environmentId={environmentId} /> {canEditComment(comment) ? ( - + /> ) : null} )} diff --git a/apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx b/apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx index be1dffb295..0937c1ee3e 100644 --- a/apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx +++ b/apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx @@ -12,7 +12,6 @@ import { ChevronDownIcon, ChevronRightIcon, HammerIcon, - PencilIcon, TagIcon, UsersIcon, } from "lucide-react"; @@ -25,6 +24,7 @@ import { useOpenLink } from "~/browser/useOpenLink"; import { formatRelativeTimeLabel } from "~/timestampFormat"; import { Button } from "../ui/button"; +import { PullRequestEditButton } from "./PullRequestEditButton"; import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "../ui/collapsible"; import { toastManager } from "../ui/toast"; import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; @@ -194,15 +194,7 @@ function CommentBody({ threadRef={editing.threadRef} /> {editing.canEdit(comment) ? ( - + editing.onEdit(comment)} /> ) : null} ); @@ -871,15 +863,10 @@ export function PullRequestSummaryTab({ threadRef={threadRef} /> {canEditPullRequestChangeRequest(detail) ? ( - + /> ) : null} )} diff --git a/apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx b/apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx index b114250549..5d0ba801ed 100644 --- a/apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx +++ b/apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx @@ -12,7 +12,6 @@ import { FileCode2Icon, GitCommitHorizontalIcon, MessageSquareIcon, - PencilIcon, } from "lucide-react"; import { useState, type ReactNode } from "react"; @@ -23,6 +22,7 @@ import { useAtomCommand } from "~/state/use-atom-command"; import { formatRelativeTimeLabel } from "~/timestampFormat"; import { Button } from "../ui/button"; +import { PullRequestEditButton } from "./PullRequestEditButton"; import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "../ui/collapsible"; import { toastManager } from "../ui/toast"; import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; @@ -235,15 +235,11 @@ function ConversationCard({ {editable !== null && !editing ? ( - + /> ) : null} {reactions.canReact || event.reactions.length > 0 ? (