11<script setup lang="ts">
22import routeLinks from " @/router/routeLinks" ;
33import Message , { MessageStatus } from " @/resources/Message" ;
4- import { defineProps } from " vue" ;
4+ import { computed , defineProps } from " vue" ;
55import { formatDotNetTimespan } from " @/composables/formatUtils" ;
6- import { useRoute , useRouter } from " vue-router" ;
6+ import { useRouter , RouterLink } from " vue-router" ;
77import MessageStatusIcon from " @/components/audit/MessageStatusIcon.vue" ;
88
9- const route = useRoute ();
109const router = useRouter ();
1110
1211const props = defineProps <{
1312 message: Message ;
1413}>();
15-
16- function navigateToMessage(message : Message ) {
14+ const link = computed (() => {
1715 const query = router .currentRoute .value .query ;
1816
19- router .push ({
20- path: message .status === MessageStatus .Successful || message .status === MessageStatus .ResolvedSuccessfully ? routeLinks .messages .successMessage .link (message .message_id , message .id ) : routeLinks .messages .failedMessage .link (message .id ),
21- query: { ... query , ... { back: route .path } },
17+ const route = router .resolve ({
18+ path:
19+ props .message .status === MessageStatus .Successful || props .message .status === MessageStatus .ResolvedSuccessfully
20+ ? routeLinks .messages .successMessage .link (props .message .message_id , props .message .id )
21+ : routeLinks .messages .failedMessage .link (props .message .id ),
22+ query: { ... query , ... { back: router .currentRoute .value .path } },
2223 });
23- }
24+
25+ return route ;
26+ });
2427 </script >
2528
2629<template >
27- <div class =" item" @click = " navigateToMessage(props.message) " >
30+ <RouterLink class =" item" :to = " link " >
2831 <div class =" status" >
2932 <MessageStatusIcon :message =" props.message" />
3033 </div >
@@ -34,11 +37,13 @@ function navigateToMessage(message: Message) {
3437 <div class =" critical-time" ><span class =" label-name" >Critical Time:</span >{{ formatDotNetTimespan(props.message.critical_time) }}</div >
3538 <div class =" processing-time" ><span class =" label-name" >Processing Time:</span >{{ formatDotNetTimespan(props.message.processing_time) }}</div >
3639 <div class =" delivery-time" ><span class =" label-name" >Delivery Time:</span >{{ formatDotNetTimespan(props.message.delivery_time) }}</div >
37- </div >
40+ </RouterLink >
3841</template >
3942
4043<style scoped>
4144.item {
45+ color : inherit ;
46+ text-decoration : none ;
4247 padding : 0.3rem 0.2rem ;
4348 border : 1px solid #ffffff ;
4449 border-bottom : 1px solid #eee ;
@@ -56,7 +61,6 @@ function navigateToMessage(message: Message) {
5661.item :hover {
5762 border-color : var (--sp-blue );
5863 background-color : #edf6f7 ;
59- cursor : pointer ;
6064}
6165.label-name {
6266 margin-right : 0.25rem ;
0 commit comments