Linkify URLs and preserve line breaks in question messages

This commit is contained in:
2026-05-27 14:16:25 +05:00
parent 14b1eacf0d
commit a65125a239
3 changed files with 30 additions and 2 deletions
+26
View File
@@ -0,0 +1,26 @@
import { Fragment, type ReactNode } from "react";
const URL_RE = /(https?:\/\/[^\s<>()]+[^\s<>().,;:!?])/g;
export function linkify(text: string): ReactNode[] {
if (!text) return [];
const parts = text.split(URL_RE);
return parts.map((part, i) => {
if (URL_RE.test(part)) {
URL_RE.lastIndex = 0;
return (
<a
key={i}
href={part}
target="_blank"
rel="noopener noreferrer"
className="underline break-all"
style={{ color: "var(--foreground)" }}
>
{part}
</a>
);
}
return <Fragment key={i}>{part}</Fragment>;
});
}