1
0
forked from mirror/misskey
This commit is contained in:
syuilo 2020-02-16 21:10:52 +09:00
parent 518bc92673
commit 02ac30c0d0
2 changed files with 11 additions and 2 deletions

View File

@ -58,7 +58,7 @@
<template v-else><fa :icon="faReply"/></template> <template v-else><fa :icon="faReply"/></template>
<p class="count" v-if="appearNote.repliesCount > 0">{{ appearNote.repliesCount }}</p> <p class="count" v-if="appearNote.repliesCount > 0">{{ appearNote.repliesCount }}</p>
</button> </button>
<button v-if="['public', 'home'].includes(appearNote.visibility)" @click="renote()" class="button _button" ref="renoteButton"> <button v-if="canRenote" @click="renote()" class="button _button" ref="renoteButton">
<fa :icon="faRetweet"/><p class="count" v-if="appearNote.renoteCount > 0">{{ appearNote.renoteCount }}</p> <fa :icon="faRetweet"/><p class="count" v-if="appearNote.renoteCount > 0">{{ appearNote.renoteCount }}</p>
</button> </button>
<button v-else class="button _button"> <button v-else class="button _button">
@ -190,6 +190,10 @@ export default Vue.extend({
return this.$store.getters.isSignedIn && (this.$store.state.i.id === this.appearNote.userId); return this.$store.getters.isSignedIn && (this.$store.state.i.id === this.appearNote.userId);
}, },
canRenote(): boolean {
return ['public', 'home'].includes(this.appearNote.visibility) || this.isMyNote;
},
reactionsCount(): number { reactionsCount(): number {
return this.appearNote.reactions return this.appearNote.reactions
? sum(Object.values(this.appearNote.reactions)) ? sum(Object.values(this.appearNote.reactions))

View File

@ -117,7 +117,7 @@ export default async (user: User, data: Option, silent = false) => new Promise<N
} }
// Renote対象が「ホームまたは全体」以外の公開範囲ならreject // Renote対象が「ホームまたは全体」以外の公開範囲ならreject
if (data.renote && data.renote.visibility != 'public' && data.renote.visibility != 'home') { if (data.renote && data.renote.visibility != 'public' && data.renote.visibility != 'home' && data.renote.userId !== user.id) {
return rej('Renote target is not public or home'); return rej('Renote target is not public or home');
} }
@ -126,6 +126,11 @@ export default async (user: User, data: Option, silent = false) => new Promise<N
data.visibility = 'home'; data.visibility = 'home';
} }
// Renote対象がfollowersならfollowersにする
if (data.renote && data.renote.visibility === 'followers') {
data.visibility = 'followers';
}
// 返信対象がpublicではないならhomeにする // 返信対象がpublicではないならhomeにする
if (data.reply && data.reply.visibility != 'public' && data.visibility == 'public') { if (data.reply && data.reply.visibility != 'public' && data.visibility == 'public') {
data.visibility = 'home'; data.visibility = 'home';