mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
99 lines
2.5 KiB
Vue
99 lines
2.5 KiB
Vue
<template>
|
|
<ds-space :class="[{ read: notification.read }, notification]" margin-bottom="x-small">
|
|
<no-ssr>
|
|
<ds-space margin-bottom="x-small">
|
|
<hc-user
|
|
v-if="resourceType == 'Post'"
|
|
:user="post.author"
|
|
:date-time="post.createdAt"
|
|
:trunc="35"
|
|
/>
|
|
<hc-user v-else :user="comment.author" :date-time="comment.createdAt" :trunc="35" />
|
|
</ds-space>
|
|
<ds-text color="soft">{{ $t(notificationTextIdents[notification.reason]) }}</ds-text>
|
|
</no-ssr>
|
|
<ds-space margin-bottom="x-small" />
|
|
<nuxt-link
|
|
class="notification-mention-post"
|
|
:to="{ name: 'post-id-slug', params, ...hashParam }"
|
|
@click.native="$emit('read')"
|
|
>
|
|
<ds-space margin-bottom="x-small">
|
|
<ds-card
|
|
:header="post.title || comment.post.title"
|
|
hover
|
|
space="x-small"
|
|
class="notifications-card"
|
|
>
|
|
<ds-space margin-bottom="x-small" />
|
|
<div v-if="resourceType == 'Post'">{{ post.contentExcerpt | removeHtml }}</div>
|
|
<div v-else>
|
|
<span class="comment-notification-header">Comment:</span>
|
|
{{ comment.contentExcerpt | removeHtml }}
|
|
</div>
|
|
</ds-card>
|
|
</ds-space>
|
|
</nuxt-link>
|
|
</ds-space>
|
|
</template>
|
|
|
|
<script>
|
|
import HcUser from '~/components/User'
|
|
|
|
export default {
|
|
name: 'Notification',
|
|
components: {
|
|
HcUser,
|
|
},
|
|
props: {
|
|
notification: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
notificationTextIdents: {
|
|
mentioned_in_post: 'notifications.menu.mentionedInPost',
|
|
mentioned_in_comment: 'notifications.menu.mentionedInComment',
|
|
comment_on_post: 'notifications.menu.commentedOnPost',
|
|
},
|
|
}
|
|
},
|
|
computed: {
|
|
resourceType() {
|
|
return this.post.id ? 'Post' : 'Comment'
|
|
},
|
|
post() {
|
|
return this.notification.post || {}
|
|
},
|
|
comment() {
|
|
return this.notification.comment || {}
|
|
},
|
|
params() {
|
|
return {
|
|
id: this.post.id || this.comment.post.id,
|
|
slug: this.post.slug || this.comment.post.slug,
|
|
}
|
|
},
|
|
hashParam() {
|
|
return this.post.id ? {} : { hash: `#commentId-${this.comment.id}` }
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.notification.read {
|
|
opacity: 0.6; /* Real browsers */
|
|
filter: alpha(opacity = 60); /* MSIE */
|
|
}
|
|
.notifications-card {
|
|
min-width: 500px;
|
|
}
|
|
.comment-notification-header {
|
|
font-weight: 700;
|
|
margin-right: 0.1rem;
|
|
}
|
|
</style>
|