aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/account_actions/account_actions.js2
-rw-r--r--src/components/account_actions/account_actions.vue8
-rw-r--r--src/components/basic_user_card/basic_user_card.vue2
-rw-r--r--src/components/block_card/block_card.js5
-rw-r--r--src/components/follow_button/follow_button.js14
-rw-r--r--src/components/follow_card/follow_card.js3
-rw-r--r--src/components/follow_card/follow_card.vue5
-rw-r--r--src/components/mute_card/mute_card.js9
-rw-r--r--src/components/notification/notification.js2
-rw-r--r--src/components/notification/notification.vue2
-rw-r--r--src/components/side_drawer/side_drawer.vue2
-rw-r--r--src/components/status/status.js15
-rw-r--r--src/components/status/status.vue2
-rw-r--r--src/components/user_card/user_card.js8
-rw-r--r--src/components/user_card/user_card.vue15
-rw-r--r--src/components/user_panel/user_panel.vue2
-rw-r--r--src/components/user_profile/user_profile.vue2
-rw-r--r--src/components/user_settings/user_settings.js8
18 files changed, 67 insertions, 39 deletions
diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js
index 5d7ecf7e..0826c275 100644
--- a/src/components/account_actions/account_actions.js
+++ b/src/components/account_actions/account_actions.js
@@ -3,7 +3,7 @@ import Popover from '../popover/popover.vue'
const AccountActions = {
props: [
- 'user'
+ 'user', 'relationship'
],
data () {
return { }
diff --git a/src/components/account_actions/account_actions.vue b/src/components/account_actions/account_actions.vue
index 483783cf..744b77d5 100644
--- a/src/components/account_actions/account_actions.vue
+++ b/src/components/account_actions/account_actions.vue
@@ -9,16 +9,16 @@
class="account-tools-popover"
>
<div class="dropdown-menu">
- <template v-if="user.following">
+ <template v-if="relationship.following">
<button
- v-if="user.showing_reblogs"
+ v-if="relationship.showing_reblogs"
class="btn btn-default dropdown-item"
@click="hideRepeats"
>
{{ $t('user_card.hide_repeats') }}
</button>
<button
- v-if="!user.showing_reblogs"
+ v-if="!relationship.showing_reblogs"
class="btn btn-default dropdown-item"
@click="showRepeats"
>
@@ -30,7 +30,7 @@
/>
</template>
<button
- v-if="user.statusnet_blocking"
+ v-if="relationship.blocking"
class="btn btn-default btn-block dropdown-item"
@click="unblockUser"
>
diff --git a/src/components/basic_user_card/basic_user_card.vue b/src/components/basic_user_card/basic_user_card.vue
index 8a02174e..b5a11e2b 100644
--- a/src/components/basic_user_card/basic_user_card.vue
+++ b/src/components/basic_user_card/basic_user_card.vue
@@ -12,7 +12,7 @@
class="basic-user-card-expanded-content"
>
<UserCard
- :user="user"
+ :userId="user.id"
:rounded="true"
:bordered="true"
/>
diff --git a/src/components/block_card/block_card.js b/src/components/block_card/block_card.js
index c459ff1b..659c75d8 100644
--- a/src/components/block_card/block_card.js
+++ b/src/components/block_card/block_card.js
@@ -11,8 +11,11 @@ const BlockCard = {
user () {
return this.$store.getters.findUser(this.userId)
},
+ relationship () {
+ return this.$store.state.users.relationships[this.userId] || {}
+ },
blocked () {
- return this.user.statusnet_blocking
+ return this.relationship.blocking
}
},
components: {
diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js
index 12da2645..af7b1fef 100644
--- a/src/components/follow_button/follow_button.js
+++ b/src/components/follow_button/follow_button.js
@@ -1,6 +1,6 @@
import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'
export default {
- props: ['user', 'labelFollowing', 'buttonClass'],
+ props: ['relationship', 'labelFollowing', 'buttonClass'],
data () {
return {
inProgress: false
@@ -8,12 +8,12 @@ export default {
},
computed: {
isPressed () {
- return this.inProgress || this.user.following
+ return this.inProgress || this.relationship.following
},
title () {
- if (this.inProgress || this.user.following) {
+ if (this.inProgress || this.relationship.following) {
return this.$t('user_card.follow_unfollow')
- } else if (this.user.requested) {
+ } else if (this.relationship.requested) {
return this.$t('user_card.follow_again')
} else {
return this.$t('user_card.follow')
@@ -22,9 +22,9 @@ export default {
label () {
if (this.inProgress) {
return this.$t('user_card.follow_progress')
- } else if (this.user.following) {
+ } else if (this.relationship.following) {
return this.labelFollowing || this.$t('user_card.following')
- } else if (this.user.requested) {
+ } else if (this.relationship.requested) {
return this.$t('user_card.follow_sent')
} else {
return this.$t('user_card.follow')
@@ -33,7 +33,7 @@ export default {
},
methods: {
onClick () {
- this.user.following ? this.unfollow() : this.follow()
+ this.relationship.following ? this.unfollow() : this.follow()
},
follow () {
this.inProgress = true
diff --git a/src/components/follow_card/follow_card.js b/src/components/follow_card/follow_card.js
index aefd609e..620ae7fd 100644
--- a/src/components/follow_card/follow_card.js
+++ b/src/components/follow_card/follow_card.js
@@ -18,6 +18,9 @@ const FollowCard = {
},
loggedIn () {
return this.$store.state.users.currentUser
+ },
+ relationship () {
+ return this.$store.state.users.relationships[this.user.id]
}
}
}
diff --git a/src/components/follow_card/follow_card.vue b/src/components/follow_card/follow_card.vue
index 81e6e6dc..d789a325 100644
--- a/src/components/follow_card/follow_card.vue
+++ b/src/components/follow_card/follow_card.vue
@@ -2,14 +2,14 @@
<basic-user-card :user="user">
<div class="follow-card-content-container">
<span
- v-if="!noFollowsYou && user.follows_you"
+ v-if="!noFollowsYou && relationship.followed_by"
class="faint"
>
{{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}
</span>
<template v-if="!loggedIn">
<div
- v-if="!user.following"
+ v-if="!relationship.following"
class="follow-card-follow-button"
>
<RemoteFollow :user="user" />
@@ -18,6 +18,7 @@
<template v-else>
<FollowButton
:user="user"
+ :relationship="relationship"
class="follow-card-follow-button"
:label-following="$t('user_card.follow_unfollow')"
/>
diff --git a/src/components/mute_card/mute_card.js b/src/components/mute_card/mute_card.js
index 65c9cfb5..be528d37 100644
--- a/src/components/mute_card/mute_card.js
+++ b/src/components/mute_card/mute_card.js
@@ -11,8 +11,11 @@ const MuteCard = {
user () {
return this.$store.getters.findUser(this.userId)
},
+ relationship () {
+ return this.$store.state.users.relationships[this.userId]
+ },
muted () {
- return this.user.muted
+ return this.relationship.muting
}
},
components: {
@@ -21,13 +24,13 @@ const MuteCard = {
methods: {
unmuteUser () {
this.progress = true
- this.$store.dispatch('unmuteUser', this.user.id).then(() => {
+ this.$store.dispatch('unmuteUser', this.userId).then(() => {
this.progress = false
})
},
muteUser () {
this.progress = true
- this.$store.dispatch('muteUser', this.user.id).then(() => {
+ this.$store.dispatch('muteUser', this.userId).then(() => {
this.progress = false
})
}
diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js
index e7bd769e..09554f54 100644
--- a/src/components/notification/notification.js
+++ b/src/components/notification/notification.js
@@ -56,7 +56,7 @@ const Notification = {
return this.generateUserProfileLink(this.targetUser)
},
needMute () {
- return this.user.muted
+ return (this.$store.state.users.relationships[this.user.id] || {}).muting
}
}
}
diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue
index 411c0271..24d9fe90 100644
--- a/src/components/notification/notification.vue
+++ b/src/components/notification/notification.vue
@@ -40,7 +40,7 @@
<div class="notification-right">
<UserCard
v-if="userExpanded"
- :user="getUser(notification)"
+ :user-id="getUser(notification).id"
:rounded="true"
:bordered="true"
/>
diff --git a/src/components/side_drawer/side_drawer.vue b/src/components/side_drawer/side_drawer.vue
index df1d22a4..a9dbbeec 100644
--- a/src/components/side_drawer/side_drawer.vue
+++ b/src/components/side_drawer/side_drawer.vue
@@ -19,7 +19,7 @@
>
<UserCard
v-if="currentUser"
- :user="currentUser"
+ :userId="currentUser.id"
:hide-bio="true"
/>
<div
diff --git a/src/components/status/status.js b/src/components/status/status.js
index fc5956ec..a73e3ae2 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -118,7 +118,13 @@ const Status = {
return hits
},
- muted () { return !this.unmuted && ((!(this.inProfile && this.status.user.id === this.profileUserId) && this.status.user.muted) || (!this.inConversation && this.status.thread_muted) || this.muteWordHits.length > 0) },
+ muted () {
+ const relationship = this.$store.state.users.relationships[this.status.user.id] || {}
+ return !this.unmuted && (
+ (!(this.inProfile && this.status.user.id === this.profileUserId) && relationship.muting) ||
+ (!this.inConversation && this.status.thread_muted) ||
+ this.muteWordHits.length > 0)
+ },
hideFilteredStatuses () {
return this.mergedConfig.hideFilteredStatuses
},
@@ -178,8 +184,11 @@ const Status = {
if (this.status.user.id === this.status.attentions[i].id) {
continue
}
- const taggedUser = this.$store.getters.findUser(this.status.attentions[i].id)
- if (checkFollowing && taggedUser && taggedUser.following) {
+ // There's zero guarantee of this working. If we happen to have that user and their
+ // relationship in store then it will work, but there's kinda little chance of having
+ // them for people you're not following.
+ const relationship = this.$store.state.users.relationships[this.status.attentions[i].id]
+ if (checkFollowing && relationship && relationship.following) {
return false
}
if (this.status.attentions[i].id === this.currentUser.id) {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index ca295640..a04b501a 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -94,7 +94,7 @@
<div class="status-body">
<UserCard
v-if="userExpanded"
- :user="status.user"
+ :userId="status.user.id"
:rounded="true"
:bordered="true"
class="status-usercard"
diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js
index 1cdbd3fa..fb3cfebc 100644
--- a/src/components/user_card/user_card.js
+++ b/src/components/user_card/user_card.js
@@ -9,7 +9,7 @@ import { mapGetters } from 'vuex'
export default {
props: [
- 'user', 'switcher', 'selected', 'hideBio', 'rounded', 'bordered', 'allowZoomingAvatar'
+ 'userId', 'switcher', 'selected', 'hideBio', 'rounded', 'bordered', 'allowZoomingAvatar'
],
data () {
return {
@@ -21,6 +21,12 @@ export default {
this.$store.dispatch('fetchUserRelationship', this.user.id)
},
computed: {
+ user () {
+ return this.$store.getters.findUser(this.userId)
+ },
+ relationship () {
+ return this.$store.state.users.relationships[this.userId] || {}
+ },
classes () {
return [{
'user-card-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
index 4ee040e8..25fdd70e 100644
--- a/src/components/user_card/user_card.vue
+++ b/src/components/user_card/user_card.vue
@@ -8,7 +8,9 @@
:style="style"
class="background-image"
/>
- <div class="panel-heading">
+ <div
+ class="panel-heading"
+ >
<div class="user-info">
<div class="container">
<a
@@ -69,6 +71,7 @@
<AccountActions
v-if="isOtherUser && loggedIn"
:user="user"
+ :relationship="relationship"
/>
</div>
<div class="bottom-line">
@@ -92,7 +95,7 @@
</div>
<div class="user-meta">
<div
- v-if="user.follows_you && loggedIn && isOtherUser"
+ v-if="relationship.followed_by && loggedIn && isOtherUser"
class="following"
>
{{ $t('user_card.follows_you') }}
@@ -139,10 +142,10 @@
class="user-interactions"
>
<div class="btn-group">
- <FollowButton :user="user" />
- <template v-if="user.following">
+ <FollowButton :relationship="relationship" />
+ <template v-if="relationship.following">
<ProgressButton
- v-if="!user.subscribed"
+ v-if="!relationship.subscribing"
class="btn btn-default"
:click="subscribeUser"
:title="$t('user_card.subscribe')"
@@ -161,7 +164,7 @@
</div>
<div>
<button
- v-if="user.muted"
+ v-if="relationship.muting"
class="btn btn-default btn-block toggled"
@click="unmuteUser"
>
diff --git a/src/components/user_panel/user_panel.vue b/src/components/user_panel/user_panel.vue
index e9f08015..ea4e2e9f 100644
--- a/src/components/user_panel/user_panel.vue
+++ b/src/components/user_panel/user_panel.vue
@@ -6,7 +6,7 @@
class="panel panel-default signed-in"
>
<UserCard
- :user="user"
+ :userId="user.id"
:hide-bio="true"
rounded="top"
/>
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 14082e83..7855c839 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -5,7 +5,7 @@
class="user-profile panel panel-default"
>
<UserCard
- :user="user"
+ :userId="user.id"
:switcher="true"
:selected="timeline.viewing"
:allow-zooming-avatar="true"
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index eca6f9b1..adfab8fa 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -351,14 +351,14 @@ const UserSettings = {
},
filterUnblockedUsers (userIds) {
return reject(userIds, (userId) => {
- const user = this.$store.getters.findUser(userId)
- return !user || user.statusnet_blocking || user.id === this.$store.state.users.currentUser.id
+ const relationship = this.$store.state.users.relationships[userId] || {}
+ return relationship.blocking || userId === this.$store.state.users.currentUser.id
})
},
filterUnMutedUsers (userIds) {
return reject(userIds, (userId) => {
- const user = this.$store.getters.findUser(userId)
- return !user || user.muted || user.id === this.$store.state.users.currentUser.id
+ const relationship = this.$store.state.users.relationships[userId] || {}
+ return relationship.muting || userId === this.$store.state.users.currentUser.id
})
},
queryUserIds (query) {