diff --git a/web/src/config/MarkdownComponents.tsx b/web/src/config/MarkdownComponents.tsx
new file mode 100644
index 0000000..7456aa0
--- /dev/null
+++ b/web/src/config/MarkdownComponents.tsx
@@ -0,0 +1,10 @@
+import { Title } from '@mantine/core';
+import { Components } from 'react-markdown';
+
+const MarkdownComponents: Components = {
+ h1: ({ node, ...props }) =>
,
+ h2: ({ node, ...props }) => ,
+ h3: ({ node, ...props }) => ,
+};
+
+export default MarkdownComponents;
diff --git a/web/src/features/dialog/AlertDialog.tsx b/web/src/features/dialog/AlertDialog.tsx
index 0d64b37..ed07d5f 100644
--- a/web/src/features/dialog/AlertDialog.tsx
+++ b/web/src/features/dialog/AlertDialog.tsx
@@ -6,6 +6,7 @@ import { fetchNui } from '../../utils/fetchNui';
import { useLocales } from '../../providers/LocaleProvider';
import remarkGfm from 'remark-gfm';
import type { AlertProps } from '../../typings';
+import MarkdownComponents from '../../config/MarkdownComponents';
const AlertDialog: React.FC = () => {
const { locale } = useLocales();
@@ -46,12 +47,13 @@ const AlertDialog: React.FC = () => {
overlayOpacity={0.5}
exitTransitionDuration={150}
transition="fade"
- title={{dialogData.header}}
+ title={{dialogData.header}}
>
,
}}
>
diff --git a/web/src/features/menu/context/ContextMenu.tsx b/web/src/features/menu/context/ContextMenu.tsx
index 2cd0a4a..c79f368 100644
--- a/web/src/features/menu/context/ContextMenu.tsx
+++ b/web/src/features/menu/context/ContextMenu.tsx
@@ -7,6 +7,7 @@ import { fetchNui } from '../../../utils/fetchNui';
import ReactMarkdown from 'react-markdown';
import HeaderButton from './components/HeaderButton';
import ScaleFade from '../../../transitions/ScaleFade';
+import MarkdownComponents from '../../../config/MarkdownComponents';
const openMenu = (id: string | undefined) => {
fetchNui('openContext', { id: id, back: true });
@@ -92,7 +93,7 @@ const ContextMenu: React.FC = () => {
)}
- {contextMenu.title}
+ {contextMenu.title}
diff --git a/web/src/features/menu/context/components/ContextButton.tsx b/web/src/features/menu/context/components/ContextButton.tsx
index 49858d0..936f523 100644
--- a/web/src/features/menu/context/components/ContextButton.tsx
+++ b/web/src/features/menu/context/components/ContextButton.tsx
@@ -5,6 +5,7 @@ import { Option, ContextMenuProps } from '../../../../typings';
import { fetchNui } from '../../../../utils/fetchNui';
import { isIconUrl } from '../../../../utils/isIconUrl';
import { IconProp } from '@fortawesome/fontawesome-svg-core';
+import MarkdownComponents from '../../../../config/MarkdownComponents';
const openMenu = (id: string | undefined) => {
fetchNui('openContext', { id: id, back: false });
@@ -108,12 +109,12 @@ const ContextButton: React.FC<{
)}
- {button.title || buttonKey}
+ {button.title || buttonKey}
{button.description && (
- {button.description}
+ {button.description}
)}
{button.progress !== undefined && (
diff --git a/web/src/features/notifications/NotificationWrapper.tsx b/web/src/features/notifications/NotificationWrapper.tsx
index 1c57083..6a22c98 100644
--- a/web/src/features/notifications/NotificationWrapper.tsx
+++ b/web/src/features/notifications/NotificationWrapper.tsx
@@ -5,6 +5,7 @@ import ReactMarkdown from 'react-markdown';
import { Avatar, createStyles, Group, Stack, Box, Text, keyframes, Sx } from '@mantine/core';
import React from 'react';
import type { NotificationProps } from '../../typings';
+import MarkdownComponents from '../../config/MarkdownComponents';
const useStyles = createStyles((theme) => ({
container: {
@@ -181,7 +182,10 @@ const Notifications: React.FC = () => {
{data.title && {data.title}}
{data.description && (
-
+
{data.description}
)}
diff --git a/web/src/features/textui/TextUI.tsx b/web/src/features/textui/TextUI.tsx
index f316e50..74f85a1 100644
--- a/web/src/features/textui/TextUI.tsx
+++ b/web/src/features/textui/TextUI.tsx
@@ -6,6 +6,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import ScaleFade from '../../transitions/ScaleFade';
import remarkGfm from 'remark-gfm';
import type { TextUiProps, TextUiPosition } from '../../typings';
+import MarkdownComponents from '../../config/MarkdownComponents';
const useStyles = createStyles((theme, params: { position?: TextUiPosition }) => ({
wrapper: {
@@ -52,7 +53,9 @@ const TextUI: React.FC = () => {
{data.icon && }
- {data.text}
+
+ {data.text}
+