diff --git a/ui/src/components/IssueProperties.tsx b/ui/src/components/IssueProperties.tsx index 587d2eef..d4ec2266 100644 --- a/ui/src/components/IssueProperties.tsx +++ b/ui/src/components/IssueProperties.tsx @@ -129,8 +129,20 @@ function PropertyPicker({ ); } -/** Displays a path/value with a copy-to-clipboard icon and "Copied!" feedback. */ -function CopyablePath({ value, label, className }: { value: string; label?: string; className?: string }) { +/** Splits a string at `/` and `-` boundaries, inserting for natural line breaks. */ +function BreakablePath({ text }: { text: string }) { + const parts: React.ReactNode[] = []; + // Split on path separators and hyphens, keeping them in the output + const segments = text.split(/(?<=[\/-])/); + for (let i = 0; i < segments.length; i++) { + if (i > 0) parts.push(); + parts.push(segments[i]); + } + return <>{parts}; +} + +/** Displays a value with a copy-to-clipboard icon and "Copied!" feedback. */ +function CopyableValue({ value, label, mono, className }: { value: string; label?: string; mono?: boolean; className?: string }) { const [copied, setCopied] = useState(false); const timerRef = useRef>(undefined); const handleCopy = useCallback(async () => { @@ -144,15 +156,15 @@ function CopyablePath({ value, label, className }: { value: string; label?: stri return (
- + {label && {label} } - {value} + @@ -694,30 +706,30 @@ export function IssueProperties({ issue, onUpdate, inline }: IssuePropertiesProp {issue.currentExecutionWorkspace && (
-
+
Current:{" "} - {issue.currentExecutionWorkspace.name} + {" ยท "} {issue.currentExecutionWorkspace.status}
{issue.currentExecutionWorkspace.cwd && ( - + )} {issue.currentExecutionWorkspace.branchName && ( - + )} {issue.currentExecutionWorkspace.repoUrl && ( - + )}
)} {!issue.currentExecutionWorkspace && currentProject?.primaryWorkspace?.cwd && ( - + )}