11<template >
22 <!-- eslint-disable max-len -->
3- <h1
4- v-on:dblclick =" likeMessage(message.id, message.is_liked)"
5- v-bind:class =" {
6- 'p-2': true,
7- 'px-4': true,
8- 'mt-2': true,
9- 'cursor-pointer': true,
10- 'inline-block': true,
11- 'max-w-xs': true,
12- 'rounded-t-md': true,
13- 'rounded-br-md': message.to_id === loggedInUserId,
14- 'rounded-bl-md': message.to_id !== loggedInUserId,
15- 'bg-purple-matcha': message.to_id === loggedInUserId,
16- 'bg-green-500': message.to_id !== loggedInUserId,
17- 'text-white-matcha': true}"
18- >{{message.content}}<span class =" block text-xs font-light" >{{getDateHoursMinutes(message.timestamp)}}</span ></h1 >
3+ <div class =" noSelect mt-2 relative" >
4+ <img v-if =" message.to_id !== loggedInUserId && message.is_liked"
5+ src =" ../../../assets/heart.png" class =" w-6 mr-2 inline-block"
6+ v-on:dblclick =" likeMessage(message.id, message.is_liked)" >
7+ <h1
8+ v-on:dblclick =" likeMessage(message.id, message.is_liked)"
9+ v-bind:class =" {
10+ 'p-2': true,
11+ 'px-4': true,
12+ 'cursor-pointer': message.to_id === loggedInUserId,
13+ 'inline-block': true,
14+ 'max-w-xs': true,
15+ 'rounded-t-md': true,
16+ 'rounded-br-md': message.to_id === loggedInUserId,
17+ 'rounded-bl-md': message.to_id !== loggedInUserId,
18+ 'bg-purple-matcha': message.to_id === loggedInUserId,
19+ 'bg-green-500': message.to_id !== loggedInUserId,
20+ 'text-white-matcha': true}"
21+ >{{message.content}}<span class =" block text-xs font-light" >{{getDateHoursMinutes(message.timestamp)}}</span ></h1 >
22+ <img v-if =" message.to_id === loggedInUserId && message.is_liked"
23+ src =" ../../../assets/heart.png" class =" w-6 ml-2 inline-block absolute heart"
24+ v-on:dblclick =" likeMessage(message.id, message.is_liked)" >
25+ </div >
1926</template >
2027
2128<script >
2229export default {
23- props: [' message' , ' loggedInUserId' ],
30+ props: [' messagePassed' , ' loggedInUserId' ],
31+ data : () => ({
32+ message: {},
33+ }),
2434 methods: {
2535 getDateHoursMinutes (timestamp ) {
2636 if (! timestamp) {
@@ -31,12 +41,27 @@ export default {
3141 return ` ${ splitByColon[0 ]} :${ splitByColon[1 ]} ` ;
3242 },
3343 async likeMessage (id , isLiked ) {
44+ if (this .message .to_id !== this .loggedInUserId ) {
45+ return ;
46+ }
3447 if (! isLiked) {
48+ this .message .is_liked = true ;
3549 await this .$http .post (` /messages/like/${ id} ` );
3650 } else {
51+ this .message .is_liked = false ;
3752 await this .$http .post (` /messages/unlike/${ id} ` );
3853 }
3954 },
4055 },
56+ beforeMount () {
57+ this .message = this .messagePassed ;
58+ },
4159};
4260 </script >
61+
62+ <style >
63+ .heart {
64+ top : 50% ;
65+ transform : translateY (-50% );
66+ }
67+ </style >
0 commit comments