Browse Source

enh: automatic artifacts toggle

Timothy J. Baek 7 tháng trước cách đây
mục cha
commit
aeaf761ecd

+ 8 - 0
src/lib/components/chat/Messages/ContentRenderer.svelte

@@ -4,6 +4,7 @@
 
 	import Markdown from './Markdown.svelte';
 	import LightBlub from '$lib/components/icons/LightBlub.svelte';
+	import { showArtifacts, showControls, showOverview } from '$lib/stores';
 
 	export let id;
 	export let content;
@@ -69,6 +70,13 @@
 		on:update={(e) => {
 			dispatch('update', e.detail);
 		}}
+		on:code={(e) => {
+			const { lang } = e.detail;
+			if (lang === 'html') {
+				showArtifacts.set(true);
+				showControls.set(true);
+			}
+		}}
 	/>
 </div>
 

+ 3 - 0
src/lib/components/chat/Messages/Markdown.svelte

@@ -42,5 +42,8 @@
 		on:update={(e) => {
 			dispatch('update', e.detail);
 		}}
+		on:code={(e) => {
+			dispatch('code', e.detail);
+		}}
 	/>
 {/key}

+ 5 - 0
src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte

@@ -33,6 +33,11 @@
 			<MarkdownInlineTokens id={`${id}-${tokenIdx}-h`} tokens={token.tokens} />
 		</svelte:element>
 	{:else if token.type === 'code'}
+		{#if token.lang === 'html'}
+			{dispatch('code', {
+				lang: token.lang
+			})}
+		{/if}
 		{#if token.raw.includes('```')}
 			<CodeBlock
 				id={`${id}-${tokenIdx}`}