1111 <h1 class =" noSelect capitalize opacity-50" >←</h1 >
1212 </div >
1313 </div >
14- <div class =" messages rounded-md overflow-scroll pt-4 pb-2 w-full" >
15- <div
16- v-bind:class =" {
17- 'flex': true,
18- 'mt-1': true,
19- 'justify-start': message.to_id === loggedInUserId,
20- 'justify-end': message.to_id !== loggedInUserId}"
21- v-for =" message in messages" :key =" message.id" >
22- <h1 v-if =" message.to_id === loggedInUserId"
23- class =" py-2 px-4 rounded-t-md rounded-br-md bg-purple-matcha text-white-matcha" >{{message.content}}</h1 >
24- <h1 v-else
25- class =" py-2 px-4 rounded-t-md rounded-bl-md bg-green-500 text-white-matcha" >{{message.content}}</h1 >
26- </div >
14+ <div id =" messageBox" v-if =" messages" class =" messages my-2 break-words rounded-md overflow-scroll w-full" >
15+ <h1 v-for =" message in messages" :key =" message.id"
16+ v-bind:class =" {
17+ 'py-2': true,
18+ 'px-4': true,
19+ 'mt-2': true,
20+ 'sm:w-48': true,
21+ 'lg:w-64': true,
22+ 'rounded-t-md': true,
23+ 'rounded-br-md': message.to_id === loggedInUserId,
24+ 'rounded-bl-md': message.to_id !== loggedInUserId,
25+ 'text-left': message.to_id === loggedInUserId,
26+ 'text-right': message.to_id !== loggedInUserId,
27+ 'mr-auto': message.to_id === loggedInUserId,
28+ 'ml-auto': message.to_id !== loggedInUserId,
29+ 'bg-purple-matcha': message.to_id === loggedInUserId,
30+ 'bg-green-500': message.to_id !== loggedInUserId,
31+ 'text-white-matcha': true}"
32+ >{{message.content}}</h1 >
2733 </div >
2834 <div class =" send w-full flex items-stretch" >
2935 <div class =" w-10/12 h-full" >
@@ -47,7 +53,7 @@ export default {
4753 ChatUser,
4854 },
4955 data : () => ({
50- messages: [] ,
56+ messages: null ,
5157 user: null ,
5258 message: ' ' ,
5359 loggedInUserId: null ,
@@ -61,6 +67,12 @@ export default {
6167 to_uid: this .user .id .toString (),
6268 content: this .message ,
6369 });
70+ this .messages .push ({ to_id: this .chatWithUserId , content: this .message });
71+ this .message = ' ' ;
72+ this .$nextTick (() => {
73+ const messageBox = document .getElementById (' messageBox' );
74+ messageBox .scrollTop = messageBox .scrollHeight ;
75+ });
6476 },
6577 },
6678 async beforeMount () {
@@ -69,6 +81,10 @@ export default {
6981 const userRequest = await this .$http .get (` /users/${ this .chatWithUserId } ` );
7082 this .user = userRequest .data ;
7183 this .loggedInUserId = this .$store .getters .getLoggedInUser .id ;
84+ this .$nextTick (() => {
85+ const messageBox = document .getElementById (' messageBox' );
86+ messageBox .scrollTop = messageBox .scrollHeight ;
87+ });
7288 },
7389};
7490 </script >
0 commit comments