From 3379c65a87381826609d690d9532b9bcb91cdacf Mon Sep 17 00:00:00 2001 From: Maksim Eltyshev Date: Tue, 30 Aug 2022 13:47:50 +0200 Subject: [PATCH] fix: Prevent tabnabbing in markdown --- .../components/Markdown/Markdown.jsx | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/client/src/lib/custom-ui/components/Markdown/Markdown.jsx b/client/src/lib/custom-ui/components/Markdown/Markdown.jsx index 3a083678..2ece41ea 100644 --- a/client/src/lib/custom-ui/components/Markdown/Markdown.jsx +++ b/client/src/lib/custom-ui/components/Markdown/Markdown.jsx @@ -6,6 +6,8 @@ import remarkBreaks from 'remark-breaks'; import './Markdown.module.scss'; // FIXME: import as styles? +const ABSOLUTE_URL_REGEX = /^(?:https?:)?\/\//i; + const Markdown = React.memo(({ linkStopPropagation, ...props }) => { const handleLinkClick = useCallback((event) => { event.stopPropagation(); @@ -16,25 +18,30 @@ const Markdown = React.memo(({ linkStopPropagation, ...props }) => { jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions, react/jsx-props-no-spreading */ - ({ node, ...linkProps }) => , + ({ node, ...linkProps }) => ( + + ), /* eslint-enable jsx-a11y/anchor-has-content, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions, react/jsx-props-no-spreading */ - [handleLinkClick], + [linkStopPropagation, handleLinkClick], ); - let components; - if (linkStopPropagation) { - components = { - a: linkRenderer, - }; - } - return (