Resolve #3620
This commit is contained in:
		
							parent
							
								
									87847c6ed5
								
							
						
					
					
						commit
						360c820b9d
					
				
					 2 changed files with 43 additions and 3 deletions
				
			
		|  | @ -49,6 +49,7 @@ copyUsername: "ユーザー名をコピー" | ||||||
| searchUser: "ユーザーを検索" | searchUser: "ユーザーを検索" | ||||||
| reply: "返信" | reply: "返信" | ||||||
| loadMore: "もっと見る" | loadMore: "もっと見る" | ||||||
|  | showMore: "もっと見る" | ||||||
| youGotNewFollower: "フォローされました" | youGotNewFollower: "フォローされました" | ||||||
| receiveFollowRequest: "フォローリクエストされました" | receiveFollowRequest: "フォローリクエストされました" | ||||||
| followRequestAccepted: "フォローが承認されました" | followRequestAccepted: "フォローが承認されました" | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ | ||||||
| 					<Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> | 					<Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> | ||||||
| 					<XCwButton v-model:value="showContent" :note="appearNote"/> | 					<XCwButton v-model:value="showContent" :note="appearNote"/> | ||||||
| 				</p> | 				</p> | ||||||
| 				<div class="content" v-show="appearNote.cw == null || showContent"> | 				<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> | ||||||
| 					<div class="text"> | 					<div class="text"> | ||||||
| 						<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $ts.private }})</span> | 						<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $ts.private }})</span> | ||||||
| 						<MkA class="reply" v-if="appearNote.replyId" :to="`/notes/${appearNote.replyId}`"><Fa :icon="faReply"/></MkA> | 						<MkA class="reply" v-if="appearNote.replyId" :to="`/notes/${appearNote.replyId}`"><Fa :icon="faReply"/></MkA> | ||||||
|  | @ -59,6 +59,9 @@ | ||||||
| 					<XPoll v-if="appearNote.poll" :note="appearNote" ref="pollViewer" class="poll"/> | 					<XPoll v-if="appearNote.poll" :note="appearNote" ref="pollViewer" class="poll"/> | ||||||
| 					<MkUrlPreview v-for="url in urls" :url="url" :key="url" :compact="true" :detail="detail" class="url-preview"/> | 					<MkUrlPreview v-for="url in urls" :url="url" :key="url" :compact="true" :detail="detail" class="url-preview"/> | ||||||
| 					<div class="renote" v-if="appearNote.renote"><XNotePreview :note="appearNote.renote"/></div> | 					<div class="renote" v-if="appearNote.renote"><XNotePreview :note="appearNote.renote"/></div> | ||||||
|  | 					<button v-if="collapsed" class="fade _button" @click="collapsed = false"> | ||||||
|  | 						<span>{{ $ts.showMore }}</span> | ||||||
|  | 					</button> | ||||||
| 				</div> | 				</div> | ||||||
| 				<MkA v-if="appearNote.channel && !inChannel" class="channel" :to="`/channels/${appearNote.channel.id}`"><Fa :icon="faSatelliteDish"/> {{ appearNote.channel.name }}</MkA> | 				<MkA v-if="appearNote.channel && !inChannel" class="channel" :to="`/channels/${appearNote.channel.id}`"><Fa :icon="faSatelliteDish"/> {{ appearNote.channel.name }}</MkA> | ||||||
| 			</div> | 			</div> | ||||||
|  | @ -174,6 +177,7 @@ export default defineComponent({ | ||||||
| 			conversation: [], | 			conversation: [], | ||||||
| 			replies: [], | 			replies: [], | ||||||
| 			showContent: false, | 			showContent: false, | ||||||
|  | 			collapsed: false, | ||||||
| 			isDeleted: false, | 			isDeleted: false, | ||||||
| 			muted: false, | 			muted: false, | ||||||
| 			faEdit, faBolt, faTimes, faBullhorn, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan, faBiohazard, faPlug, faSatelliteDish | 			faEdit, faBolt, faTimes, faBullhorn, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan, faBiohazard, faPlug, faSatelliteDish | ||||||
|  | @ -273,6 +277,12 @@ export default defineComponent({ | ||||||
| 			this.connection = os.stream; | 			this.connection = os.stream; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		this.collapsed = this.appearNote.text && ( | ||||||
|  | 			(this.appearNote.text.split('\n').length > 8) || | ||||||
|  | 			(this.appearNote.text.length > 300) | ||||||
|  | 		); | ||||||
|  | 		this.muted = await checkWordMute(this.appearNote, this.$i, this.$store.state.mutedWords); | ||||||
|  | 
 | ||||||
| 		// plugin | 		// plugin | ||||||
| 		if (noteViewInterruptors.length > 0) { | 		if (noteViewInterruptors.length > 0) { | ||||||
| 			let result = this.note; | 			let result = this.note; | ||||||
|  | @ -282,8 +292,6 @@ export default defineComponent({ | ||||||
| 			this.$emit('update:note', Object.freeze(result)); | 			this.$emit('update:note', Object.freeze(result)); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		this.muted = await checkWordMute(this.appearNote, this.$i, this.$store.state.mutedWords); |  | ||||||
| 
 |  | ||||||
| 		if (this.detail) { | 		if (this.detail) { | ||||||
| 			os.api('notes/children', { | 			os.api('notes/children', { | ||||||
| 				noteId: this.appearNote.id, | 				noteId: this.appearNote.id, | ||||||
|  | @ -1038,6 +1046,37 @@ export default defineComponent({ | ||||||
| 				} | 				} | ||||||
| 
 | 
 | ||||||
| 				> .content { | 				> .content { | ||||||
|  | 					&.collapsed { | ||||||
|  | 						position: relative; | ||||||
|  | 						max-height: 9em; | ||||||
|  | 						overflow: hidden; | ||||||
|  | 
 | ||||||
|  | 						> .fade { | ||||||
|  | 							display: block; | ||||||
|  | 							position: absolute; | ||||||
|  | 							bottom: 0; | ||||||
|  | 							left: 0; | ||||||
|  | 							width: 100%; | ||||||
|  | 							height: 64px; | ||||||
|  | 							background: linear-gradient(0deg, var(--panel), var(--X15)); | ||||||
|  | 
 | ||||||
|  | 							> span { | ||||||
|  | 								display: inline-block; | ||||||
|  | 								background: var(--panel); | ||||||
|  | 								padding: 6px 10px; | ||||||
|  | 								font-size: 0.8em; | ||||||
|  | 								border-radius: 999px; | ||||||
|  | 								box-shadow: 0 2px 6px rgb(0 0 0 / 20%); | ||||||
|  | 							} | ||||||
|  | 
 | ||||||
|  | 							&:hover { | ||||||
|  | 								> span { | ||||||
|  | 									background: var(--panelHighlight); | ||||||
|  | 								} | ||||||
|  | 							} | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 
 | ||||||
| 					> .text { | 					> .text { | ||||||
| 						overflow-wrap: break-word; | 						overflow-wrap: break-word; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue