diff --git a/backend/out/linux_amd64/smail b/backend/out/linux_amd64/smail index f0e7bd25..515d05b4 100644 Binary files a/backend/out/linux_amd64/smail and b/backend/out/linux_amd64/smail differ diff --git a/frontend/src/views/EmailDetail/EmailDetail.js b/frontend/src/views/EmailDetail/EmailDetail.js index ca1643e4..62ccd289 100644 --- a/frontend/src/views/EmailDetail/EmailDetail.js +++ b/frontend/src/views/EmailDetail/EmailDetail.js @@ -106,10 +106,25 @@ export function usePage() { return router.push({name: 'editer', query: {reply: String(id)}}) } + const cleanSenderText = (text) => { + if (!text) return String(); + return String(text).replace(/[\u200B-\u200D\u2060-\u206F\uFEFF]/g, String()).trim(); + }; + const getInitial = (name) => { - if (!name) return '?'; - return name.charAt(0).toUpperCase(); - } + const cleaned = cleanSenderText(name); + if (!cleaned) return '?'; + return cleaned.charAt(0).toUpperCase(); + }; + + const formatSenderName = (fromName, fromAddress) => { + const cleaned = cleanSenderText(fromName); + return cleaned || fromAddress || String(); + }; + + const hasSenderName = (fromName) => { + return cleanSenderText(fromName).length > 0; + }; const formatDetailDate = (dateStr) => { if (!dateStr) return ""; @@ -183,6 +198,9 @@ export function usePage() { backToList, handleReply, getInitial, + cleanSenderText, + formatSenderName, + hasSenderName, formatDetailDate, handleDelete } diff --git a/frontend/src/views/EmailDetail/EmailDetail.vue b/frontend/src/views/EmailDetail/EmailDetail.vue index c954859b..cb4d4230 100644 --- a/frontend/src/views/EmailDetail/EmailDetail.vue +++ b/frontend/src/views/EmailDetail/EmailDetail.vue @@ -43,12 +43,12 @@