akkoma-fe/src/components/notification/notification.js

48 lines
1.3 KiB
JavaScript
Raw Normal View History

import Status from '../status/status.vue'
import UserAvatar from '../user_avatar/user_avatar.vue'
2019-03-05 19:01:49 +00:00
import UserCard from '../user_card/user_card.vue'
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
const Notification = {
data () {
return {
userExpanded: false,
betterShadow: this.$store.state.interface.browserSupport.cssFilter
}
},
props: [ 'notification' ],
components: {
2019-03-05 19:01:49 +00:00
Status, UserAvatar, UserCard
},
methods: {
toggleUserExpanded () {
this.userExpanded = !this.userExpanded
2018-12-16 23:52:27 +00:00
},
userProfileLink (user) {
return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)
}
},
computed: {
userClass () {
2019-04-01 01:59:18 +00:00
return highlightClass(this.notification.from_profile)
},
userStyle () {
const highlight = this.$store.state.config.highlight
2019-04-01 01:59:18 +00:00
const user = this.notification.from_profile
return highlightStyle(highlight[user.screen_name])
2019-04-01 14:26:13 +00:00
},
userInStore () {
return this.$store.getters.findUser(this.notification.action.user.id)
},
user () {
if (this.userInStore) {
return this.userInStore
}
return {}
}
}
}
export default Notification