diff --git a/web/src/components/feedback/FeedbackDialogs.tsx b/web/src/components/feedback/FeedbackDialogs.tsx index d8af646c03..3eb3f7715e 100644 --- a/web/src/components/feedback/FeedbackDialogs.tsx +++ b/web/src/components/feedback/FeedbackDialogs.tsx @@ -7,6 +7,7 @@ import { useTranslation } from 'react-i18next' import { LazyMarkdown as ReactMarkdown } from '../ui/LazyMarkdown' import remarkGfm from 'remark-gfm' import remarkBreaks from 'remark-breaks' +import rehypeSanitize from 'rehype-sanitize' import { useRef, useEffect } from 'react' import { sanitizeUrl } from '@/lib/utils/sanitizeUrl' @@ -274,7 +275,10 @@ export function FullscreenPreview({ description, onClose }: FullscreenPreviewPro
- + {description}
diff --git a/web/src/components/feedback/SubmitTab.tsx b/web/src/components/feedback/SubmitTab.tsx index 21a4e97cee..f6b5c5c86e 100644 --- a/web/src/components/feedback/SubmitTab.tsx +++ b/web/src/components/feedback/SubmitTab.tsx @@ -23,6 +23,7 @@ import { LazyMarkdown as ReactMarkdown } from '../ui/LazyMarkdown' import { useGlobalFilters } from '../../hooks/useGlobalFilters' import remarkGfm from 'remark-gfm' import remarkBreaks from 'remark-breaks' +import rehypeSanitize from 'rehype-sanitize' import { REWARD_ACTIONS } from '../../types/rewards' import { useLocalAgent } from '../../hooks/useLocalAgent' import type { CreateFeatureRequestInput } from '../../hooks/useFeatureRequests' @@ -647,7 +648,7 @@ export function SubmitForm({ )} > {description.trim() ? ( - + {description} ) : ( diff --git a/web/src/components/stellar/MessageBubble.tsx b/web/src/components/stellar/MessageBubble.tsx index 2b26e62708..efad9549b4 100644 --- a/web/src/components/stellar/MessageBubble.tsx +++ b/web/src/components/stellar/MessageBubble.tsx @@ -1,4 +1,6 @@ import { lazy, Suspense } from 'react' +import rehypeSanitize from 'rehype-sanitize' +import remarkGfm from 'remark-gfm' const ReactMarkdown = lazy(() => import('react-markdown')) @@ -36,7 +38,12 @@ export function MessageBubble({ msg }: { msg: Msg }) { ) : (
{msg.content}
}> - {msg.content} + + {msg.content} + )} diff --git a/web/src/components/updates/WhatsNewModal.tsx b/web/src/components/updates/WhatsNewModal.tsx index 2776c9019a..2c0ebcade5 100644 --- a/web/src/components/updates/WhatsNewModal.tsx +++ b/web/src/components/updates/WhatsNewModal.tsx @@ -5,6 +5,7 @@ import { Download, Clock, SkipForward, ChevronDown, Copy, Check, Loader2 } from import { LazyMarkdown as ReactMarkdown } from '../ui/LazyMarkdown' import remarkGfm from 'remark-gfm' import remarkBreaks from 'remark-breaks' +import rehypeSanitize from 'rehype-sanitize' import { BaseModal } from '../../lib/modals' import { MS_PER_HOUR, MS_PER_DAY } from '../../lib/constants/time' import { useVersionCheck } from '../../hooks/useVersionCheck' @@ -238,6 +239,7 @@ export function WhatsNewModal({ isOpen, onClose }: WhatsNewModalProps) {
{latestRelease?.releaseNotes ?? ''} @@ -277,7 +279,7 @@ export function WhatsNewModal({ isOpen, onClose }: WhatsNewModalProps) {
) : (
- + {'*No release notes available. Pull the latest commits to update.*'}
@@ -308,7 +310,7 @@ export function WhatsNewModal({ isOpen, onClose }: WhatsNewModalProps) { {expandedRelease === release.tag && release.releaseNotes && (
- + {release.releaseNotes}