<template> <div class="mk-notification"> <div class="notification reaction" v-if="notification.type == 'reaction'"> <router-link class="avatar-anchor" :to="notification.user | userPage"> <img class="avatar" :src="`${notification.user.avatarUrl}?thumbnail&size=64`" alt="avatar"/> </router-link> <div> <header> <mk-reaction-icon :reaction="notification.reaction"/> <router-link :to="notification.user | userPage">{{ notification.user | userName }}</router-link> <mk-time :time="notification.createdAt"/> </header> <router-link class="note-ref" :to="notification.note | notePage"> %fa:quote-left%{{ getNoteSummary(notification.note) }} %fa:quote-right% </router-link> </div> </div> <div class="notification renote" v-if="notification.type == 'renote'"> <router-link class="avatar-anchor" :to="notification.user | userPage"> <img class="avatar" :src="`${notification.user.avatarUrl}?thumbnail&size=64`" alt="avatar"/> </router-link> <div> <header> %fa:retweet% <router-link :to="notification.user | userPage">{{ notification.user | userName }}</router-link> <mk-time :time="notification.createdAt"/> </header> <router-link class="note-ref" :to="notification.note | notePage"> %fa:quote-left%{{ getNoteSummary(notification.note.renote) }}%fa:quote-right% </router-link> </div> </div> <div class="notification follow" v-if="notification.type == 'follow'"> <router-link class="avatar-anchor" :to="notification.user | userPage"> <img class="avatar" :src="`${notification.user.avatarUrl}?thumbnail&size=64`" alt="avatar"/> </router-link> <div> <header> %fa:user-plus% <router-link :to="notification.user | userPage">{{ notification.user | userName }}</router-link> <mk-time :time="notification.createdAt"/> </header> </div> </div> <div class="notification poll_vote" v-if="notification.type == 'poll_vote'"> <router-link class="avatar-anchor" :to="notification.user | userPage"> <img class="avatar" :src="`${notification.user.avatarUrl}?thumbnail&size=64`" alt="avatar"/> </router-link> <div> <header> %fa:chart-pie% <router-link :to="notification.user | userPage">{{ notification.user | userName }}</router-link> <mk-time :time="notification.createdAt"/> </header> <router-link class="note-ref" :to="notification.note | notePage"> %fa:quote-left%{{ getNoteSummary(notification.note) }}%fa:quote-right% </router-link> </div> </div> <template v-if="notification.type == 'quote'"> <mk-note :note="notification.note"/> </template> <template v-if="notification.type == 'reply'"> <mk-note :note="notification.note"/> </template> <template v-if="notification.type == 'mention'"> <mk-note :note="notification.note"/> </template> </div> </template> <script lang="ts"> import Vue from 'vue'; import getNoteSummary from '../../../../../renderers/get-note-summary'; export default Vue.extend({ props: ['notification'], data() { return { getNoteSummary }; } }); </script> <style lang="stylus" scoped> .mk-notification > .notification padding 16px font-size 12px overflow-wrap break-word @media (min-width 350px) font-size 14px @media (min-width 500px) font-size 16px @media (min-width 600px) padding 32px &:after content "" display block clear both > .avatar-anchor display block float left img width 36px height 36px border-radius 6px @media (min-width 500px) width 42px height 42px > div float right width calc(100% - 36px) padding-left 8px @media (min-width 500px) width calc(100% - 42px) > header display flex align-items center white-space nowrap i, .mk-reaction-icon margin-right 4px > .mk-time margin-left auto color rgba(0, 0, 0, 0.3) font-size 0.9em > .note-preview color rgba(0, 0, 0, 0.7) > .note-ref color rgba(0, 0, 0, 0.7) [data-fa] font-size 1em font-weight normal font-style normal display inline-block margin-right 3px &.renote > div > header i color #77B255 &.follow > div > header i color #53c7ce </style>