replace el-tooltip with TooltipProvider

This commit is contained in:
pa
2026-01-07 01:43:41 +09:00
committed by Natsumi
parent cfd117fffe
commit 9ae8789d14
46 changed files with 437 additions and 430 deletions

View File

@@ -1,9 +1,9 @@
<template>
<div style="flex: none">
<template v-if="(currentUser.id !== userDialog.ref.id && userDialog.isFriend) || userDialog.isFavorite">
<el-tooltip
<TooltipWrapper
v-if="userDialog.isFavorite"
placement="top"
side="top"
:content="t('dialog.user.actions.unfavorite_tooltip')">
<el-button
type="warning"
@@ -11,15 +11,15 @@
size="large"
circle
@click="userDialogCommand('Add Favorite')"></el-button>
</el-tooltip>
<el-tooltip v-else placement="top" :content="t('dialog.user.actions.favorite_tooltip')">
</TooltipWrapper>
<TooltipWrapper v-else side="top" :content="t('dialog.user.actions.favorite_tooltip')">
<el-button
type="default"
:icon="Star"
size="large"
circle
@click="userDialogCommand('Add Favorite')"></el-button>
</el-tooltip>
</TooltipWrapper>
</template>
<el-dropdown trigger="click" @command="onCommand">
<el-button

View File

@@ -33,14 +33,14 @@
:location="userDialog.$location.tag"
:shortname="userDialog.$location.shortName"
style="margin-left: 5px" />
<el-tooltip placement="top" :content="t('dialog.user.info.refresh_instance_info')"
<TooltipWrapper side="top" :content="t('dialog.user.info.refresh_instance_info')"
><el-button
size="small"
:icon="Refresh"
style="margin-left: 5px"
circle
@click="refreshInstancePlayerCount(userDialog.$location.tag)"></el-button>
</el-tooltip>
</TooltipWrapper>
<LastJoin
:location="userDialog.$location.tag"
:currentlocation="lastLocation.location" />
@@ -158,14 +158,14 @@
:userid="userDialog.id"
:avatartags="userDialog.ref.currentAvatarTags"
style="display: inline-block" />
<el-tooltip
<TooltipWrapper
v-if="
userDialog.ref.profilePicOverride && !userDialog.ref.currentAvatarImageUrl
"
placement="top"
side="top"
:content="t('dialog.user.info.vrcplus_hides_avatar')">
<el-icon><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</div>
@@ -253,7 +253,7 @@
@click="showBioDialog"></el-button>
</div>
<div style="margin-top: 5px" class="flex items-center">
<el-tooltip v-for="(link, index) in userDialog.ref.bioLinks" :key="index">
<TooltipWrapper v-for="(link, index) in userDialog.ref.bioLinks" :key="index">
<template #content>
<span v-text="link"></span>
</template>
@@ -269,7 +269,7 @@
"
@click.stop="openExternalLink(link)"
loading="lazy" />
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</div>
@@ -278,9 +278,9 @@
<div class="detail">
<span class="name">
{{ t('dialog.user.info.last_seen') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span class="extra">{{ formatDateFilter(userDialog.lastSeen, 'long') }}</span>
</div>
@@ -293,18 +293,18 @@
style="display: flex; justify-content: space-between; align-items: center">
<div>
{{ t('dialog.user.info.join_count') }}
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
:content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</div>
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
:content="t('dialog.user.info.open_previous_instance')">
<el-icon style="margin-right: 16px"><MoreFilled /></el-icon>
</el-tooltip>
</TooltipWrapper>
</div>
<span v-if="userDialog.joinCount === 0" class="extra">-</span>
<span v-else class="extra" v-text="userDialog.joinCount"></span>
@@ -315,9 +315,9 @@
<div class="detail">
<span class="name">
{{ t('dialog.user.info.time_together') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-if="userDialog.timeSpent === 0" class="extra">-</span>
<span v-else class="extra">{{ timeToText(userDialog.timeSpent) }}</span>
@@ -325,28 +325,28 @@
</div>
</template>
<template v-else>
<el-tooltip
<TooltipWrapper
:disabled="currentUser.id !== userDialog.id"
placement="top"
side="top"
:content="t('dialog.user.info.open_previous_instance')">
<div class="x-friend-item" @click="showPreviousInstancesUserDialog(userDialog.ref)">
<div class="detail">
<span class="name">
{{ t('dialog.user.info.play_time') }}
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
:content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-if="userDialog.timeSpent === 0" class="extra">-</span>
<span v-else class="extra">{{ timeToText(userDialog.timeSpent) }}</span>
</div>
</div>
</el-tooltip>
</TooltipWrapper>
</template>
<div class="x-friend-item" style="cursor: default">
<el-tooltip :placement="currentUser.id !== userDialog.id ? 'bottom' : 'top'">
<TooltipWrapper :side="currentUser.id !== userDialog.id ? 'bottom' : 'top'">
<template #content>
<span>{{ formatDateFilter(userOnlineForTimestamp(userDialog), 'short') }}</span>
</template>
@@ -355,22 +355,22 @@
v-if="userDialog.ref.state === 'online' && userDialog.ref.$online_for"
class="name">
{{ t('dialog.user.info.online_for') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-else class="name">
{{ t('dialog.user.info.offline_for') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span class="extra">{{ userOnlineFor(userDialog.ref) }}</span>
</div>
</el-tooltip>
</TooltipWrapper>
</div>
<div class="x-friend-item" style="cursor: default">
<el-tooltip :placement="currentUser.id !== userDialog.id ? 'bottom' : 'top'">
<TooltipWrapper :side="currentUser.id !== userDialog.id ? 'bottom' : 'top'">
<template #content>
<span
>{{ t('dialog.user.info.last_login') }}
@@ -389,7 +389,7 @@
}}</span>
<span v-else class="extra">-</span>
</div>
</el-tooltip>
</TooltipWrapper>
</div>
<div class="x-friend-item" style="cursor: default">
<div class="detail">
@@ -398,7 +398,7 @@
</div>
</div>
<div v-if="currentUser.id !== userDialog.id" class="x-friend-item" style="cursor: default">
<el-tooltip placement="top" :disabled="!userDialog.dateFriendedInfo.length">
<TooltipWrapper side="top" :disabled="!userDialog.dateFriendedInfo.length">
<template v-if="userDialog.dateFriendedInfo.length" #content>
<template v-for="ref in userDialog.dateFriendedInfo" :key="ref.type">
<span>{{ ref.type }}: {{ formatDateFilter(ref.created_at, 'long') }}</span
@@ -408,19 +408,19 @@
<div class="detail">
<span v-if="userDialog.unFriended" class="name">
{{ t('dialog.user.info.unfriended') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-else class="name">
{{ t('dialog.user.info.friended') }}
<el-tooltip placement="top" :content="t('dialog.user.info.accuracy_notice')">
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<span class="extra">{{ formatDateFilter(userDialog.dateFriended, 'long') }}</span>
</div>
</el-tooltip>
</TooltipWrapper>
</div>
<template v-if="currentUser.id === userDialog.id">
<div class="x-friend-item" @click="toggleAvatarCopying">
@@ -515,7 +515,7 @@
<span class="name">{{ t('dialog.user.info.id') }}</span>
<span class="extra">
{{ userDialog.id }}
<el-tooltip placement="top" :content="t('dialog.user.info.id_tooltip')">
<TooltipWrapper side="top" :content="t('dialog.user.info.id_tooltip')">
<el-dropdown trigger="click" size="small" style="margin-left: 5px" @click.stop>
<el-button
type="default"
@@ -537,7 +537,7 @@
</el-dropdown-menu>
</template>
</el-dropdown>
</el-tooltip>
</TooltipWrapper>
</span>
</div>
</div>
@@ -799,13 +799,13 @@
<div class="detail">
<span class="name" v-text="group.name"></span>
<span class="extra">
<el-tooltip
<TooltipWrapper
v-if="group.isRepresenting"
placement="top"
side="top"
:content="t('dialog.group.members.representing')">
<el-icon style="margin-right: 5px"><CollectionTag /></el-icon>
</el-tooltip>
<el-tooltip v-if="group.myMember?.visibility !== 'visible'" placement="top">
</TooltipWrapper>
<TooltipWrapper v-if="group.myMember?.visibility !== 'visible'" side="top">
<template #content>
<span
>{{ t('dialog.group.members.visibility') }}
@@ -813,7 +813,7 @@
>
</template>
<el-icon style="margin-right: 5px"><View /></el-icon>
</el-tooltip>
</TooltipWrapper>
<span>({{ group.memberCount }})</span>
</span>
</div>
@@ -875,8 +875,8 @@
{{ t('dialog.group.tags.unsubscribed') }}</span
>
</el-button> -->
<el-tooltip
placement="right"
<TooltipWrapper
side="right"
:content="t('dialog.user.groups.leave_group_tooltip')">
<el-button
v-if="shiftHeld"
@@ -894,7 +894,7 @@
style="margin-left: 5px"
@click.stop="leaveGroupPrompt(group.id)">
</el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>
@@ -922,13 +922,13 @@
<div class="detail">
<span class="name" v-text="group.name"></span>
<span class="extra">
<el-tooltip
<TooltipWrapper
v-if="group.isRepresenting"
placement="top"
side="top"
:content="t('dialog.group.members.representing')">
<el-icon style="margin-right: 5px"><CollectionTag /></el-icon>
</el-tooltip>
<el-tooltip v-if="group.memberVisibility !== 'visible'" placement="top">
</TooltipWrapper>
<TooltipWrapper v-if="group.memberVisibility !== 'visible'" side="top">
<template #content>
<span
>{{ t('dialog.group.members.visibility') }}
@@ -936,7 +936,7 @@
>
</template>
<el-icon style="margin-right: 5px"><View /></el-icon>
</el-tooltip>
</TooltipWrapper>
<span>({{ group.memberCount }})</span>
</span>
</div>
@@ -965,13 +965,13 @@
<div class="detail">
<span class="name" v-text="group.name"></span>
<span class="extra">
<el-tooltip
<TooltipWrapper
v-if="group.isRepresenting"
placement="top"
side="top"
:content="t('dialog.group.members.representing')">
<el-icon style="margin-right: 5px"><CollectionTag /></el-icon>
</el-tooltip>
<el-tooltip v-if="group.memberVisibility !== 'visible'" placement="top">
</TooltipWrapper>
<TooltipWrapper v-if="group.memberVisibility !== 'visible'" side="top">
<template #content>
<span
>{{ t('dialog.group.members.visibility') }}
@@ -979,7 +979,7 @@
>
</template>
<el-icon style="margin-right: 5px"><View /></el-icon>
</el-tooltip>
</TooltipWrapper>
<span>({{ group.memberCount }})</span>
</span>
</div>
@@ -1016,13 +1016,13 @@
<div class="detail">
<span class="name" v-text="group.name"></span>
<span class="extra">
<el-tooltip
<TooltipWrapper
v-if="group.isRepresenting"
placement="top"
side="top"
:content="t('dialog.group.members.representing')">
<el-icon style="margin-right: 5px"><CollectionTag /></el-icon>
</el-tooltip>
<el-tooltip v-if="group.memberVisibility !== 'visible'" placement="top">
</TooltipWrapper>
<TooltipWrapper v-if="group.memberVisibility !== 'visible'" side="top">
<template #content>
<span
>{{ t('dialog.group.members.visibility') }}
@@ -1030,7 +1030,7 @@
>
</template>
<el-icon style="margin-right: 5px"><View /></el-icon>
</el-tooltip>
</TooltipWrapper>
<span>({{ group.memberCount }})</span>
</span>
</div>

View File

@@ -20,14 +20,14 @@
<div style="flex: 1; display: flex; align-items: center; margin-left: 15px">
<div style="flex: 1">
<div>
<el-tooltip v-if="userDialog.ref.status" placement="top">
<TooltipWrapper v-if="userDialog.ref.status" side="top">
<template #content>
<span>{{ getUserStateText(userDialog.ref) }}</span>
</template>
<i class="x-user-status" :class="userStatusClass(userDialog.ref)"></i>
</el-tooltip>
</TooltipWrapper>
<template v-if="userDialog.previousDisplayNames.length > 0">
<el-tooltip placement="bottom">
<TooltipWrapper side="bottom">
<template #content>
<span>{{ t('dialog.user.previous_display_names') }}</span>
<div
@@ -41,20 +41,20 @@
</div>
</template>
<el-icon><CaretBottom /></el-icon>
</el-tooltip>
</TooltipWrapper>
</template>
<span
class="dialog-title"
style="margin-left: 5px; margin-right: 5px; cursor: pointer"
v-text="userDialog.ref.displayName"
@click="copyUserDisplayName(userDialog.ref.displayName)"></span>
<el-tooltip v-if="userDialog.ref.pronouns" placement="top" :content="t('dialog.user.pronouns')">
<TooltipWrapper v-if="userDialog.ref.pronouns" side="top" :content="t('dialog.user.pronouns')">
<span
class="x-grey"
style="margin-right: 5px; font-family: monospace; font-size: 12px"
v-text="userDialog.ref.pronouns"></span>
</el-tooltip>
<el-tooltip v-for="item in userDialog.ref.$languages" :key="item.key" placement="top">
</TooltipWrapper>
<TooltipWrapper v-for="item in userDialog.ref.$languages" :key="item.key" side="top">
<template #content>
<span>{{ item.value }} ({{ item.key }})</span>
</template>
@@ -62,7 +62,7 @@
class="flags"
:class="languageClass(item.key)"
style="display: inline-block; margin-right: 5px"></span>
</el-tooltip>
</TooltipWrapper>
<template v-if="userDialog.ref.id === currentUser.id">
<br />
<span
@@ -73,7 +73,7 @@
</template>
</div>
<div style="margin-top: 5px" v-show="!userDialog.loading">
<el-tooltip placement="top" :content="t('dialog.user.tags.trust_level')">
<TooltipWrapper side="top" :content="t('dialog.user.tags.trust_level')">
<el-tag
type="info"
effect="plain"
@@ -83,10 +83,10 @@
style="margin-right: 5px; margin-top: 5px">
<i class="ri-shield-line"></i> {{ userDialog.ref.$trustLevel }}
</el-tag>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.ref.ageVerified && userDialog.ref.ageVerificationStatus"
placement="top"
side="top"
:content="t('dialog.user.tags.age_verified')">
<el-tag
type="info"
@@ -101,10 +101,10 @@
<i class="ri-info-card-line"></i>
</template>
</el-tag>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.isFriend && userDialog.friend"
placement="top"
side="top"
:content="t('dialog.user.tags.friend_number')">
<el-tag
type="info"
@@ -115,10 +115,10 @@
<i class="ri-user-add-line"></i>
{{ userDialog.ref.$friendNumber ? userDialog.ref.$friendNumber : '' }}
</el-tag>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.mutualFriendCount"
placement="top"
side="top"
:content="t('dialog.user.tags.mutual_friends')">
<el-tag
type="info"
@@ -129,7 +129,7 @@
<i class="ri-group-line"></i>
{{ userDialog.mutualFriendCount }}
</el-tag>
</el-tooltip>
</TooltipWrapper>
<el-tag
v-if="userDialog.ref.$isTroll"
type="info"
@@ -158,7 +158,7 @@
{{ t('dialog.user.tags.vrchat_team') }}
</el-tag>
<el-tooltip v-if="userDialog.ref.$platform === 'standalonewindows'" placement="top" content="PC">
<TooltipWrapper v-if="userDialog.ref.$platform === 'standalonewindows'" side="top" content="PC">
<el-tag
type="info"
effect="plain"
@@ -167,8 +167,8 @@
style="margin-right: 5px; margin-top: 5px">
<i class="ri-computer-line"></i>
</el-tag>
</el-tooltip>
<el-tooltip v-else-if="userDialog.ref.$platform === 'android'" placement="top" content="Android">
</TooltipWrapper>
<TooltipWrapper v-else-if="userDialog.ref.$platform === 'android'" side="top" content="Android">
<el-tag
type="info"
effect="plain"
@@ -177,8 +177,8 @@
style="margin-right: 5px; margin-top: 5px">
<i class="ri-android-line"></i>
</el-tag>
</el-tooltip>
<el-tooltip v-else-if="userDialog.ref.$platform === 'ios'" placement="top" content="iOS">
</TooltipWrapper>
<TooltipWrapper v-else-if="userDialog.ref.$platform === 'ios'" side="top" content="iOS">
<el-tag
type="info"
effect="plain"
@@ -187,7 +187,7 @@
style="margin-right: 5px; margin-top: 5px"
><i class="ri-apple-line"></i
></el-tag>
</el-tooltip>
</TooltipWrapper>
<el-tag
v-else-if="userDialog.ref.$platform"
type="info"
@@ -212,7 +212,7 @@
>{{ userDialog.ref.$customTag }}</el-tag
>
<br />
<el-tooltip v-for="badge in userDialog.ref.badges" :key="badge.badgeId" placement="top">
<TooltipWrapper v-for="badge in userDialog.ref.badges" :key="badge.badgeId" side="top">
<template #content>
<span>{{ badge.badgeName }}</span>
<span v-if="badge.hidden">&nbsp;(Hidden)</span>
@@ -269,7 +269,7 @@
</div>
</el-popover>
</div>
</el-tooltip>
</TooltipWrapper>
</div>
<div style="margin-top: 5px">
<span style="font-size: 12px" v-text="userDialog.ref.statusDescription"></span>