|
55 | 55 | @click.prevent="hasWriteAcl ? onToggleJunk() : false" /> |
56 | 56 | </div> |
57 | 57 |
|
58 | | - <router-link |
59 | | - :to="route" |
60 | | - event="" |
| 58 | + <div |
61 | 59 | class="left" |
62 | 60 | :class="{ seen: envelope.flags.seen }" |
63 | | - @click.native.prevent="$emit('toggle-expand', $event)"> |
| 61 | + role="button" |
| 62 | + tabindex="0" |
| 63 | + @click="$emit('toggle-expand', $event)" |
| 64 | + @keydown.enter="$emit('toggle-expand', $event)" |
| 65 | + @keydown.space.prevent="$emit('toggle-expand', $event)"> |
64 | 66 | <div class="envelope__header__left__sender-subject-tags"> |
65 | 67 | <div class="sender" :class="{ 'sender--expanded': expanded }"> |
66 | 68 | {{ envelope.from && envelope.from[0] ? envelope.from[0].label : '' }} |
67 | | - <button |
68 | | - v-if="expanded && hasRecipients" |
69 | | - type="button" |
70 | | - class="sender__email sender__email--toggle" |
71 | | - :style="{ color: senderEmailColor }" |
72 | | - @click.stop.prevent="showRecipients = !showRecipients"> |
73 | | - {{ senderEmail }} |
74 | | - <ChevronUpIcon v-if="showRecipients" :size="16" /> |
75 | | - <ChevronDownIcon v-else :size="16" /> |
76 | | - </button> |
77 | | - <p |
78 | | - v-else-if="expanded" |
79 | | - class="sender__email" |
80 | | - :style="{ color: senderEmailColor }"> |
81 | | - {{ senderEmail }} |
82 | | - </p> |
83 | 69 | </div> |
| 70 | + <button |
| 71 | + v-if="expanded && hasRecipients" |
| 72 | + type="button" |
| 73 | + class="sender__email sender__email--toggle" |
| 74 | + :style="{ color: senderEmailColor }" |
| 75 | + @click.stop.prevent="showRecipients = !showRecipients"> |
| 76 | + {{ senderEmail }} |
| 77 | + <ChevronUpIcon v-if="showRecipients" :size="16" /> |
| 78 | + <ChevronDownIcon v-else :size="16" /> |
| 79 | + </button> |
| 80 | + <p |
| 81 | + v-else-if="expanded" |
| 82 | + class="sender__email" |
| 83 | + :style="{ color: senderEmailColor }"> |
| 84 | + {{ senderEmail }} |
| 85 | + </p> |
84 | 86 | <div v-if="hasChangedSubject" class="subline"> |
85 | 87 | {{ cleanSubject }} |
86 | 88 | </div> |
|
110 | 112 | v-if="message && message.dkimValid && (message.unsubscribeUrl || message.unsubscribeMailto)" |
111 | 113 | variant="tertiary" |
112 | 114 | class="envelope__header__unsubscribe" |
113 | | - @click="showListUnsubscribeConfirmation = true"> |
| 115 | + @click.stop="showListUnsubscribeConfirmation = true"> |
114 | 116 | {{ t('mail', 'Unsubscribe') }} |
115 | 117 | </NcButton> |
116 | 118 | </div> |
117 | | - </router-link> |
| 119 | + </div> |
118 | 120 | <div class="right"> |
119 | 121 | <Moment class="timestamp" :timestamp="envelope.dateInt" /> |
120 | 122 | <template v-if="expanded"> |
|
288 | 290 | <div v-if="envelope.to && envelope.to.length" class="recipients"> |
289 | 291 | <span class="recipients__label">{{ t('mail', 'To:') }}</span> |
290 | 292 | <RecipientBubble |
291 | | - v-for="recipient in envelope.to" |
292 | | - :key="recipient.email" |
| 293 | + v-for="(recipient, index) in envelope.to" |
| 294 | + :key="`${recipient.email}-${index}`" |
293 | 295 | :email="recipient.email" |
294 | | - :label="recipient.label" /> |
| 296 | + :label="recipient.label" |
| 297 | + :size="24" /> |
295 | 298 | </div> |
296 | 299 | <div v-if="envelope.cc && envelope.cc.length" class="recipients"> |
297 | 300 | <span class="recipients__label">{{ t('mail', 'Cc:') }}</span> |
298 | 301 | <RecipientBubble |
299 | | - v-for="recipient in envelope.cc" |
300 | | - :key="recipient.email" |
| 302 | + v-for="(recipient, index) in envelope.cc" |
| 303 | + :key="`${recipient.email}-${index}`" |
301 | 304 | :email="recipient.email" |
302 | | - :label="recipient.label" /> |
| 305 | + :label="recipient.label" |
| 306 | + :size="24" /> |
303 | 307 | </div> |
304 | 308 | <div v-if="envelope.bcc && envelope.bcc.length" class="recipients"> |
305 | 309 | <span class="recipients__label">{{ t('mail', 'Bcc:') }}</span> |
306 | 310 | <RecipientBubble |
307 | | - v-for="recipient in envelope.bcc" |
308 | | - :key="recipient.email" |
| 311 | + v-for="(recipient, index) in envelope.bcc" |
| 312 | + :key="`${recipient.email}-${index}`" |
309 | 313 | :email="recipient.email" |
310 | | - :label="recipient.label" /> |
| 314 | + :label="recipient.label" |
| 315 | + :size="24" /> |
311 | 316 | </div> |
312 | 317 | </div> |
313 | 318 | <MessageLoadingSkeleton v-if="loading === Loading.Skeleton" /> |
@@ -589,16 +594,6 @@ export default { |
589 | 594 | return recipients.to.concat(recipients.cc).length > 1 |
590 | 595 | }, |
591 | 596 |
|
592 | | - route() { |
593 | | - return { |
594 | | - name: 'message', |
595 | | - params: { |
596 | | - mailboxId: this.mailboxId || this.envelope.mailboxId, |
597 | | - threadId: this.envelope.databaseId, |
598 | | - }, |
599 | | - } |
600 | | - }, |
601 | | -
|
602 | 597 | isEncrypted() { |
603 | 598 | return this.envelope.previewText |
604 | 599 | && isPgpText(this.envelope.previewText) |
@@ -1181,12 +1176,10 @@ export default { |
1181 | 1176 |
|
1182 | 1177 | &--expanded { |
1183 | 1178 | color: var(--color-text-maxcontrast); |
1184 | | - display: flex; |
1185 | | - flex-direction: column; |
1186 | | - align-items: flex-start; |
1187 | 1179 | } |
1188 | 1180 |
|
1189 | 1181 | &__email { |
| 1182 | + margin-inline-start: calc(var(--default-grid-baseline) * 2); |
1190 | 1183 | text-overflow: ellipsis; |
1191 | 1184 | overflow: hidden; |
1192 | 1185 |
|
@@ -1465,20 +1458,12 @@ export default { |
1465 | 1458 | } |
1466 | 1459 |
|
1467 | 1460 | :deep(.user-bubble__content) { |
1468 | | - height: 24px !important; |
1469 | | - line-height: 24px !important; |
1470 | | - border-radius: var(--border-radius-pill) !important; |
| 1461 | + border-radius: var(--border-radius-pill); |
1471 | 1462 |
|
1472 | 1463 | > :last-child { |
1473 | 1464 | padding-inline-end: 0; |
1474 | 1465 | } |
1475 | 1466 | } |
1476 | | -
|
1477 | | - :deep(.user-bubble__avatar) { |
1478 | | - --avatar-size: 24px !important; |
1479 | | - font-size: 11px !important; |
1480 | | - line-height: 24px !important; |
1481 | | - } |
1482 | 1467 | } |
1483 | 1468 | } |
1484 | 1469 |
|
|
0 commit comments