@@ -20,7 +20,13 @@ import type {
2020} from '../../chatHistory' ;
2121
2222export const addUserMessage = ( msg : UserMessage ) => {
23- const messageElement : UpdatableHTMLElement < UserMessage > = createElement ( 'div' , 'message user' ) ;
23+ const messageWrapper : UpdatableHTMLElement < UserMessage > = createElement (
24+ 'div' ,
25+ 'message-wrapper user' ,
26+ ) ;
27+ messageWrapper . style . setProperty ( '--user-msg-height' , '-10px' ) ;
28+
29+ const messageElement = createElement ( 'div' , 'message user' ) ;
2430
2531 const textContent = msg . content ;
2632 const imagesContent = [ ] ;
@@ -35,7 +41,7 @@ export const addUserMessage = (msg: UserMessage) => {
3541 textDiv . innerHTML = nlToBr ( textContent ) ;
3642 messageElement . appendChild ( textDiv ) ;
3743
38- if ( imagesContent ) {
44+ if ( imagesContent . length > 0 ) {
3945 const imageRow = createElement ( 'div' , 'imageRow' ) ;
4046
4147 for ( const imgContent of imagesContent ) {
@@ -103,36 +109,50 @@ export const addUserMessage = (msg: UserMessage) => {
103109
104110 messageElement . appendChild ( actionsContainer ) ;
105111
106- messageElement . update = ( msg ) => {
112+ messageWrapper . update = ( msg ) => {
107113 const textContent = Array . isArray ( msg . content ) ? msg . content [ 0 ] . value : msg . content ;
108114 textDiv . innerHTML = nlToBr ( textContent ) ;
109115 } ;
110116
111- globalState . modal . chatMessages . appendChild ( messageElement ) ;
117+ messageWrapper . appendChild ( messageElement ) ;
118+ globalState . modal . chatMessages . appendChild ( messageWrapper ) ;
112119
113- return messageElement ;
120+ return messageWrapper ;
114121} ;
115122
116123export const addErrorMessage = ( content : string ) => {
117124 globalState . modal . welcomeMessage . style . display = 'none' ;
118125
119- const messageElement : UpdatableHTMLElement = createElement ( 'div' , 'message error' ) ;
126+ const messageWrapper : UpdatableHTMLElement = createElement ( 'div' , 'message-wrapper error' ) ;
127+ const messageElement = createElement ( 'div' , 'message error' ) ;
120128
121129 messageElement . appendChild ( icon ( 14 , triangleError ) ) ;
122130
123131 const textSpan = createElement ( 'span' ) ;
124132 textSpan . textContent = content ;
125133 messageElement . appendChild ( textSpan ) ;
126134
127- globalState . modal . chatMessages . appendChild ( messageElement ) ;
135+ messageWrapper . appendChild ( messageElement ) ;
136+
137+ globalState . modal . chatMessages . appendChild ( messageWrapper ) ;
128138
129- return messageElement ;
139+ return messageWrapper ;
130140} ;
131141
132142export const addAssistantMessage = ( msg : AssistantMessage , config : LocalChatConfig ) => {
133- const messageElement : UpdatableHTMLElement < AssistantMessage > = createElement ( 'div' , 'message ai' ) ;
134- messageElement . dataset . id = msg . id ;
143+ const messageWrapper : UpdatableHTMLElement < AssistantMessage > = createElement (
144+ 'div' ,
145+ 'message-wrapper ai' ,
146+ ) ;
147+ if ( globalState . modal . chatMessages . lastElementChild ?. firstElementChild ) {
148+ messageWrapper . style . setProperty (
149+ '--user-msg-height' ,
150+ `${ globalState . modal . chatMessages . lastElementChild . firstElementChild . clientHeight } px` ,
151+ ) ;
152+ }
135153
154+ const messageElement = createElement ( 'div' , 'message ai' ) ;
155+ messageElement . dataset . id = msg . id ;
136156 const md = markdownit ( {
137157 html : true ,
138158 xhtmlOut : true ,
@@ -280,15 +300,17 @@ export const addAssistantMessage = (msg: AssistantMessage, config: LocalChatConf
280300
281301 messageElement . appendChild ( actionsContainer ) ;
282302
283- globalState . modal . chatMessages . appendChild ( messageElement ) ;
303+ messageWrapper . appendChild ( messageElement ) ;
304+
305+ globalState . modal . chatMessages . appendChild ( messageWrapper ) ;
284306
285- messageElement . update = ( msg ) => {
307+ messageWrapper . update = ( msg ) => {
286308 const content =
287309 msg . contentType === 'image' ? `<img src="${ textContent } " />` : md . render ( msg . content ?? '' ) ;
288310 shadow . updateContent ( content ) ;
289311 } ;
290312
291- return messageElement ;
313+ return messageWrapper ;
292314} ;
293315
294316export const renderMessage = ( msg : Message , config : LocalChatConfig ) => {
0 commit comments