| author | |
| committer | |
| log | 5a39013313a7e6e9d6fbeeb915b8c176ea3dd126 |
| tree | 00906dc59e22a54755f131f64079b6cff5bac62c |
| parent | 8583eac643b8c248bcd835e8de81c7c0d7182ad3 |
| signature | Signed by PGP key B5690EEEBB952194 |
5 files changed, 41 insertions(+), 41 deletions(-)
apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx+3-8| ... | ... | @@ -35,7 +35,6 @@ import { |
| 35 | 35 | LinkIcon, |
| 36 | 36 | MoreHorizontalIcon, |
| 37 | 37 | PanelRightIcon, |
| 38 | PencilIcon, | |
| 39 | 38 | PlayIcon, |
| 40 | 39 | RotateCcwIcon, |
| 41 | 40 | TriangleAlertIcon, |
| ... | ... | @@ -100,6 +99,7 @@ import { |
| 100 | 99 | import { EnvironmentMachineIcon } from "../EnvironmentMachineIcon"; |
| 101 | 100 | import { Badge } from "../ui/badge"; |
| 102 | 101 | import { Button } from "../ui/button"; |
| 102 | import { PullRequestEditButton } from "./PullRequestEditButton"; | |
| 103 | 103 | import { Input } from "../ui/input"; |
| 104 | 104 | import { Toggle, ToggleGroup } from "../ui/toggle-group"; |
| 105 | 105 | import { |
| ... | ... | @@ -2308,15 +2308,10 @@ export function PullRequestDetailPanel({ |
| 2308 | 2308 | <TooltipPopup side="top">{detail.title}</TooltipPopup> |
| 2309 | 2309 | </Tooltip> |
| 2310 | 2310 | {canEditPullRequestChangeRequest(detail) ? ( |
| 2311 | <Button | |
| 2312 | size="icon-xs" | |
| 2313 | variant="ghost" | |
| 2314 | className="shrink-0 text-muted-foreground opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100" | |
| 2311 | <PullRequestEditButton | |
| 2315 | 2312 | aria-label="Edit title" |
| 2316 | 2313 | onClick={() => setTitleScope({ pullRequestKey, text: detail.title })} |
| 2317 | > | |
| 2318 | <PencilIcon className="size-3" /> | |
| 2319 | </Button> | |
| 2314 | /> | |
| 2320 | 2315 | ) : null} |
| 2321 | 2316 | </div> |
| 2322 | 2317 | ) : ( |
apps/web/src/components/pullRequest/PullRequestEditButton.tsx created+27| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | import { PencilIcon } from "lucide-react"; | |
| 2 | import type { ComponentProps } from "react"; | |
| 3 | ||
| 4 | import { cn } from "../../lib/utils"; | |
| 5 | import { Button } from "../ui/button"; | |
| 6 | ||
| 7 | /** Edit affordances stay visible on touch devices and reveal on hover or focus. */ | |
| 8 | export function PullRequestEditButton({ | |
| 9 | className, | |
| 10 | ...props | |
| 11 | }: Omit<ComponentProps<typeof Button>, "children" | "render" | "size" | "variant"> & { | |
| 12 | "aria-label": string; | |
| 13 | }) { | |
| 14 | return ( | |
| 15 | <Button | |
| 16 | {...props} | |
| 17 | size="icon-xs" | |
| 18 | variant="ghost" | |
| 19 | className={cn( | |
| 20 | "shrink-0 text-muted-foreground opacity-0 transition-opacity pointer-coarse:opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100 motion-reduce:transition-none", | |
| 21 | className, | |
| 22 | )} | |
| 23 | > | |
| 24 | <PencilIcon aria-hidden className="size-3" /> | |
| 25 | </Button> | |
| 26 | ); | |
| 27 | } |
apps/web/src/components/pullRequest/PullRequestReviewAnnotation.tsx+3-8| ... | ... | @@ -14,7 +14,6 @@ import { |
| 14 | 14 | CircleIcon, |
| 15 | 15 | HammerIcon, |
| 16 | 16 | MessageSquareIcon, |
| 17 | PencilIcon, | |
| 18 | 17 | Trash2Icon, |
| 19 | 18 | } from "lucide-react"; |
| 20 | 19 | import { useRef, useState } from "react"; |
| ... | ... | @@ -23,6 +22,7 @@ import { formatRelativeTimeLabel } from "~/timestampFormat"; |
| 23 | 22 | import { cn } from "~/lib/utils"; |
| 24 | 23 | |
| 25 | 24 | import { Button } from "../ui/button"; |
| 25 | import { PullRequestEditButton } from "./PullRequestEditButton"; | |
| 26 | 26 | import { Textarea } from "../ui/textarea"; |
| 27 | 27 | import { isCommentSubmitShortcut } from "../diffs/commentSubmitShortcut"; |
| 28 | 28 | import { |
| ... | ... | @@ -297,15 +297,10 @@ export function ReviewThreadCard({ |
| 297 | 297 | environmentId={environmentId} |
| 298 | 298 | /> |
| 299 | 299 | {canEditComment(comment) ? ( |
| 300 | <Button | |
| 301 | size="icon-xs" | |
| 302 | variant="ghost" | |
| 303 | className="shrink-0 text-muted-foreground opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100" | |
| 300 | <PullRequestEditButton | |
| 304 | 301 | aria-label="Edit comment" |
| 305 | 302 | onClick={() => setEditingId(comment.id)} |
| 306 | > | |
| 307 | <PencilIcon className="size-3" /> | |
| 308 | </Button> | |
| 303 | /> | |
| 309 | 304 | ) : null} |
| 310 | 305 | </div> |
| 311 | 306 | )} |
apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx+4-17| ... | ... | @@ -11,7 +11,6 @@ import { |
| 11 | 11 | ChevronDownIcon, |
| 12 | 12 | ChevronRightIcon, |
| 13 | 13 | HammerIcon, |
| 14 | PencilIcon, | |
| 15 | 14 | TagIcon, |
| 16 | 15 | UsersIcon, |
| 17 | 16 | } from "lucide-react"; |
| ... | ... | @@ -24,6 +23,7 @@ import { useOpenLink } from "~/browser/useOpenLink"; |
| 24 | 23 | import { formatRelativeTimeLabel } from "~/timestampFormat"; |
| 25 | 24 | |
| 26 | 25 | import { Button } from "../ui/button"; |
| 26 | import { PullRequestEditButton } from "./PullRequestEditButton"; | |
| 27 | 27 | import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "../ui/collapsible"; |
| 28 | 28 | import { toastManager } from "../ui/toast"; |
| 29 | 29 | import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; |
| ... | ... | @@ -187,15 +187,7 @@ function CommentBody({ |
| 187 | 187 | threadRef={editing.threadRef} |
| 188 | 188 | /> |
| 189 | 189 | {editing.canEdit(comment) ? ( |
| 190 | <Button | |
| 191 | size="icon-xs" | |
| 192 | variant="ghost" | |
| 193 | className="shrink-0 text-muted-foreground opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100" | |
| 194 | aria-label="Edit comment" | |
| 195 | onClick={() => editing.onEdit(comment)} | |
| 196 | > | |
| 197 | <PencilIcon className="size-3" /> | |
| 198 | </Button> | |
| 190 | <PullRequestEditButton aria-label="Edit comment" onClick={() => editing.onEdit(comment)} /> | |
| 199 | 191 | ) : null} |
| 200 | 192 | </div> |
| 201 | 193 | ); |
| ... | ... | @@ -869,15 +861,10 @@ export function PullRequestSummaryTab({ |
| 869 | 861 | threadRef={threadRef} |
| 870 | 862 | /> |
| 871 | 863 | {canEditPullRequestChangeRequest(detail) ? ( |
| 872 | <Button | |
| 873 | size="icon-xs" | |
| 874 | variant="ghost" | |
| 875 | className="shrink-0 text-muted-foreground opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100" | |
| 864 | <PullRequestEditButton | |
| 876 | 865 | aria-label="Edit description" |
| 877 | 866 | onClick={() => setBodyScope(detail.url)} |
| 878 | > | |
| 879 | <PencilIcon className="size-3" /> | |
| 880 | </Button> | |
| 867 | /> | |
| 881 | 868 | ) : null} |
| 882 | 869 | </div> |
| 883 | 870 | )} |
apps/web/src/components/pullRequest/PullRequestTimelineTab.tsx+4-8| ... | ... | @@ -12,7 +12,6 @@ import { |
| 12 | 12 | FileCode2Icon, |
| 13 | 13 | GitCommitHorizontalIcon, |
| 14 | 14 | MessageSquareIcon, |
| 15 | PencilIcon, | |
| 16 | 15 | } from "lucide-react"; |
| 17 | 16 | import { useState, type ReactNode } from "react"; |
| 18 | 17 | |
| ... | ... | @@ -23,6 +22,7 @@ import { useAtomCommand } from "~/state/use-atom-command"; |
| 23 | 22 | import { formatRelativeTimeLabel } from "~/timestampFormat"; |
| 24 | 23 | |
| 25 | 24 | import { Button } from "../ui/button"; |
| 25 | import { PullRequestEditButton } from "./PullRequestEditButton"; | |
| 26 | 26 | import { Collapsible, CollapsiblePanel, CollapsibleTrigger } from "../ui/collapsible"; |
| 27 | 27 | import { toastManager } from "../ui/toast"; |
| 28 | 28 | import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; |
| ... | ... | @@ -235,15 +235,11 @@ function ConversationCard({ |
| 235 | 235 | </PullRequestMetaLine> |
| 236 | 236 | </div> |
| 237 | 237 | {editable !== null && !editing ? ( |
| 238 | <Button | |
| 239 | size="icon-xs" | |
| 240 | variant="ghost" | |
| 241 | className="-mt-1 shrink-0 text-muted-foreground opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 focus-visible:opacity-100" | |
| 238 | <PullRequestEditButton | |
| 239 | className="-mt-1" | |
| 242 | 240 | aria-label="Edit comment" |
| 243 | 241 | onClick={() => setEditing(true)} |
| 244 | > | |
| 245 | <PencilIcon className="size-3" /> | |
| 246 | </Button> | |
| 242 | /> | |
| 247 | 243 | ) : null} |
| 248 | 244 | {reactions.canReact || event.reactions.length > 0 ? ( |
| 249 | 245 | <PullRequestReactionBar |