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: "ユーザーを検索" | ||||
| reply: "返信" | ||||
| loadMore: "もっと見る" | ||||
| showMore: "もっと見る" | ||||
| youGotNewFollower: "フォローされました" | ||||
| receiveFollowRequest: "フォローリクエストされました" | ||||
| followRequestAccepted: "フォローが承認されました" | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ | |||
| 					<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"/> | ||||
| 				</p> | ||||
| 				<div class="content" v-show="appearNote.cw == null || showContent"> | ||||
| 				<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> | ||||
| 					<div class="text"> | ||||
| 						<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> | ||||
|  | @ -59,6 +59,9 @@ | |||
| 					<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"/> | ||||
| 					<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> | ||||
| 				<MkA v-if="appearNote.channel && !inChannel" class="channel" :to="`/channels/${appearNote.channel.id}`"><Fa :icon="faSatelliteDish"/> {{ appearNote.channel.name }}</MkA> | ||||
| 			</div> | ||||
|  | @ -174,6 +177,7 @@ export default defineComponent({ | |||
| 			conversation: [], | ||||
| 			replies: [], | ||||
| 			showContent: false, | ||||
| 			collapsed: false, | ||||
| 			isDeleted: false, | ||||
| 			muted: false, | ||||
| 			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.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 | ||||
| 		if (noteViewInterruptors.length > 0) { | ||||
| 			let result = this.note; | ||||
|  | @ -282,8 +292,6 @@ export default defineComponent({ | |||
| 			this.$emit('update:note', Object.freeze(result)); | ||||
| 		} | ||||
| 
 | ||||
| 		this.muted = await checkWordMute(this.appearNote, this.$i, this.$store.state.mutedWords); | ||||
| 
 | ||||
| 		if (this.detail) { | ||||
| 			os.api('notes/children', { | ||||
| 				noteId: this.appearNote.id, | ||||
|  | @ -1038,6 +1046,37 @@ export default defineComponent({ | |||
| 				} | ||||
| 
 | ||||
| 				> .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 { | ||||
| 						overflow-wrap: break-word; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue