Merge branch 'develop' of https://github.com/syuilo/misskey into develop
This commit is contained in:
		| @@ -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,72 +22,95 @@ export default Vue.extend({ | ||||
| 	}, | ||||
| 	computed: { | ||||
| 		items(): any[] { | ||||
| 			return [{ | ||||
| 				icon: 'at', | ||||
| 				text: this.$t('mention'), | ||||
| 				action: this.mention | ||||
| 			}, null, { | ||||
| 				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, | ||||
| 			null, | ||||
| 			this.isFavorited ? { | ||||
| 				icon: 'star', | ||||
| 				text: this.$t('unfavorite'), | ||||
| 				action: () => this.toggleFavorite(false) | ||||
| 			} : { | ||||
| 				icon: 'star', | ||||
| 				text: this.$t('favorite'), | ||||
| 				action: () => this.toggleFavorite(true) | ||||
| 			}, | ||||
| 			this.note.userId != this.$store.state.i.id ? this.isWatching ? { | ||||
| 				icon: faEyeSlash, | ||||
| 				text: this.$t('unwatch'), | ||||
| 				action: () => this.toggleWatch(false) | ||||
| 			} : { | ||||
| 				icon: faEye, | ||||
| 				text: this.$t('watch'), | ||||
| 				action: () => this.toggleWatch(true) | ||||
| 			} : undefined, | ||||
| 			this.note.userId == this.$store.state.i.id ? (this.$store.state.i.pinnedNoteIds || []).includes(this.note.id) ? { | ||||
| 				icon: 'thumbtack', | ||||
| 				text: this.$t('unpin'), | ||||
| 				action: () => this.togglePin(false) | ||||
| 			} : { | ||||
| 				icon: 'thumbtack', | ||||
| 				text: this.$t('pin'), | ||||
| 				action: () => this.togglePin(true) | ||||
| 			} : undefined, | ||||
| 			...(this.note.userId == this.$store.state.i.id || this.$store.state.i.isAdmin || this.$store.state.i.isModerator ? [ | ||||
| 				null, | ||||
| 				this.note.userId == this.$store.state.i.id ? { | ||||
| 					icon: 'undo-alt', | ||||
| 					text: this.$t('delete-and-edit'), | ||||
| 					action: this.deleteAndEdit | ||||
| 			if (this.$store.getters.isSignedIn) { | ||||
| 				return [{ | ||||
| 					icon: 'at', | ||||
| 					text: this.$t('mention'), | ||||
| 					action: this.mention | ||||
| 				}, null, { | ||||
| 					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, | ||||
| 				{ | ||||
| 					icon: ['far', 'trash-alt'], | ||||
| 					text: this.$t('delete'), | ||||
| 					action: this.del | ||||
| 				}] | ||||
| 				: [] | ||||
| 			)] | ||||
| 			.filter(x => x !== undefined) | ||||
| 				null, | ||||
| 				this.isFavorited ? { | ||||
| 					icon: 'star', | ||||
| 					text: this.$t('unfavorite'), | ||||
| 					action: () => this.toggleFavorite(false) | ||||
| 				} : { | ||||
| 					icon: 'star', | ||||
| 					text: this.$t('favorite'), | ||||
| 					action: () => this.toggleFavorite(true) | ||||
| 				}, | ||||
| 				this.note.userId != this.$store.state.i.id ? this.isWatching ? { | ||||
| 					icon: faEyeSlash, | ||||
| 					text: this.$t('unwatch'), | ||||
| 					action: () => this.toggleWatch(false) | ||||
| 				} : { | ||||
| 					icon: faEye, | ||||
| 					text: this.$t('watch'), | ||||
| 					action: () => this.toggleWatch(true) | ||||
| 				} : undefined, | ||||
| 				this.note.userId == this.$store.state.i.id ? (this.$store.state.i.pinnedNoteIds || []).includes(this.note.id) ? { | ||||
| 					icon: 'thumbtack', | ||||
| 					text: this.$t('unpin'), | ||||
| 					action: () => this.togglePin(false) | ||||
| 				} : { | ||||
| 					icon: 'thumbtack', | ||||
| 					text: this.$t('pin'), | ||||
| 					action: () => this.togglePin(true) | ||||
| 				} : undefined, | ||||
| 				...(this.note.userId == this.$store.state.i.id || this.$store.state.i.isAdmin || this.$store.state.i.isModerator ? [ | ||||
| 					null, | ||||
| 					this.note.userId == this.$store.state.i.id ? { | ||||
| 						icon: 'undo-alt', | ||||
| 						text: this.$t('delete-and-edit'), | ||||
| 						action: this.deleteAndEdit | ||||
| 					} : undefined, | ||||
| 					{ | ||||
| 						icon: ['far', 'trash-alt'], | ||||
| 						text: this.$t('delete'), | ||||
| 						action: this.del | ||||
| 					}] | ||||
| 					: [] | ||||
| 				)] | ||||
| 				.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); | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo