Skip to content

Commit db6d258

Browse files
committed
🐛 Fix invalid format for code blocks in streaming bubble
1 parent 3f36780 commit db6d258

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

packages/embeds/js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@typebot.io/js",
3-
"version": "0.2.71",
3+
"version": "0.2.72",
44
"description": "Javascript library to display typebots on your website",
55
"type": "module",
66
"main": "dist/index.js",

packages/embeds/js/src/components/bubbles/StreamingBubble.tsx

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { streamingMessage } from '@/utils/streamingMessageSignal'
22
import { For, createEffect, createSignal } from 'solid-js'
33
import { marked } from 'marked'
44
import domPurify from 'dompurify'
5+
import { isNotEmpty } from '@typebot.io/lib'
56

67
type Props = {
78
streamingMessageId: string
@@ -22,12 +23,24 @@ export const StreamingBubble = (props: Props) => {
2223
if (streamingMessage()?.id !== props.streamingMessageId) return []
2324
setContent(
2425
streamingMessage()
25-
?.content.split('\n\n')
26-
.map((line) =>
27-
domPurify.sanitize(marked.parse(line), {
28-
ADD_ATTR: ['target'],
29-
})
30-
) ?? []
26+
?.content.split('```')
27+
.map((block, index) => {
28+
if (index % 2 === 0) {
29+
return block.split('\n\n').map((line) =>
30+
domPurify.sanitize(marked.parse(line), {
31+
ADD_ATTR: ['target'],
32+
})
33+
)
34+
} else {
35+
return [
36+
domPurify.sanitize(marked.parse('```' + block + '```'), {
37+
ADD_ATTR: ['target'],
38+
}),
39+
]
40+
}
41+
})
42+
.flat()
43+
.filter(isNotEmpty) ?? []
3144
)
3245
})
3346

packages/embeds/nextjs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@typebot.io/nextjs",
3-
"version": "0.2.71",
3+
"version": "0.2.72",
44
"description": "Convenient library to display typebots on your Next.js website",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

packages/embeds/react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@typebot.io/react",
3-
"version": "0.2.71",
3+
"version": "0.2.72",
44
"description": "Convenient library to display typebots on your React app",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)