tweak note componsnt
This commit is contained in:
		
							parent
							
								
									4594fb11de
								
							
						
					
					
						commit
						49f3090edd
					
				
					 5 changed files with 29 additions and 59 deletions
				
			
		|  | @ -13,7 +13,7 @@ | |||
| 	<div v-if="appearNote._prId_" class="info"><i class="fas fa-bullhorn"></i> {{ i18n.ts.promotion }}<button class="_textButton hide" @click="readPromo()">{{ i18n.ts.hideThisNote }} <i class="ti ti-x"></i></button></div> | ||||
| 	<div v-if="appearNote._featuredId_" class="info"><i class="ti ti-bolt"></i> {{ i18n.ts.featured }}</div> | ||||
| 	<div v-if="isRenote" class="renote"> | ||||
| 		<MkAvatar class="avatar" :user="note.user"/> | ||||
| 		<MkAvatar v-once class="avatar" :user="note.user"/> | ||||
| 		<i class="ti ti-repeat"></i> | ||||
| 		<I18n :src="i18n.ts.renotedBy" tag="span"> | ||||
| 			<template #user> | ||||
|  | @ -27,11 +27,16 @@ | |||
| 				<i v-if="isMyRenote" class="ti ti-dots dropdownIcon"></i> | ||||
| 				<MkTime :time="note.createdAt"/> | ||||
| 			</button> | ||||
| 			<MkVisibility :note="note"/> | ||||
| 			<span v-if="note.visibility !== 'public'" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility[note.visibility]"> | ||||
| 				<i v-if="note.visibility === 'home'" class="ti ti-home"></i> | ||||
| 				<i v-else-if="note.visibility === 'followers'" class="ti ti-lock-open"></i> | ||||
| 				<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i> | ||||
| 			</span> | ||||
| 			<span v-if="note.localOnly" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility['localOnly']"><i class="ti ti-world-off"></i></span> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<article class="article" @contextmenu.stop="onContextmenu"> | ||||
| 		<MkAvatar class="avatar" :user="appearNote.user"/> | ||||
| 		<MkAvatar v-once class="avatar" :user="appearNote.user"/> | ||||
| 		<div class="main"> | ||||
| 			<MkNoteHeader class="header" :note="appearNote" :mini="true"/> | ||||
| 			<MkInstanceTicker v-if="showTicker" class="ticker" :instance="appearNote.user.instance"/> | ||||
|  | @ -126,7 +131,6 @@ import MkPoll from '@/components/MkPoll.vue'; | |||
| import MkUsersTooltip from '@/components/MkUsersTooltip.vue'; | ||||
| import MkUrlPreview from '@/components/MkUrlPreview.vue'; | ||||
| import MkInstanceTicker from '@/components/MkInstanceTicker.vue'; | ||||
| import MkVisibility from '@/components/MkVisibility.vue'; | ||||
| import { pleaseLogin } from '@/scripts/please-login'; | ||||
| import { focusPrev, focusNext } from '@/scripts/focus'; | ||||
| import { checkWordMute } from '@/scripts/check-word-mute'; | ||||
|  |  | |||
|  | @ -25,7 +25,12 @@ | |||
| 				<i v-if="isMyRenote" class="ti ti-dots dropdownIcon"></i> | ||||
| 				<MkTime :time="note.createdAt"/> | ||||
| 			</button> | ||||
| 			<MkVisibility :note="note"/> | ||||
| 			<span v-if="note.visibility !== 'public'" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility[note.visibility]"> | ||||
| 				<i v-if="note.visibility === 'home'" class="ti ti-home"></i> | ||||
| 				<i v-else-if="note.visibility === 'followers'" class="ti ti-lock-open"></i> | ||||
| 				<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i> | ||||
| 			</span> | ||||
| 			<span v-if="note.localOnly" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility['localOnly']"><i class="ti ti-world-off"></i></span> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<article class="article" @contextmenu.stop="onContextmenu"> | ||||
|  | @ -38,7 +43,12 @@ | |||
| 					</MkA> | ||||
| 					<span v-if="appearNote.user.isBot" class="is-bot">bot</span> | ||||
| 					<div class="info"> | ||||
| 						<MkVisibility :note="appearNote"/> | ||||
| 						<span v-if="appearNote.visibility !== 'public'" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility[appearNote.visibility]"> | ||||
| 							<i v-if="appearNote.visibility === 'home'" class="ti ti-home"></i> | ||||
| 							<i v-else-if="appearNote.visibility === 'followers'" class="ti ti-lock-open"></i> | ||||
| 							<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ti ti-mail"></i> | ||||
| 						</span> | ||||
| 						<span v-if="appearNote.localOnly" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility['localOnly']"><i class="ti ti-world-off"></i></span> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 				<div class="username"><MkAcct :user="appearNote.user"/></div> | ||||
|  | @ -136,7 +146,6 @@ import MkPoll from '@/components/MkPoll.vue'; | |||
| import MkUsersTooltip from '@/components/MkUsersTooltip.vue'; | ||||
| import MkUrlPreview from '@/components/MkUrlPreview.vue'; | ||||
| import MkInstanceTicker from '@/components/MkInstanceTicker.vue'; | ||||
| import MkVisibility from '@/components/MkVisibility.vue'; | ||||
| import { pleaseLogin } from '@/scripts/please-login'; | ||||
| import { checkWordMute } from '@/scripts/check-word-mute'; | ||||
| import { userPage } from '@/filters/user'; | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <header class="kkwtjztg"> | ||||
| 	<MkA v-user-preview="note.user.id" class="name" :to="userPage(note.user)"> | ||||
| 	<MkA v-once v-user-preview="note.user.id" class="name" :to="userPage(note.user)"> | ||||
| 		<MkUserName :user="note.user"/> | ||||
| 	</MkA> | ||||
| 	<div v-if="note.user.isBot" class="is-bot">bot</div> | ||||
|  | @ -9,7 +9,12 @@ | |||
| 		<MkA class="created-at" :to="notePage(note)"> | ||||
| 			<MkTime :time="note.createdAt"/> | ||||
| 		</MkA> | ||||
| 		<MkVisibility :note="note"/> | ||||
| 		<span v-if="note.visibility !== 'public'" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility[note.visibility]"> | ||||
| 			<i v-if="note.visibility === 'home'" class="ti ti-home"></i> | ||||
| 			<i v-else-if="note.visibility === 'followers'" class="ti ti-lock-open"></i> | ||||
| 			<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i> | ||||
| 		</span> | ||||
| 		<span v-if="note.localOnly" style="{ margin-left: 0.5em; }" :title="i18n.ts._visibility['localOnly']"><i class="ti ti-world-off"></i></span> | ||||
| 	</div> | ||||
| </header> | ||||
| </template> | ||||
|  | @ -17,7 +22,7 @@ | |||
| <script lang="ts" setup> | ||||
| import { } from 'vue'; | ||||
| import * as misskey from 'misskey-js'; | ||||
| import MkVisibility from '@/components/MkVisibility.vue'; | ||||
| import { i18n } from '@/i18n'; | ||||
| import { notePage } from '@/filters/note'; | ||||
| import { userPage } from '@/filters/user'; | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| 		<span v-if="note.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span> | ||||
| 		<span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span> | ||||
| 		<MkA v-if="note.replyId" class="reply" :to="`/notes/${note.replyId}`"><i class="ti ti-arrow-back-up"></i></MkA> | ||||
| 		<Mfm v-if="note.text" :text="note.text" :author="note.user" :i="$i"/> | ||||
| 		<Mfm v-if="note.text" v-once :text="note.text" :author="note.user" :i="$i"/> | ||||
| 		<MkA v-if="note.renoteId" class="rp" :to="`/notes/${note.renoteId}`">RN: ...</MkA> | ||||
| 	</div> | ||||
| 	<details v-if="note.files.length > 0"> | ||||
|  |  | |||
|  | @ -1,48 +0,0 @@ | |||
| <template> | ||||
| <span v-if="note.visibility !== 'public'" :class="$style.visibility" :title="i18n.ts._visibility[note.visibility]"> | ||||
| 	<i v-if="note.visibility === 'home'" class="ti ti-home"></i> | ||||
| 	<i v-else-if="note.visibility === 'followers'" class="ti ti-lock-open"></i> | ||||
| 	<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i> | ||||
| </span> | ||||
| <span v-if="note.localOnly" :class="$style.localOnly" :title="i18n.ts._visibility['localOnly']"><i class="ti ti-world-off"></i></span> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts" setup> | ||||
| import { ref } from 'vue'; | ||||
| import XDetails from '@/components/MkUsersTooltip.vue'; | ||||
| import * as os from '@/os'; | ||||
| import { useTooltip } from '@/scripts/use-tooltip'; | ||||
| import { i18n } from '@/i18n'; | ||||
| 
 | ||||
| const props = defineProps<{ | ||||
| 	note: { | ||||
| 		visibility: string; | ||||
| 		localOnly?: boolean; | ||||
| 		visibleUserIds?: string[]; | ||||
| 	}, | ||||
| }>(); | ||||
| 
 | ||||
| const specified = $shallowRef<HTMLElement>(); | ||||
| 
 | ||||
| if (props.note.visibility === 'specified') { | ||||
| 	useTooltip($$(specified), async (showing) => { | ||||
| 		const users = await os.api('users/show', { | ||||
| 			userIds: props.note.visibleUserIds, | ||||
| 			limit: 10, | ||||
| 		}); | ||||
| 
 | ||||
| 		os.popup(XDetails, { | ||||
| 			showing, | ||||
| 			users, | ||||
| 			count: props.note.visibleUserIds.length, | ||||
| 			targetElement: specified, | ||||
| 		}, {}, 'closed'); | ||||
| 	}); | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" module> | ||||
| .visibility, .localOnly { | ||||
| 	margin-left: 0.5em; | ||||
| } | ||||
| </style> | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue