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