From 89bef9dd44894acb5963e43975f68f2137acaf42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pomucz=20Tam=C3=A1s?= <pomucz@sch.bme.hu>
Date: Sat, 1 Feb 2025 22:18:49 +0100
Subject: [PATCH] Add link highlighting to news page

---
 src/components/pages/News.js | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/components/pages/News.js b/src/components/pages/News.js
index a550e8d..31b6c13 100644
--- a/src/components/pages/News.js
+++ b/src/components/pages/News.js
@@ -10,6 +10,19 @@ import EditNewsForm from '../forms/EditNewsForm';
 import { connect } from 'react-redux';
 import moment from 'moment';
 
+const linkify = (text) => {
+  const urlRegex = /(https?:\/\/[^\s]+)/g;
+  return text.split(urlRegex).map((part, index) =>
+    part.match(urlRegex) ? (
+      <a key={index} href={part} target="_blank" rel="noopener noreferrer">
+        {part}
+      </a>
+    ) : (
+      part
+    )
+  );
+};
+
 class News extends Component {
   UNSAFE_componentWillMount() {
     this.props.getNews();
@@ -61,7 +74,7 @@ class News extends Component {
 
   renderMultiLine = (text) => {
     const strings = text.split('\n');
-    return strings.map((string) => <p key={Math.random()}>{string}</p>);
+    return strings.map((string) => <p key={Math.random()}>{linkify(string)}</p>);
   };
 
   render() {
-- 
GitLab