非ログイン時の警告処理 (#5219)
* Update note-mixin.ts
* Update note-mixin.ts
* ✌️
* Update note-mixin.ts
* Update note-menu.vue
This commit is contained in:
parent
8ec6b2ec11
commit
66409029e7
@ -37,6 +37,7 @@ common:
|
||||
reload-to-apply-the-setting: "この設定を反映するにはページをリロードする必要があります。今すぐリロードしますか?"
|
||||
fetching-as-ap-object: "連合に照会中"
|
||||
unfollow-confirm: "{name}さんをフォロー解除しますか?"
|
||||
signin-required: "ログインしてください"
|
||||
notification-type: "通知の種類"
|
||||
notification-types:
|
||||
all: "すべて"
|
||||
|
@ -3,6 +3,7 @@ import { sum, unique } from '../../../../prelude/array';
|
||||
import shouldMuteNote from './should-mute-note';
|
||||
import MkNoteMenu from '../views/components/note-menu.vue';
|
||||
import MkReactionPicker from '../views/components/reaction-picker.vue';
|
||||
import pleaseLogin from './please-login';
|
||||
|
||||
function focus(el, fn) {
|
||||
const target = fn(el);
|
||||
@ -108,6 +109,7 @@ export default (opts: Opts = {}) => ({
|
||||
|
||||
methods: {
|
||||
reply(viaKeyboard = false) {
|
||||
pleaseLogin(this.$root);
|
||||
this.$root.$post({
|
||||
reply: this.appearNote,
|
||||
animation: !viaKeyboard,
|
||||
@ -118,6 +120,7 @@ export default (opts: Opts = {}) => ({
|
||||
},
|
||||
|
||||
renote(viaKeyboard = false) {
|
||||
pleaseLogin(this.$root);
|
||||
this.$root.$post({
|
||||
renote: this.appearNote,
|
||||
animation: !viaKeyboard,
|
||||
@ -134,6 +137,7 @@ export default (opts: Opts = {}) => ({
|
||||
},
|
||||
|
||||
react(viaKeyboard = false) {
|
||||
pleaseLogin(this.$root);
|
||||
this.blur();
|
||||
this.$root.new(MkReactionPicker, {
|
||||
source: this.$refs.reactButton,
|
||||
@ -159,6 +163,7 @@ export default (opts: Opts = {}) => ({
|
||||
},
|
||||
|
||||
favorite() {
|
||||
pleaseLogin(this.$root);
|
||||
this.$root.api('notes/favorites/create', {
|
||||
noteId: this.appearNote.id
|
||||
}).then(() => {
|
||||
|
10
src/client/app/common/scripts/please-login.ts
Normal file
10
src/client/app/common/scripts/please-login.ts
Normal file
@ -0,0 +1,10 @@
|
||||
export default ($root: any) => {
|
||||
if ($root.$store.getters.isSignedIn) return;
|
||||
|
||||
$root.dialog({
|
||||
title: $root.$t('@.signin-required'),
|
||||
text: null
|
||||
});
|
||||
|
||||
throw new Error('signin required');
|
||||
};
|
@ -22,6 +22,7 @@ export default Vue.extend({
|
||||
},
|
||||
computed: {
|
||||
items(): any[] {
|
||||
if (this.$store.getters.isSignedIn) {
|
||||
return [{
|
||||
icon: 'at',
|
||||
text: this.$t('mention'),
|
||||
@ -87,7 +88,29 @@ export default Vue.extend({
|
||||
}]
|
||||
: []
|
||||
)]
|
||||
.filter(x => x !== undefined)
|
||||
.filter(x => x !== undefined);
|
||||
} else {
|
||||
return [{
|
||||
icon: 'info-circle',
|
||||
text: this.$t('detail'),
|
||||
action: this.detail
|
||||
}, {
|
||||
icon: faCopy,
|
||||
text: this.$t('copy-content'),
|
||||
action: this.copyContent
|
||||
}, {
|
||||
icon: 'link',
|
||||
text: this.$t('copy-link'),
|
||||
action: this.copyLink
|
||||
}, this.note.uri ? {
|
||||
icon: 'external-link-square-alt',
|
||||
text: this.$t('remote'),
|
||||
action: () => {
|
||||
window.open(this.note.uri, '_blank');
|
||||
}
|
||||
} : undefined]
|
||||
.filter(x => x !== undefined);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user