11<template >
2- <div class =" sc-message--text" :class = " {'confirm-delete' : confirmDeletion} " : style =" messageColors" >
2+ <div class =" sc-message--text" :style =" messageColors" >
33 <template >
44 <div class =" sc-message--toolbox" :style =" {background: messageColors.backgroundColor}" >
55 <button v-if =" showEdition && me && message.id" @click =" edit" :disabled =" isEditing" >
88 </IconBase >
99 </button >
1010 <div v-if =" showDeletion" >
11- <div v-if =" showConfirmationDeletion" >
12- <div v-if =" confirmDeletion" > <!-- is used only when you display the message before deleting message -->
13- <div class =" message-deletion-confirmation" @mouseleave =" refuseDelete" >
14- <span >Confirm?</span >
15- <a :style =" {color: messageColors.color}" href =" javascript:void(0);" @click =" $emit('remove')" >Yes</a >
16- </div >
17- </div >
18- <div v-else >
19- <button v-if =" me && message.id" @click =" clickOnDelete" >
20- <IconBase :style =" {color: messageColors.color}" width =" 10" icon-name =" remove" >
21- <IconCross />
22- </IconBase >
23- </button >
24- </div >
25- </div >
26- <div v-else >
27- <button v-if =" showDeletion && me && message.id != null && message.id != undefined" @click =" $emit('remove')" >
28- <IconBase :color =" messageColors.color" width =" 10" icon-name =" remove" >
29- <IconCross />
30- </IconBase >
31- </button >
32- </div >
11+ <button v-if =" me && message.id != null && message.id != undefined" @click =" ifelse(showConfirmationDeletion, withConfirm('Do you really want to delete the message?', () => $emit('remove')), () => $emit('remove'))()" >
12+ <IconBase :color =" messageColors.color" width =" 10" icon-name =" remove" >
13+ <IconCross />
14+ </IconBase >
15+ </button >
3316 </div >
3417 <slot name =" text-message-toolbox" :message =" message" :me =" me" > </slot >
3518 </div >
@@ -61,7 +44,6 @@ const fmt = require('msgdown')
6144export default {
6245 data () {
6346 return {
64- confirmDeletion: false ,
6547 store
6648 }
6749 },
@@ -89,7 +71,7 @@ export default {
8971 showConfirmationDeletion: {
9072 type: Boolean ,
9173 required: true
92- }
74+ },
9375 },
9476 computed: {
9577 messageText () {
@@ -111,17 +93,25 @@ export default {
11193 edit () {
11294 this .store .editMessage = this .message
11395 },
114- clickOnDelete () {
115- this .confirmDeletion = true
96+ ifelse (cond , funcIf , funcElse ) {
97+ return () => {
98+ if (funcIf && cond) funcIf ()
99+ else if (funcElse) funcElse ()
100+ }
116101 },
117- refuseDelete () {
118- this .confirmDeletion = false
102+ withConfirm (msg , func ) {
103+ return () => {
104+ if (confirm (msg)) {
105+ console .log (func)
106+ func ()
107+ }
108+ }
119109 },
120110 },
121111 components: {
122112 IconBase,
123113 IconCross,
124- IconEdit
114+ IconEdit,
125115 }
126116}
127117 </script >
@@ -130,7 +120,4 @@ export default {
130120a .chatLink {
131121 color : inherit !important ;
132122}
133- .message-deletion-confirmation {
134- padding : 0px 5px ;
135- }
136123 </style >
0 commit comments