132132 </v-list-item-title >
133133 </v-list-item-content >
134134 </v-list-item >
135+ <v-list-item @click.prevent =" copyMessageId(message)" >
136+ <v-list-item-icon class =" pl-2" >
137+ <v-icon dense >{{ mdiContentCopy }}</v-icon >
138+ </v-list-item-icon >
139+ <v-list-item-content class =" ml-n3" >
140+ <v-list-item-title class =" pr-16 py-1" >
141+ Copy Message ID
142+ </v-list-item-title >
143+ </v-list-item-content >
144+ </v-list-item >
135145 <v-list-item @click.prevent =" deleteMessage(message)" >
136146 <v-list-item-icon class =" pl-2" >
137147 <v-icon dense color =" error" >{{ mdiDelete }}</v-icon >
238248 </v-list-item-title >
239249 </v-list-item-content >
240250 </v-list-item >
251+ <v-list-item @click.prevent =" copyMessageId(message)" >
252+ <v-list-item-icon class =" pl-2" >
253+ <v-icon dense >{{ mdiContentCopy }}</v-icon >
254+ </v-list-item-icon >
255+ <v-list-item-content class =" ml-n3" >
256+ <v-list-item-title class =" pr-16 py-1" >
257+ Copy Message ID
258+ </v-list-item-title >
259+ </v-list-item-content >
260+ </v-list-item >
241261 <v-list-item @click.prevent =" deleteMessage(message)" >
242262 <v-list-item-icon class =" pl-2" >
243263 <v-icon dense color =" error" >{{ mdiDelete }}</v-icon >
@@ -321,9 +341,10 @@ import {
321341 mdiAccount ,
322342 mdiRefresh ,
323343 mdiSim ,
344+ mdiContentCopy ,
324345} from ' @mdi/js'
325346import { Message } from ' ~/models/message'
326- import { SendMessageRequest , SIM } from ' ~/store'
347+ import { NotificationRequest , SendMessageRequest , SIM } from ' ~/store'
327348
328349export default Vue .extend ({
329350 middleware: [' auth' ],
@@ -349,6 +370,7 @@ export default Vue.extend({
349370 mdiPackageUp ,
350371 mdiPackageDown ,
351372 mdiAccount ,
373+ mdiContentCopy ,
352374 mdiRefresh ,
353375 mdiSim ,
354376 simOptions: [
@@ -507,6 +529,19 @@ export default Vue.extend({
507529 this .loadMessages (false )
508530 },
509531
532+ async copyMessageId(message : Message ) {
533+ await navigator .clipboard .writeText (message .id ).then (() => {
534+ this .$store .dispatch (' addNotification' , {
535+ message: ' Message ID copied to clipboard' ,
536+ type: ' success' ,
537+ } as NotificationRequest )
538+ })
539+
540+ setTimeout (() => {
541+ this .selectedMenuItem = - 1
542+ }, 1000 )
543+ },
544+
510545 async deleteThread(threadID : string ) {
511546 await this .$store .dispatch (' deleteThread' , threadID )
512547 await this .$router .push ({ name: ' threads' })
0 commit comments