5656 then each message layout checks for a message.bodyTemplate
5757 custom component to apply only to the body area
5858 -->
59- <div
60- :data-message-id =" message.id"
61- v-if =" false"
62- class =" kiwi-messagelist-message unloaded"
59+ <component
60+ :is =" message.template"
61+ v-if =" message.render() && message.template"
62+ v-bind =" message.templateProps"
63+ :buffer =" buffer"
64+ :message =" message"
65+ :prepend =" messagePrependPlugins"
66+ :append =" messageAppendPlugins"
67+ :idx =" filteredMessages.indexOf(message)"
68+ :ml =" thisMl"
69+ />
70+ <message-list-message-modern
71+ v-else-if =" listType === 'modern'"
72+ :message =" message"
73+ :prepend =" messagePrependPlugins"
74+ :append =" messageAppendPlugins"
75+ :idx =" filteredMessages.indexOf(message)"
76+ :buffer =" buffer"
77+ :ml =" thisMl"
78+ />
79+ <message-list-message-inline
80+ v-else-if =" listType === 'inline'"
81+ :message =" message"
82+ :prepend =" messagePrependPlugins"
83+ :append =" messageAppendPlugins"
84+ :buffer =" buffer"
85+ :idx =" filteredMessages.indexOf(message)"
86+ :ml =" thisMl"
87+ />
88+ <message-list-message-compact
89+ v-else-if =" listType === 'compact'"
90+ :message =" message"
91+ :prepend =" messagePrependPlugins"
92+ :append =" messageAppendPlugins"
93+ :idx =" filteredMessages.indexOf(message)"
94+ :buffer =" buffer"
95+ :ml =" thisMl"
6396 />
64- <template v-else >
65- <component
66- :is =" message.template"
67- v-if =" message.render() && message.template"
68- v-bind =" message.templateProps"
69- :buffer =" buffer"
70- :message =" message"
71- :prepend =" messagePrependPlugins"
72- :append =" messageAppendPlugins"
73- :idx =" filteredMessages.indexOf(message)"
74- :ml =" thisMl"
75- />
76- <message-list-message-modern
77- v-else-if =" listType === 'modern'"
78- :message =" message"
79- :prepend =" messagePrependPlugins"
80- :append =" messageAppendPlugins"
81- :idx =" filteredMessages.indexOf(message)"
82- :buffer =" buffer"
83- :ml =" thisMl"
84- />
85- <message-list-message-inline
86- v-else-if =" listType === 'inline'"
87- :message =" message"
88- :prepend =" messagePrependPlugins"
89- :append =" messageAppendPlugins"
90- :buffer =" buffer"
91- :idx =" filteredMessages.indexOf(message)"
92- :ml =" thisMl"
93- />
94- <message-list-message-compact
95- v-else-if =" listType === 'compact'"
96- :message =" message"
97- :prepend =" messagePrependPlugins"
98- :append =" messageAppendPlugins"
99- :idx =" filteredMessages.indexOf(message)"
100- :buffer =" buffer"
101- :ml =" thisMl"
102- />
103- </template >
10497 </div >
10598 </template >
10699 <!-- </remove-before-update> -->
@@ -295,22 +288,10 @@ export default {
295288 },
296289 mounted () {
297290 this .addCopyListeners ();
298- this .observer = new IntersectionObserver ((entries , observer ) => {
299- entries .forEach ((e ) => {
300- if (e? .target ? .dataset ? .messageId && e .isIntersecting ) {
301- this .$nextTick (() => this .tryRender (e .target ));
302- }
303- });
304- }, {
305- root: this .$refs .scroller ,
306- rootMargin: ' 0px' ,
307- threshold: 0.01 ,
308- });
309291 this .$nextTick (() => {
310292 this .scrollToBottom ();
311293 // this.smooth_scroll = true;
312294 });
313-
314295 // this watcher was moved here due to it firing before mounted() could scroll
315296 // to the bottom, this resulted in auto_scroll being set to false
316297 watch (() => this .buffer .message_count , () => {
@@ -322,14 +303,6 @@ export default {
322303 // previous check
323304 this .$nextTick (() => {
324305 this .maybeScrollToBottom ();
325- document .querySelectorAll (' .kiwi-messagelist-message.unloaded' ).forEach ((i ) => {
326- this .observer .observe (i);
327- const percent = percentInView (i);
328- window .kiwi .log .debug (' Percent in view for' , i, ' :' , percent);
329- if (percent > 0.01 ) {
330- this .tryRender (i);
331- }
332- });
333306 });
334307 }, { deep: true });
335308
@@ -346,19 +319,6 @@ export default {
346319 });
347320 },
348321 methods: {
349- tryRender (el ) {
350- const msg = this .buffer .messagesObj .messages
351- .find ((m ) => m .id .toString () === el .dataset .messageId );
352- if (msg) {
353- window .kiwi .log .debug (' rendered' , el .dataset .messageId , this .buffer .messagesObj .messages .slice (), msg);
354- msg .seen = true ;
355- this .observer .unobserve (el);
356- this .keepScroll (2 );
357- } else {
358- window .kiwi .log .debug (' couldnt render' , el .dataset .messageId , this .buffer .messagesObj .messages .slice ());
359- this .$nextTick (() => this .tryRender (el));
360- }
361- },
362322 isHoveringOverMessage (message ) {
363323 return message .nick && message .nick .toLowerCase () === this .hover_nick .toLowerCase ();
364324 },
0 commit comments