@servicetitan/titan-chat-ui-anvil2 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v5.1.0 (Tue Dec 02 2025)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - SPA-7593: Added additional buttons customization for chat input. Enabled markdown line break plugin [#76](https://github.com/servicetitan/titan-chatbot-client/pull/76) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
6
+
7
+ #### Authors: 1
8
+
9
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
10
+
11
+ ---
12
+
1
13
  # v4.3.2 (Mon Oct 20 2025)
2
14
 
3
15
  #### 🐛 Bug Fix
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input-file.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input-file.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAe,EAAE,EAAsD,MAAM,OAAO,CAAC;AAE5F,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CA6FnD,CAAC"}
1
+ {"version":3,"file":"chat-input-file.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input-file.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAe,EAAE,EAAiC,MAAM,OAAO,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAoFnD,CAAC"}
@@ -7,11 +7,10 @@ import IconEdit from '@servicetitan/anvil2/assets/icons/material/round/refresh.s
7
7
  import { useDependencies } from '@servicetitan/react-ioc';
8
8
  import { CHAT_UI_STORE_TOKEN } from '@servicetitan/titan-chat-ui-common';
9
9
  import { observer } from 'mobx-react';
10
- import { Fragment, useCallback, useEffect, useRef, useState } from 'react';
10
+ import { Fragment, useCallback, useRef } from 'react';
11
11
  export const ChatInputFile = observer(({ className }) => {
12
12
  const fileInputRef = useRef(null);
13
13
  const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
14
- const [fileDescriptor, setFileDescriptor] = useState(undefined);
15
14
  const handleSelected = useCallback((event) => {
16
15
  const files = event.target.files;
17
16
  if (!files || files.length === 0) {
@@ -21,7 +20,6 @@ export const ChatInputFile = observer(({ className }) => {
21
20
  file: files[0],
22
21
  displayName: files[0].name,
23
22
  };
24
- setFileDescriptor(fileDescriptor);
25
23
  chatUiStore.setFile(fileDescriptor);
26
24
  }, [chatUiStore]);
27
25
  const handleUpload = () => {
@@ -29,17 +27,11 @@ export const ChatInputFile = observer(({ className }) => {
29
27
  (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
30
28
  };
31
29
  const handleDelete = useCallback(() => {
32
- setFileDescriptor(undefined);
33
30
  chatUiStore.setFile(undefined);
34
31
  }, [chatUiStore]);
35
- useEffect(() => {
36
- if (!chatUiStore.file) {
37
- setFileDescriptor(undefined);
38
- }
39
- }, [chatUiStore.file]);
40
32
  if (!chatUiStore.isFilePickerEnabled) {
41
33
  return null;
42
34
  }
43
- return (_jsxs(Flex, { className: className, gap: "6", direction: "column", children: [_jsx(Text, { variant: "eyebrow", children: "Upload file" }), _jsx("input", { type: "file", ref: fileInputRef, onChange: handleSelected, style: { display: 'none' }, accept: "*/*", multiple: false }), _jsx(Flex, { direction: "column", gap: "2", "data-cy": "titan-chat-upload-file", children: fileDescriptor ? (_jsx(Card, { padding: "small", children: _jsxs(Flex, { style: { width: '100%' }, direction: "row", alignItems: "center", gap: "2", children: [_jsx(Icon, { svg: IconFile, className: "m-inline-start-4" }), _jsx(Text, { variant: "body", flexGrow: 1, "data-cy": "titan-chat-upload-file-name", children: fileDescriptor.displayName }), _jsx(Button, { icon: IconEdit, "aria-label": "Replace file", appearance: "ghost", onClick: handleUpload, "data-cy": "titan-chat-upload-file-edit" }), _jsx(Button, { icon: IconDelete, "aria-label": "Delete file", appearance: "ghost", onClick: handleDelete, "data-cy": "titan-chat-upload-file-delete" })] }) })) : (_jsxs(Fragment, { children: [_jsx(Button, { type: "button", appearance: "secondary", icon: IconAttachment, onClick: handleUpload, "data-cy": "titan-chat-upload-file-btn", children: "Upload File" }), _jsx(Text, { variant: "body", size: "small", subdued: true, children: "e.g. Screenshot of issue" })] })) })] }));
35
+ return (_jsxs(Flex, { className: className, gap: "6", direction: "column", children: [_jsx(Text, { variant: "eyebrow", children: "Upload file" }), _jsx("input", { type: "file", ref: fileInputRef, onChange: handleSelected, style: { display: 'none' }, accept: "*/*", multiple: false }), _jsx(Flex, { direction: "column", gap: "2", "data-cy": "titan-chat-upload-file", children: chatUiStore.file ? (_jsx(Card, { padding: "small", children: _jsxs(Flex, { style: { width: '100%' }, direction: "row", alignItems: "center", gap: "2", children: [_jsx(Icon, { svg: IconFile, className: "m-inline-start-4" }), _jsx(Text, { variant: "body", flexGrow: 1, "data-cy": "titan-chat-upload-file-name", children: chatUiStore.file.displayName }), _jsx(Button, { icon: IconEdit, "aria-label": "Replace file", appearance: "ghost", onClick: handleUpload, "data-cy": "titan-chat-upload-file-edit" }), _jsx(Button, { icon: IconDelete, "aria-label": "Delete file", appearance: "ghost", onClick: handleDelete, "data-cy": "titan-chat-upload-file-delete" })] }) })) : (_jsxs(Fragment, { children: [_jsx(Button, { type: "button", appearance: "secondary", icon: IconAttachment, onClick: handleUpload, "data-cy": "titan-chat-upload-file-btn", children: "Upload File" }), _jsx(Text, { variant: "body", size: "small", subdued: true, children: "e.g. Screenshot of issue" })] })) })] }));
44
36
  });
45
37
  //# sourceMappingURL=chat-input-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input-file.js","sourceRoot":"","sources":["../../../src/components/chat/chat-input-file.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-input-file.js","sourceRoot":"","sources":["../../../src/components/chat/chat-input-file.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEH,EAAE,EAOL,MAAM,OAAO,CAAC;AAMf,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CA6IhD,CAAC"}
1
+ {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEH,EAAE,EAQL,MAAM,OAAO,CAAC;AAMf,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CA+JhD,CAAC"}
@@ -5,19 +5,22 @@ import { provide, useDependencies } from '@servicetitan/react-ioc';
5
5
  import { CHAT_UI_STORE_TOKEN, useCustomizationChat } from '@servicetitan/titan-chat-ui-common';
6
6
  import classNames from 'classnames';
7
7
  import { observer } from 'mobx-react';
8
- import { useCallback, useEffect, useRef, useState, } from 'react';
8
+ import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
9
9
  import { ChatInputStore } from '../../stores/chat-input.store';
10
10
  import * as Styles from './chat-input.module.less';
11
11
  const TIMEOUT_COOLDOWN_MS = 3000;
12
12
  export const ChatInput = provide({
13
13
  singletons: [ChatInputStore],
14
14
  })(observer(({ className }) => {
15
- var _a, _b;
15
+ var _a, _b, _c;
16
16
  const customization = useCustomizationChat();
17
17
  const typingTimeoutRef = useRef(undefined);
18
18
  const [isSending, setIsSending] = useState(false);
19
19
  const textareaRef = useRef(null);
20
20
  const [chatUiStore, supportChatInputStore] = useDependencies(CHAT_UI_STORE_TOKEN, ChatInputStore);
21
+ const additionalButtons = (_a = customization.input) === null || _a === void 0 ? void 0 : _a.additionalButtons;
22
+ const leftButtons = useMemo(() => { var _a; return (_a = additionalButtons === null || additionalButtons === void 0 ? void 0 : additionalButtons.filter(btn => btn.position === 'left')) !== null && _a !== void 0 ? _a : []; }, [additionalButtons]);
23
+ const rightButtons = useMemo(() => { var _a; return (_a = additionalButtons === null || additionalButtons === void 0 ? void 0 : additionalButtons.filter(btn => btn.position === 'right')) !== null && _a !== void 0 ? _a : []; }, [additionalButtons]);
21
24
  const handleSendMessage = useCallback(async (event) => {
22
25
  event === null || event === void 0 ? void 0 : event.preventDefault();
23
26
  const validateResult = await supportChatInputStore.formState.validate();
@@ -84,7 +87,9 @@ export const ChatInput = provide({
84
87
  textareaRef.current.focus();
85
88
  }
86
89
  }, []);
87
- return (_jsx("form", { className: classNames(className), onSubmit: handleSendMessage, children: _jsxs(Flex, { direction: "row", gap: 4, className: Styles.formContainer, children: [_jsx(Textarea, { ref: textareaRef, name: "question", placeholder: (_b = (_a = customization.input) === null || _a === void 0 ? void 0 : _a.placeholderText) !== null && _b !== void 0 ? _b : 'Type your message', rows: 1, maxRows: 2, autoHeight: true, flexGrow: 1, onKeyDown: handleTextKeyPress, value: supportChatInputStore.formState.$.message.value, error: supportChatInputStore.formState.$.message.error, onChange: (e) => {
90
+ return (_jsx("form", { className: classNames(className), onSubmit: handleSendMessage, children: _jsxs(Flex, { direction: "row", gap: 2, className: Styles.formContainer, children: [leftButtons.map((button, index) => (
91
+ // eslint-disable-next-line react/no-array-index-key
92
+ _jsx(button.component, {}, index))), _jsx(Textarea, { ref: textareaRef, name: "question", placeholder: (_c = (_b = customization.input) === null || _b === void 0 ? void 0 : _b.placeholderText) !== null && _c !== void 0 ? _c : 'Type your message', rows: 1, maxRows: 2, autoHeight: true, flexGrow: 1, onKeyDown: handleTextKeyPress, value: supportChatInputStore.formState.$.message.value, error: supportChatInputStore.formState.$.message.error, onChange: (e) => {
88
93
  supportChatInputStore.formState.$.message.onChange(e.currentTarget.value);
89
94
  }, onFocus: () => {
90
95
  setTimeout(() => {
@@ -92,7 +97,9 @@ export const ChatInput = provide({
92
97
  }, 0);
93
98
  }, onBlur: () => {
94
99
  supportChatInputStore.formState.$.message.enableAutoValidationAndValidate();
95
- }, className: classNames('flex-grow-1', Styles.formTextarea), disabled: !chatUiStore.isStarted || isSending, "data-cy": "titan-chat-input" }), _jsx(Button, { alignSelf: "baseline", icon: IconSend, "data-pendo": "titan-chat-send", "data-cy": "titan-chat-send", type: "submit", appearance: "primary", "aria-label": "submit", disabled: !chatUiStore.isStarted ||
100
+ }, className: classNames('flex-grow-1', Styles.formTextarea), disabled: !chatUiStore.isStarted || isSending, "data-cy": "titan-chat-input" }), rightButtons.map((button, index) => (
101
+ // eslint-disable-next-line react/no-array-index-key
102
+ _jsx(button.component, {}, index))), _jsx(Button, { alignSelf: "baseline", icon: IconSend, "data-pendo": "titan-chat-send", "data-cy": "titan-chat-send", type: "submit", appearance: "primary", "aria-label": "submit", disabled: !chatUiStore.isStarted ||
96
103
  isSending ||
97
104
  supportChatInputStore.formState.hasError ||
98
105
  supportChatInputStore.isEmpty })] }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input.js","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-input.js","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-text.d.ts","sourceRoot":"","sources":["../../../src/components/common/markdown-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,EAAE,EAAsB,MAAM,OAAO,CAAC;AAQ/C,KAAK,iBAAiB,GAAG,SAAS,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAuF9C,CAAC"}
1
+ {"version":3,"file":"markdown-text.d.ts","sourceRoot":"","sources":["../../../src/components/common/markdown-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,EAAE,EAAsB,MAAM,OAAO,CAAC;AAS/C,KAAK,iBAAiB,GAAG,SAAS,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAuF9C,CAAC"}
@@ -5,6 +5,7 @@ import DOMpurify from 'dompurify';
5
5
  import { useMemo } from 'react';
6
6
  import Markdown from 'react-markdown';
7
7
  import rehypeRaw from 'rehype-raw';
8
+ import remarkBreaks from 'remark-breaks';
8
9
  import remarkGfm from 'remark-gfm';
9
10
  import * as Styles from './markdown-text.module.less';
10
11
  export const MarkdownText = ({ className, text, ...rest }) => {
@@ -37,6 +38,6 @@ export const MarkdownText = ({ className, text, ...rest }) => {
37
38
  return (_jsx(Text, { variant: "headline", el: "h6", size: "small", children: children }));
38
39
  },
39
40
  }), []);
40
- return (_jsx(Text, { variant: "body", className: classNames(Styles.content, className), ...rest, children: _jsx(Markdown, { components: markdownComponents, rehypePlugins: [rehypeRaw], remarkPlugins: [remarkGfm], children: DOMpurify.sanitize(text) }) }));
41
+ return (_jsx(Text, { variant: "body", className: classNames(Styles.content, className), ...rest, children: _jsx(Markdown, { components: markdownComponents, rehypePlugins: [rehypeRaw], remarkPlugins: [remarkGfm, remarkBreaks], children: DOMpurify.sanitize(text) }) }));
41
42
  };
42
43
  //# sourceMappingURL=markdown-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-text.js","sourceRoot":"","sources":["../../../src/components/common/markdown-text.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-text.js","sourceRoot":"","sources":["../../../src/components/common/markdown-text.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/titan-chat-ui-anvil2",
3
- "version": "5.0.0",
3
+ "version": "5.2.0",
4
4
  "description": "Chat experience UI package (Anvil2 version)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,12 +17,13 @@
17
17
  "push:local": "yalc push"
18
18
  },
19
19
  "dependencies": {
20
- "@servicetitan/titan-chat-ui-common": "^5.0.0",
20
+ "@servicetitan/titan-chat-ui-common": "^5.2.0",
21
21
  "dompurify": "^3.2.6",
22
22
  "lodash": "4.17.21",
23
23
  "nanoid": "^5.1.5",
24
24
  "react-markdown": "^10.1.0",
25
25
  "rehype-raw": "^7.0.0",
26
+ "remark-breaks": "^4.0.0",
26
27
  "remark-gfm": "^4.0.1"
27
28
  },
28
29
  "peerDependencies": {
@@ -38,7 +39,7 @@
38
39
  "react-dom": ">=18"
39
40
  },
40
41
  "devDependencies": {
41
- "@servicetitan/cypress-shared": "^5.0.0",
42
+ "@servicetitan/cypress-shared": "^5.2.0",
42
43
  "cypress": "^15.2.0"
43
44
  },
44
45
  "keywords": [
@@ -51,5 +52,5 @@
51
52
  "cli": {
52
53
  "webpack": false
53
54
  },
54
- "gitHead": "bfe252258427c7d79321dac8b4a6df45575a7040"
55
+ "gitHead": "75b01344a375fc9a0b41abc83956e636774bb2b7"
55
56
  }
@@ -6,12 +6,11 @@ import IconEdit from '@servicetitan/anvil2/assets/icons/material/round/refresh.s
6
6
  import { useDependencies } from '@servicetitan/react-ioc';
7
7
  import { CHAT_UI_STORE_TOKEN, FileDescriptor } from '@servicetitan/titan-chat-ui-common';
8
8
  import { observer } from 'mobx-react';
9
- import { ChangeEvent, FC, Fragment, useCallback, useEffect, useRef, useState } from 'react';
9
+ import { ChangeEvent, FC, Fragment, useCallback, useRef } from 'react';
10
10
 
11
11
  export const ChatInputFile: FC<{ className?: string }> = observer(({ className }) => {
12
12
  const fileInputRef = useRef<HTMLInputElement>(null);
13
13
  const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
14
- const [fileDescriptor, setFileDescriptor] = useState<FileDescriptor | undefined>(undefined);
15
14
 
16
15
  const handleSelected = useCallback(
17
16
  (event: ChangeEvent<HTMLInputElement>) => {
@@ -23,7 +22,6 @@ export const ChatInputFile: FC<{ className?: string }> = observer(({ className }
23
22
  file: files[0],
24
23
  displayName: files[0].name,
25
24
  };
26
- setFileDescriptor(fileDescriptor);
27
25
  chatUiStore.setFile(fileDescriptor);
28
26
  },
29
27
  [chatUiStore]
@@ -34,16 +32,9 @@ export const ChatInputFile: FC<{ className?: string }> = observer(({ className }
34
32
  };
35
33
 
36
34
  const handleDelete = useCallback(() => {
37
- setFileDescriptor(undefined);
38
35
  chatUiStore.setFile(undefined);
39
36
  }, [chatUiStore]);
40
37
 
41
- useEffect(() => {
42
- if (!chatUiStore.file) {
43
- setFileDescriptor(undefined);
44
- }
45
- }, [chatUiStore.file]);
46
-
47
38
  if (!chatUiStore.isFilePickerEnabled) {
48
39
  return null;
49
40
  }
@@ -59,12 +50,12 @@ export const ChatInputFile: FC<{ className?: string }> = observer(({ className }
59
50
  multiple={false}
60
51
  />
61
52
  <Flex direction="column" gap="2" data-cy="titan-chat-upload-file">
62
- {fileDescriptor ? (
53
+ {chatUiStore.file ? (
63
54
  <Card padding="small">
64
55
  <Flex style={{ width: '100%' }} direction="row" alignItems="center" gap="2">
65
56
  <Icon svg={IconFile} className="m-inline-start-4" />
66
57
  <Text variant="body" flexGrow={1} data-cy="titan-chat-upload-file-name">
67
- {fileDescriptor.displayName}
58
+ {chatUiStore.file.displayName}
68
59
  </Text>
69
60
  <Button
70
61
  icon={IconEdit}
@@ -11,6 +11,7 @@ import {
11
11
  KeyboardEvent,
12
12
  useCallback,
13
13
  useEffect,
14
+ useMemo,
14
15
  useRef,
15
16
  useState,
16
17
  } from 'react';
@@ -32,6 +33,16 @@ export const ChatInput: FC<{ className?: string }> = provide({
32
33
  ChatInputStore
33
34
  );
34
35
 
36
+ const additionalButtons = customization.input?.additionalButtons;
37
+ const leftButtons = useMemo(
38
+ () => additionalButtons?.filter(btn => btn.position === 'left') ?? [],
39
+ [additionalButtons]
40
+ );
41
+ const rightButtons = useMemo(
42
+ () => additionalButtons?.filter(btn => btn.position === 'right') ?? [],
43
+ [additionalButtons]
44
+ );
45
+
35
46
  const handleSendMessage = useCallback(
36
47
  async (event?: FormEvent) => {
37
48
  event?.preventDefault();
@@ -112,7 +123,11 @@ export const ChatInput: FC<{ className?: string }> = provide({
112
123
 
113
124
  return (
114
125
  <form className={classNames(className)} onSubmit={handleSendMessage}>
115
- <Flex direction="row" gap={4} className={Styles.formContainer}>
126
+ <Flex direction="row" gap={2} className={Styles.formContainer}>
127
+ {leftButtons.map((button, index) => (
128
+ // eslint-disable-next-line react/no-array-index-key
129
+ <button.component key={index} />
130
+ ))}
116
131
  <Textarea
117
132
  ref={textareaRef}
118
133
  name="question"
@@ -141,6 +156,10 @@ export const ChatInput: FC<{ className?: string }> = provide({
141
156
  disabled={!chatUiStore.isStarted || isSending}
142
157
  data-cy="titan-chat-input"
143
158
  />
159
+ {rightButtons.map((button, index) => (
160
+ // eslint-disable-next-line react/no-array-index-key
161
+ <button.component key={index} />
162
+ ))}
144
163
  <Button
145
164
  alignSelf="baseline"
146
165
  icon={IconSend}
@@ -4,6 +4,7 @@ import DOMpurify from 'dompurify';
4
4
  import { FC, ReactNode, useMemo } from 'react';
5
5
  import Markdown, { Components } from 'react-markdown';
6
6
  import rehypeRaw from 'rehype-raw';
7
+ import remarkBreaks from 'remark-breaks';
7
8
  import remarkGfm from 'remark-gfm';
8
9
  import * as Styles from './markdown-text.module.less';
9
10
 
@@ -94,7 +95,7 @@ export const MarkdownText: FC<MarkdownTextProps> = ({ className, text, ...rest }
94
95
  <Markdown
95
96
  components={markdownComponents}
96
97
  rehypePlugins={[rehypeRaw]}
97
- remarkPlugins={[remarkGfm]}
98
+ remarkPlugins={[remarkGfm, remarkBreaks]}
98
99
  >
99
100
  {DOMpurify.sanitize(text)}
100
101
  </Markdown>