enhance(backend): notify new login (#14673)
* wip * Update CHANGELOG.md * wip * fix * Update index.d.ts * Update SigninService.ts * Update MkNotification.vue
This commit is contained in:
		| @@ -7,13 +7,12 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| <div :class="$style.root"> | ||||
| 	<div :class="$style.head"> | ||||
| 		<MkAvatar v-if="['pollEnded', 'note'].includes(notification.type) && 'note' in notification" :class="$style.icon" :user="notification.note.user" link preview/> | ||||
| 		<MkAvatar v-else-if="['roleAssigned', 'achievementEarned'].includes(notification.type)" :class="$style.icon" :user="$i" link preview/> | ||||
| 		<MkAvatar v-else-if="['roleAssigned', 'achievementEarned', 'exportCompleted', 'login'].includes(notification.type)" :class="$style.icon" :user="$i" link preview/> | ||||
| 		<div v-else-if="notification.type === 'reaction:grouped' && notification.note.reactionAcceptance === 'likeOnly'" :class="[$style.icon, $style.icon_reactionGroupHeart]"><i class="ti ti-heart" style="line-height: 1;"></i></div> | ||||
| 		<div v-else-if="notification.type === 'reaction:grouped'" :class="[$style.icon, $style.icon_reactionGroup]"><i class="ti ti-plus" style="line-height: 1;"></i></div> | ||||
| 		<div v-else-if="notification.type === 'renote:grouped'" :class="[$style.icon, $style.icon_renoteGroup]"><i class="ti ti-repeat" style="line-height: 1;"></i></div> | ||||
| 		<img v-else-if="notification.type === 'test'" :class="$style.icon" :src="infoImageUrl"/> | ||||
| 		<MkAvatar v-else-if="'user' in notification" :class="$style.icon" :user="notification.user" link preview/> | ||||
| 		<MkAvatar v-else-if="notification.type === 'exportCompleted'" :class="$style.icon" :user="$i" link preview/> | ||||
| 		<img v-else-if="'icon' in notification && notification.icon != null" :class="[$style.icon, $style.icon_app]" :src="notification.icon" alt=""/> | ||||
| 		<div | ||||
| 			:class="[$style.subIcon, { | ||||
| @@ -27,6 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| 				[$style.t_pollEnded]: notification.type === 'pollEnded', | ||||
| 				[$style.t_achievementEarned]: notification.type === 'achievementEarned', | ||||
| 				[$style.t_exportCompleted]: notification.type === 'exportCompleted', | ||||
| 				[$style.t_login]: notification.type === 'login', | ||||
| 				[$style.t_roleAssigned]: notification.type === 'roleAssigned' && notification.role.iconUrl == null, | ||||
| 			}]" | ||||
| 		> | ||||
| @@ -40,6 +40,7 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| 			<i v-else-if="notification.type === 'pollEnded'" class="ti ti-chart-arrows"></i> | ||||
| 			<i v-else-if="notification.type === 'achievementEarned'" class="ti ti-medal"></i> | ||||
| 			<i v-else-if="notification.type === 'exportCompleted'" class="ti ti-archive"></i> | ||||
| 			<i v-else-if="notification.type === 'login'" class="ti ti-login-2"></i> | ||||
| 			<template v-else-if="notification.type === 'roleAssigned'"> | ||||
| 				<img v-if="notification.role.iconUrl" style="height: 1.3em; vertical-align: -22%;" :src="notification.role.iconUrl" alt=""/> | ||||
| 				<i v-else class="ti ti-badges"></i> | ||||
| @@ -59,6 +60,7 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||
| 			<span v-else-if="notification.type === 'note'">{{ i18n.ts._notification.newNote }}: <MkUserName :user="notification.note.user"/></span> | ||||
| 			<span v-else-if="notification.type === 'roleAssigned'">{{ i18n.ts._notification.roleAssigned }}</span> | ||||
| 			<span v-else-if="notification.type === 'achievementEarned'">{{ i18n.ts._notification.achievementEarned }}</span> | ||||
| 			<span v-else-if="notification.type === 'login'">{{ i18n.ts._notification.login }}</span> | ||||
| 			<span v-else-if="notification.type === 'test'">{{ i18n.ts._notification.testNotification }}</span> | ||||
| 			<span v-else-if="notification.type === 'exportCompleted'">{{ i18n.tsx._notification.exportOfXCompleted({ x: exportEntityName[notification.exportedEntity] }) }}</span> | ||||
| 			<MkA v-else-if="notification.type === 'follow' || notification.type === 'mention' || notification.type === 'reply' || notification.type === 'renote' || notification.type === 'quote' || notification.type === 'reaction' || notification.type === 'receiveFollowRequest' || notification.type === 'followRequestAccepted'" v-user-preview="notification.user.id" :class="$style.headerName" :to="userPage(notification.user)"><MkUserName :user="notification.user"/></MkA> | ||||
| @@ -225,6 +227,7 @@ function getActualReactedUsersCount(notification: Misskey.entities.Notification) | ||||
| 	--eventReactionHeart: var(--love); | ||||
| 	--eventReaction: #e99a0b; | ||||
| 	--eventAchievement: #cb9a11; | ||||
| 	--eventLogin: #007aff; | ||||
| 	--eventOther: #88a6b7; | ||||
| } | ||||
|  | ||||
| @@ -346,6 +349,12 @@ function getActualReactedUsersCount(notification: Misskey.entities.Notification) | ||||
| 	pointer-events: none; | ||||
| } | ||||
|  | ||||
| .t_login { | ||||
| 	padding: 3px; | ||||
| 	background: var(--eventLogin); | ||||
| 	pointer-events: none; | ||||
| } | ||||
|  | ||||
| .tail { | ||||
| 	flex: 1; | ||||
| 	min-width: 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo