From c1457c23903ae393c773699a1be2b57e3065c70f Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 8 Jun 2021 17:04:57 +0300 Subject: [PATCH] fix console errors --- src/components/mention_link/mention_link.js | 26 +++++++++++++------ src/components/mentions_line/mentions_line.js | 2 +- src/components/status/status.js | 5 +++- src/components/status/status.vue | 2 ++ 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/components/mention_link/mention_link.js b/src/components/mention_link/mention_link.js index 8ad84a51..acd0f584 100644 --- a/src/components/mention_link/mention_link.js +++ b/src/components/mention_link/mention_link.js @@ -6,13 +6,20 @@ const MentionLink = { name: 'MentionLink', props: { url: { - required: true, type: String }, content: { required: true, type: String }, + userId: { + required: false, + type: String + }, + userScreenName: { + required: false, + type: String + }, firstMention: { required: false, type: Boolean, @@ -21,29 +28,32 @@ const MentionLink = { }, methods: { onClick () { - const link = generateProfileLink(this.user.id, this.user.screen_name) + const link = generateProfileLink( + this.userId || this.user.id, + this.userScreenName || this.user.screen_name + ) this.$router.push(link) } }, computed: { user () { - return this.$store.getters.findUserByUrl(this.url) + return this.url && this.$store.getters.findUserByUrl(this.url) }, isYou () { // FIXME why user !== currentUser??? - return this.user.screen_name === this.currentUser.screen_name + return this.user && this.user.screen_name === this.currentUser.screen_name }, userName () { - return this.userNameFullUi.split('@')[0] + return this.user && this.userNameFullUi.split('@')[0] }, userNameFull () { - return this.user.screen_name + return this.user && this.user.screen_name }, userNameFullUi () { - return this.user.screen_name_ui + return this.user && this.user.screen_name_ui }, highlight () { - return this.mergedConfig.highlight[this.user.screen_name] + return this.user && this.mergedConfig.highlight[this.user.screen_name] }, highlightType () { return this.highlight && ('-' + this.highlight.type) diff --git a/src/components/mentions_line/mentions_line.js b/src/components/mentions_line/mentions_line.js index 6f347058..4b20d861 100644 --- a/src/components/mentions_line/mentions_line.js +++ b/src/components/mentions_line/mentions_line.js @@ -6,7 +6,7 @@ const MentionsLine = { props: { attentions: { required: true, - type: Object + type: Array } }, data: () => ({ expanded: false }), diff --git a/src/components/status/status.js b/src/components/status/status.js index 3954df00..eb0af098 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -139,7 +139,10 @@ const Status = { return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name) }, replyProfileLink () { - return this.$store.getters.findUser(this.status.in_reply_to_user_id).statusnet_profile_url + if (this.isReply) { + const user = this.$store.getters.findUser(this.status.in_reply_to_user_id) + return user && user.statusnet_profile_url + } }, retweet () { return !!this.statusoid.retweeted_status }, retweeterUser () { return this.statusoid.user }, diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 969e2bc8..d62c6817 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -262,6 +262,8 @@ class="mention-link" :content="replyToName" :url="replyProfileLink" + :userId="status.in_reply_to_user_id" + :userScreenName="status.in_reply_to_screen_name" :first-mention="false" />