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

@@ -21,9 +21,9 @@
</div>
<div>
<el-tooltip :content="t('view.charts.instance_activity.refresh')" placement="top"
<TooltipWrapper :content="t('view.charts.instance_activity.refresh')" side="top"
><el-button :icon="Refresh" circle style="margin-right: 5px" @click="reloadData"></el-button
></el-tooltip>
></TooltipWrapper>
<el-popover placement="bottom" trigger="click" :width="250">
<div class="settings">
@@ -66,24 +66,24 @@
<template #reference>
<div>
<el-tooltip :content="t('view.charts.instance_activity.settings.header')" placement="top">
<TooltipWrapper :content="t('view.charts.instance_activity.settings.header')" side="top">
<el-button :icon="Setting" style="margin-right: 5px" circle></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</template>
</el-popover>
<el-button-group style="margin-right: 5px">
<el-tooltip :content="t('view.charts.instance_activity.previous_day')" placement="top">
<TooltipWrapper :content="t('view.charts.instance_activity.previous_day')" side="top">
<el-button
:icon="ArrowLeft"
:disabled="isPrevDayBtnDisabled"
@click="changeSelectedDateFromBtn(false)"></el-button>
</el-tooltip>
<el-tooltip :content="t('view.charts.instance_activity.next_day')" placement="top">
</TooltipWrapper>
<TooltipWrapper :content="t('view.charts.instance_activity.next_day')" side="top">
<el-button :disabled="isNextDayBtnDisabled" @click="changeSelectedDateFromBtn(true)"
><el-icon class="el-icon--right"><ArrowRight /></el-icon
></el-button>
</el-tooltip>
</TooltipWrapper>
</el-button-group>
<el-date-picker
v-model="selectedDate"

View File

@@ -2,22 +2,22 @@
<div class="mutual-graph pt-12" ref="mutualGraphRef">
<div class="options-container mutual-graph__toolbar">
<div class="mutual-graph__actions">
<el-tooltip :content="t('view.charts.mutual_friend.force_dialog.open_label')" placement="top">
<TooltipWrapper :content="t('view.charts.mutual_friend.force_dialog.open_label')" side="top">
<el-button circle :icon="Setting" :disabled="!graphReady" @click="openForceDialog"></el-button>
</el-tooltip>
<el-tooltip :content="fetchButtonLabel" placement="top">
</TooltipWrapper>
<TooltipWrapper :content="fetchButtonLabel" side="top">
<el-button type="primary" :disabled="fetchButtonDisabled" :loading="isFetching" @click="startFetch">
{{ fetchButtonLabel }}
</el-button>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="isFetching"
:content="t('view.charts.mutual_friend.actions.stop_fetching')"
placement="top">
side="top">
<el-button type="danger" plain :disabled="status.cancelRequested" @click="cancelFetch">
{{ t('view.charts.mutual_friend.actions.stop') }}
</el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</div>

View File

@@ -66,14 +66,14 @@
<div class="group-section">
<div class="group-section__header">
<span>{{ t('view.favorite.avatars.vrchat_favorites') }}</span>
<el-tooltip placement="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<el-button
:loading="isFavoriteLoading"
size="small"
:icon="Refresh"
circle
@click.stop="handleRefreshFavorites" />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="group-section__list">
<template v-if="favoriteAvatarGroups.length">
@@ -259,7 +259,7 @@
</div>
</template>
<div v-else class="group-empty">No Data</div>
<el-tooltip
<TooltipWrapper
v-if="!isCreatingLocalGroup"
:disabled="isLocalUserVrcPlusSupporter"
:content="t('view.favorite.avatars.local_favorites')">
@@ -273,7 +273,7 @@
<el-icon><Plus /></el-icon>
<span>{{ t('view.favorite.avatars.new_group') }}</span>
</div>
</el-tooltip>
</TooltipWrapper>
<el-input
v-else
ref="newLocalGroupInput"

View File

@@ -68,14 +68,14 @@
<div class="group-section">
<div class="group-section__header">
<span>{{ t('view.favorite.worlds.vrchat_favorites') }}</span>
<el-tooltip placement="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<el-button
:loading="isFavoriteLoading"
size="small"
:icon="Refresh"
circle
@click.stop="handleRefreshFavorites" />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="group-section__list">
<template v-if="favoriteFriendGroups.length">

View File

@@ -68,14 +68,14 @@
<div class="group-section">
<div class="group-section__header">
<span>{{ t('view.favorite.worlds.vrchat_favorites') }}</span>
<el-tooltip placement="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
<el-button
:loading="isFavoriteLoading"
size="small"
:icon="Refresh"
circle
@click.stop="handleRefreshFavorites" />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="group-section__list">
<template v-if="favoriteWorldGroups.length">

View File

@@ -9,18 +9,18 @@
<div class="favorites-search-card__title">
<span class="name">{{ localFavFakeRef.name }}</span>
<span class="favorites-search-card__badges">
<el-tooltip
<TooltipWrapper
v-if="favorite.deleted"
placement="top"
side="top"
:content="t('view.favorite.unavailable_tooltip')">
<i class="ri-error-warning-line"></i>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="!isLocalFavorite && favorite.ref?.releaseStatus === 'private'"
placement="top"
side="top"
:content="t('view.favorite.private')">
<i class="ri-lock-line"></i>
</el-tooltip>
</TooltipWrapper>
</span>
</div>
<span class="extra">{{ localFavFakeRef.authorName }}</span>
@@ -45,8 +45,8 @@
type="avatar" />
</div>
<div class="favorites-search-card__action">
<el-tooltip
placement="left"
<TooltipWrapper
side="left"
:content="
isLocalFavorite
? t('view.favorite.delete_tooltip')
@@ -60,14 +60,14 @@
@click.stop="handlePrimaryDeleteAction">
<i class="ri-delete-bin-line"></i>
</el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>
<template v-else>
<div class="favorites-search-card__action-group">
<div class="favorites-search-card__action" v-if="canSelectAvatar">
<el-tooltip placement="top" :content="t('view.favorite.select_avatar_tooltip')">
<TooltipWrapper side="top" :content="t('view.favorite.select_avatar_tooltip')">
<el-button
:disabled="currentUser.currentAvatar === favorite.id"
size="small"
@@ -75,12 +75,12 @@
circle
class="favorites-search-card__action-btn"
@click.stop="selectAvatarWithConfirmation(favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="favorites-search-card__action">
<el-tooltip
<TooltipWrapper
v-if="showDangerUnfavorite"
placement="bottom"
side="bottom"
:content="t('view.favorite.unfavorite_tooltip')">
<el-button
size="small"
@@ -89,8 +89,8 @@
class="favorites-search-card__action-btn"
type="danger"
@click.stop="handlePrimaryDeleteAction" />
</el-tooltip>
<el-tooltip v-else placement="bottom" :content="t('view.favorite.edit_favorite_tooltip')">
</TooltipWrapper>
<TooltipWrapper v-else side="bottom" :content="t('view.favorite.edit_favorite_tooltip')">
<el-button
type="default"
:icon="Star"
@@ -98,7 +98,7 @@
circle
class="favorites-search-card__action-btn"
@click.stop="showFavoriteDialog('avatar', favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>

View File

@@ -14,7 +14,7 @@
<div class="favorites-search-card__actions">
<div class="favorites-search-card__action-group">
<div class="favorites-search-card__action">
<el-tooltip placement="top" :content="t('view.favorite.select_avatar_tooltip')">
<TooltipWrapper side="top" :content="t('view.favorite.select_avatar_tooltip')">
<el-button
:disabled="currentUser.currentAvatar === favorite.id"
size="small"
@@ -22,10 +22,10 @@
circle
class="favorites-search-card__action-btn"
@click.stop="selectAvatarWithConfirmation(favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="favorites-search-card__action">
<el-tooltip placement="bottom" :content="t('view.favorite.favorite_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.favorite.favorite_tooltip')">
<el-button
type="default"
:icon="favoriteExists ? Star : StarFilled"
@@ -33,7 +33,7 @@
circle
class="favorites-search-card__action-btn"
@click.stop="showFavoriteDialog('avatar', favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</div>

View File

@@ -33,7 +33,7 @@
type="friend" />
</div>
<div class="favorites-search-card__action">
<el-tooltip placement="left" :content="t('view.favorite.unfavorite_tooltip')">
<TooltipWrapper side="left" :content="t('view.favorite.unfavorite_tooltip')">
<el-button
size="small"
circle
@@ -42,20 +42,20 @@
@click.stop="handleDeleteFavorite">
<i class="ri-delete-bin-line"></i>
</el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>
<template v-else>
<div class="favorites-search-card__action">
<el-tooltip placement="right" :content="t('view.favorite.edit_favorite_tooltip')">
<TooltipWrapper side="right" :content="t('view.favorite.edit_favorite_tooltip')">
<el-button
size="small"
:icon="Star"
circle
class="favorites-search-card__action-btn"
@click.stop="showFavoriteDialog('friend', favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
</template>
</div>

View File

@@ -64,19 +64,19 @@
<template v-else>
<div class="favorites-search-card__action-group">
<div class="favorites-search-card__action">
<el-tooltip placement="top" :content="inviteOrLaunchText">
<TooltipWrapper side="top" :content="inviteOrLaunchText">
<el-button
size="small"
:icon="Message"
class="favorites-search-card__action-btn"
@click.stop="newInstanceSelfInvite(favorite.id)"
circle />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="favorites-search-card__action">
<el-tooltip
<TooltipWrapper
v-if="showDangerUnfavorite"
placement="top"
side="top"
:content="t('view.favorite.unfavorite_tooltip')">
<el-button
size="small"
@@ -85,8 +85,8 @@
class="favorites-search-card__action-btn"
type="danger"
@click.stop="handleDeleteFavorite" />
</el-tooltip>
<el-tooltip v-else placement="top" :content="t('view.favorite.edit_favorite_tooltip')">
</TooltipWrapper>
<TooltipWrapper v-else side="top" :content="t('view.favorite.edit_favorite_tooltip')">
<el-button
type="default"
:icon="Star"
@@ -94,7 +94,7 @@
circle
class="favorites-search-card__action-btn"
@click.stop="showFavoriteDialog('world', favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>

View File

@@ -46,19 +46,19 @@
<template v-else>
<div class="favorites-search-card__action-group">
<div class="favorites-search-card__action">
<el-tooltip placement="top" :content="inviteOrLaunchText">
<TooltipWrapper side="top" :content="inviteOrLaunchText">
<el-button
size="small"
:icon="Message"
class="favorites-search-card__action-btn"
@click.stop="newInstanceSelfInvite(favorite.id)"
circle />
</el-tooltip>
</TooltipWrapper>
</div>
<div class="favorites-search-card__action">
<el-tooltip
<TooltipWrapper
v-if="showDangerUnfavorite"
placement="top"
side="top"
:content="t('view.favorite.unfavorite_tooltip')">
<el-button
size="small"
@@ -67,8 +67,8 @@
class="favorites-search-card__action-btn"
type="danger"
@click.stop="handleDeleteFavorite" />
</el-tooltip>
<el-tooltip v-else placement="top" :content="t('view.favorite.edit_favorite_tooltip')">
</TooltipWrapper>
<TooltipWrapper v-else side="top" :content="t('view.favorite.edit_favorite_tooltip')">
<el-button
type="default"
:icon="Star"
@@ -76,7 +76,7 @@
circle
class="favorites-search-card__action-btn"
@click.stop="showFavoriteDialog('world', favorite.id)" />
</el-tooltip>
</TooltipWrapper>
</div>
</div>
</template>

View File

@@ -10,12 +10,12 @@
<template #toolbar>
<div style="margin: 0 0 10px; display: flex; align-items: center">
<div style="flex: none; margin-right: 10px; display: flex; align-items: center">
<el-tooltip placement="bottom" :content="t('view.feed.favorites_only_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.feed.favorites_only_tooltip')">
<el-switch
v-model="feedTable.vip"
active-color="var(--el-color-success)"
@change="feedTableLookup"></el-switch>
</el-tooltip>
</TooltipWrapper>
</div>
<el-select
v-model="feedTable.filter"

View File

@@ -3,12 +3,12 @@
<div>
<div style="display: flex; align-items: center; justify-content: space-between">
<div style="flex: none; margin-right: 10px; display: flex; align-items: center">
<el-tooltip placement="bottom" :content="t('view.friend_list.favorites_only_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.friend_list.favorites_only_tooltip')">
<el-switch
v-model="friendsListSearchFilterVIP"
active-color="var(--el-color-success)"
@change="friendsListSearchChange"></el-switch>
</el-tooltip>
</TooltipWrapper>
<el-select
v-model="friendsListSearchFilters"
multiple
@@ -128,7 +128,7 @@
sortable
:sort-method="(a, b) => sortLanguages(a, b)">
<template #default="{ row }">
<el-tooltip v-for="item in row.$languages" :key="item.key" placement="top">
<TooltipWrapper v-for="item in row.$languages" :key="item.key" side="top">
<template #content>
<span>{{ item.value }} ({{ item.key }})</span>
</template>
@@ -136,13 +136,13 @@
:class="languageClass(item.key)"
style="display: inline-block; margin-right: 5px"
class="flags"></span>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
<el-table-column :label="t('table.friendList.bioLink')" width="130" prop="bioLinks">
<template #default="{ row }">
<div class="flex items-center">
<el-tooltip v-for="(link, index) in row.bioLinks.filter(Boolean)" :key="index">
<TooltipWrapper v-for="(link, index) in row.bioLinks.filter(Boolean)" :key="index">
<template #content>
<span v-text="link"></span>
</template>
@@ -158,7 +158,7 @@
"
@click.stop="openExternalLink(link)"
loading="lazy" />
</el-tooltip>
</TooltipWrapper>
</div>
</template>
</el-table-column>

View File

@@ -12,11 +12,11 @@
<el-popover placement="bottom" trigger="click" :width="350">
<template #reference>
<div>
<el-tooltip :content="t('view.charts.instance_activity.settings.header')" placement="top">
<TooltipWrapper :content="t('view.charts.instance_activity.settings.header')" side="top">
<el-button style="margin-right: 5px" circle
><i class="ri-settings-3-line"></i
></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</template>
<div style="display: flex; justify-content: space-between; align-items: center">

View File

@@ -10,12 +10,12 @@
<template #toolbar>
<div style="margin: 0 0 10px; display: flex; align-items: center">
<div style="flex: none; margin-right: 10px; display: flex; align-items: center">
<el-tooltip placement="bottom" :content="t('view.feed.favorites_only_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.feed.favorites_only_tooltip')">
<el-switch
v-model="gameLogTable.vip"
active-color="var(--el-color-success)"
@change="gameLogTableLookup"></el-switch>
</el-tooltip>
</TooltipWrapper>
</div>
<el-select
v-model="gameLogTable.filter"

View File

@@ -1,9 +1,9 @@
<template>
<div style="float: left; margin: 5px; z-index: 3000">
<el-tooltip v-if="!noUpdater" placement="top" :content="t('view.login.updater')">
<TooltipWrapper v-if="!noUpdater" side="top" :content="t('view.login.updater')">
<el-button type="default" size="small" :icon="Download" circle @click="showVRCXUpdateDialog"></el-button>
</el-tooltip>
<el-tooltip placement="top" :content="t('view.login.proxy_settings')">
</TooltipWrapper>
<TooltipWrapper side="top" :content="t('view.login.proxy_settings')">
<el-button
type="default"
size="small"
@@ -11,7 +11,7 @@
style="margin-left: 5px"
circle
@click="promptProxySettings"></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
<div v-loading="loginForm.loading" class="x-login-container">
<div class="x-login">

View File

@@ -18,14 +18,14 @@
v-model="playerModerationTable.filters[1].value"
:placeholder="t('view.moderation.search_placeholder')"
class="filter-input" />
<el-tooltip placement="bottom" :content="t('view.moderation.refresh_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.moderation.refresh_tooltip')">
<el-button
type="default"
:loading="playerModerationTable.loading"
@click="refreshPlayerModerations()"
:icon="Refresh"
circle />
</el-tooltip>
</TooltipWrapper>
</div>
<DataTableLayout

View File

@@ -48,7 +48,7 @@
clearable
class="flex-[0.4]"
style="margin: 0 10px" />
<el-tooltip placement="bottom" :content="t('view.notification.refresh_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.notification.refresh_tooltip')">
<el-button
type="default"
:loading="isNotificationsLoading"
@@ -56,7 +56,7 @@
circle
style="flex: none"
@click="refreshNotifications()" />
</el-tooltip>
</TooltipWrapper>
</div>
</template>
</DataTableLayout>

View File

@@ -64,7 +64,7 @@
style="margin-right: 5px"
>{{ t('dialog.world.tags.private') }}</el-tag
>
<el-tooltip v-if="currentInstanceWorld.isPC" placement="top" content="PC">
<TooltipWrapper v-if="currentInstanceWorld.isPC" side="top" content="PC">
<el-tag
class="x-tag-platform-pc"
type="info"
@@ -78,8 +78,8 @@
>{{ currentInstanceWorld.bundleSizes['standalonewindows'].fileSize }}</span
>
</el-tag>
</el-tooltip>
<el-tooltip v-if="currentInstanceWorld.isQuest" placement="top" content="Android">
</TooltipWrapper>
<TooltipWrapper v-if="currentInstanceWorld.isQuest" side="top" content="Android">
<el-tag
class="x-tag-platform-quest"
type="info"
@@ -93,8 +93,8 @@
>{{ currentInstanceWorld.bundleSizes['android'].fileSize }}</span
>
</el-tag>
</el-tooltip>
<el-tooltip v-if="currentInstanceWorld.isIos" placement="top" content="iOS">
</TooltipWrapper>
<TooltipWrapper v-if="currentInstanceWorld.isIos" side="top" content="iOS">
<el-tag
class="x-tag-platform-ios"
type="info"
@@ -108,7 +108,7 @@
>{{ currentInstanceWorld.bundleSizes['ios'].fileSize }}</span
>
</el-tag>
</el-tooltip>
</TooltipWrapper>
<el-tag
v-if="currentInstanceWorld.avatarScalingDisabled"
type="warning"
@@ -244,24 +244,24 @@
sortable>
<template #default="scope">
<template v-if="chatboxUserBlacklist.has(scope.row.ref.id)">
<el-tooltip placement="left" content="Unblock chatbox messages">
<TooltipWrapper side="left" content="Unblock chatbox messages">
<el-button
text
:icon="Mute"
size="small"
style="color: red; margin-right: 5px"
@click.stop="deleteChatboxUserBlacklist(scope.row.ref.id)"></el-button>
</el-tooltip>
</TooltipWrapper>
</template>
<template v-else>
<el-tooltip placement="left" content="Block chatbox messages">
<TooltipWrapper side="left" content="Block chatbox messages">
<el-button
text
:icon="Microphone"
size="small"
style="margin-right: 5px"
@click.stop="addChatboxUserBlacklist(scope.row.ref)"></el-button>
</el-tooltip>
</TooltipWrapper>
</template>
<span v-text="scope.row.photonId"></span>
</template>
@@ -275,37 +275,37 @@
:sort-method="sortInstanceIcon">
<template #default="scope">
<span></span>
<el-tooltip v-if="scope.row.isMaster" placement="left" content="Instance Master">
<TooltipWrapper v-if="scope.row.isMaster" side="left" content="Instance Master">
<span>👑</span>
</el-tooltip>
<el-tooltip v-if="scope.row.isModerator" placement="left" content="Moderator">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.isModerator" side="left" content="Moderator">
<span>⚔️</span>
</el-tooltip>
<el-tooltip v-if="scope.row.isFriend" placement="left" content="Friend">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.isFriend" side="left" content="Friend">
<span>💚</span>
</el-tooltip>
<el-tooltip v-if="scope.row.isBlocked" placement="left" content="Blocked">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.isBlocked" side="left" content="Blocked">
<el-icon style="color: red"><CircleClose /></el-icon>
</el-tooltip>
<el-tooltip v-if="scope.row.isMuted" placement="left" content="Muted">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.isMuted" side="left" content="Muted">
<el-icon style="color: var(--el-color-warning)"><Mute /></el-icon>
</el-tooltip>
<el-tooltip
</TooltipWrapper>
<TooltipWrapper
v-if="scope.row.isAvatarInteractionDisabled"
placement="left"
side="left"
content="Avatar Interaction Disabled
">
<el-icon style="color: var(--el-color-warning)"><Pointer /></el-icon>
</el-tooltip>
<el-tooltip v-if="scope.row.isChatBoxMuted" placement="left" content="Chatbox Muted">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.isChatBoxMuted" side="left" content="Chatbox Muted">
<el-icon style="color: var(--el-color-warning)"><ChatLineRound /></el-icon>
</el-tooltip>
<el-tooltip v-if="scope.row.timeoutTime" placement="left" content="Timeout">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.timeoutTime" side="left" content="Timeout">
<span style="color: var(--el-color-danger)">🔴{{ scope.row.timeoutTime }}s</span>
</el-tooltip>
<el-tooltip v-if="scope.row.ageVerified" placement="left" content="18+ Verified">
</TooltipWrapper>
<TooltipWrapper v-if="scope.row.ageVerified" side="left" content="18+ Verified">
<i class="ri-id-card-line"></i>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
<el-table-column :label="t('table.playerList.platform')" prop="inVRMode" width="90">
@@ -341,7 +341,7 @@
</el-table-column>
<el-table-column :label="t('table.playerList.language')" width="100" prop="ref.$languages">
<template #default="scope">
<el-tooltip v-for="item in scope.row.ref.$languages" :key="item.key" placement="top">
<TooltipWrapper v-for="item in scope.row.ref.$languages" :key="item.key" side="top">
<template #content>
<span>{{ item.value }} ({{ item.key }})</span>
</template>
@@ -349,13 +349,13 @@
class="flags"
:class="languageClass(item.key)"
style="display: inline-block; margin-right: 5px"></span>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
<el-table-column :label="t('table.playerList.bioLink')" width="100" prop="ref.bioLinks">
<template #default="scope">
<div style="display: flex; align-items: center">
<el-tooltip
<TooltipWrapper
v-for="(link, index) in scope.row.ref.bioLinks?.filter(Boolean)"
:key="index">
<template #content>
@@ -372,7 +372,7 @@
"
@click.stop="openExternalLink(link)"
loading="lazy" />
</el-tooltip>
</TooltipWrapper>
</div>
</template>
</el-table-column>

View File

@@ -24,25 +24,25 @@
<el-button @click="emitShowChatboxBlacklist">{{
t('view.player_list.photon.chatbox_blacklist')
}}</el-button>
<el-tooltip placement="bottom" :content="t('view.player_list.photon.status_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.player_list.photon.status_tooltip')">
<div style="display: inline-flex; align-items: center; font-size: 14px">
<span v-if="ipcEnabled && !photonEventIcon">🟢</span>
<span v-else-if="ipcEnabled"></span>
<span v-else>🔴</span>
</div>
</el-tooltip>
</TooltipWrapper>
</div>
<el-tabs type="card">
<el-tab-pane :label="t('view.player_list.photon.current')">
<DataTable v-bind="photonEventTable" style="margin-bottom: 10px">
<el-table-column :label="t('table.playerList.date')" prop="created_at" width="130">
<template #default="scope">
<el-tooltip placement="right">
<TooltipWrapper side="right">
<template #content>
<span>{{ formatDateFilter(scope.row.created_at, 'long') }}</span>
</template>
<span>{{ formatDateFilter(scope.row.created_at, 'short') }}</span>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
<el-table-column :label="t('table.playerList.user')" prop="photonId" width="160">
@@ -77,7 +77,7 @@
</template>
<template v-else-if="scope.row.type === 'ChangeStatus'">
<template v-if="scope.row.status !== scope.row.previousStatus">
<el-tooltip placement="top">
<TooltipWrapper side="top">
<template #content>
<span v-if="scope.row.previousStatus === 'active'">{{
t('dialog.user.status.active')
@@ -94,11 +94,11 @@
<span v-else>{{ t('dialog.user.status.offline') }}</span>
</template>
<i class="x-user-status" :class="statusClass(scope.row.previousStatus)"></i>
</el-tooltip>
</TooltipWrapper>
<span>
<el-icon><ArrowRight /></el-icon>
</span>
<el-tooltip placement="top">
<TooltipWrapper side="top">
<template #content>
<span v-if="scope.row.status === 'active'">{{
t('dialog.user.status.active')
@@ -118,7 +118,7 @@
class="x-user-status"
:class="statusClass(scope.row.status)"
style="margin-right: 5px"></i>
</el-tooltip>
</TooltipWrapper>
</template>
<span
v-if="scope.row.statusDescription !== scope.row.previousStatusDescription"
@@ -193,7 +193,7 @@
</span>
<span v-else-if="scope.row.type === 'SpawnEmoji'">
<span v-if="scope.row.imageUrl">
<el-tooltip placement="right">
<TooltipWrapper side="right">
<template #content>
<img
:src="scope.row.imageUrl"
@@ -203,7 +203,7 @@
loading="lazy" />
</template>
<span v-text="scope.row.fileId"></span>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-else v-text="scope.row.text"></span>
</span>
@@ -220,12 +220,12 @@
<DataTable v-bind="photonEventTablePrevious" style="margin-bottom: 10px">
<el-table-column :label="t('table.playerList.date')" prop="created_at" width="130">
<template #default="scope">
<el-tooltip placement="right">
<TooltipWrapper side="right">
<template #content>
<span>{{ formatDateFilter(scope.row.created_at, 'long') }}</span>
</template>
<span>{{ formatDateFilter(scope.row.created_at, 'short') }}</span>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
<el-table-column :label="t('table.playerList.user')" prop="photonId" width="160">
@@ -267,7 +267,7 @@
</template>
<template v-else-if="scope.row.type === 'ChangeStatus'">
<template v-if="scope.row.status !== scope.row.previousStatus">
<el-tooltip placement="top">
<TooltipWrapper side="top">
<template #content>
<span v-if="scope.row.previousStatus === 'active'">{{
t('dialog.user.status.active')
@@ -284,11 +284,11 @@
<span v-else>{{ t('dialog.user.status.offline') }}</span>
</template>
<i class="x-user-status" :class="statusClass(scope.row.previousStatus)"></i>
</el-tooltip>
</TooltipWrapper>
<span>
<el-icon><ArrowRight /></el-icon>
</span>
<el-tooltip placement="top">
<TooltipWrapper side="top">
<template #content>
<span v-if="scope.row.status === 'active'">{{
t('dialog.user.status.active')
@@ -308,7 +308,7 @@
class="x-user-status"
:class="statusClass(scope.row.status)"
style="margin-right: 5px"></i>
</el-tooltip>
</TooltipWrapper>
</template>
<span
v-if="scope.row.statusDescription !== scope.row.previousStatusDescription"
@@ -356,7 +356,7 @@
<span v-else-if="scope.row.type === 'ChatBoxMessage'" v-text="scope.row.text"></span>
<span v-else-if="scope.row.type === 'SpawnEmoji'">
<span v-if="scope.row.imageUrl">
<el-tooltip placement="right">
<TooltipWrapper side="right">
<template #content>
<img
:src="scope.row.imageUrl"
@@ -366,7 +366,7 @@
loading="lazy" />
</template>
<span v-text="scope.row.fileId"></span>
</el-tooltip>
</TooltipWrapper>
</span>
<span v-else v-text="scope.row.text"></span>
</span>

View File

@@ -7,14 +7,14 @@
style="flex: 1"
@input="updateSearchText"
@keyup.enter="search"></el-input>
<el-tooltip placement="bottom" :content="t('view.search.clear_results_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.search.clear_results_tooltip')">
<el-button
type="default"
:icon="Delete"
circle
style="flex: none; margin-left: 10px"
@click="handleClearSearch"></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
<el-tabs ref="searchTabRef" style="margin-top: 15px" @tab-click="searchText = ''">
<el-tab-pane v-loading="isSearchUserLoading" :label="t('view.search.user.header')" style="min-height: 60px">
@@ -155,7 +155,7 @@
</el-dropdown-menu>
</template>
</el-dropdown>
<el-tooltip placement="bottom" :content="t('view.search.avatar.refresh_tooltip')">
<TooltipWrapper side="bottom" :content="t('view.search.avatar.refresh_tooltip')">
<el-button
type="default"
:loading="userDialog.isAvatarsLoading"
@@ -163,7 +163,7 @@
:icon="Refresh"
circle
@click="refreshUserDialogAvatars"></el-button>
</el-tooltip>
</TooltipWrapper>
<span style="font-size: 14px; margin-left: 5px; margin-right: 5px">{{
t('view.search.avatar.result_count', {
count: searchAvatarResults.length

View File

@@ -2,9 +2,9 @@
<div class="simple-switch">
<div class="name" :style="{ width: longLabel ? '300px' : undefined }">
{{ label }}
<el-tooltip v-if="tooltip" placement="top" :content="tooltip"
<TooltipWrapper v-if="tooltip" side="top" :content="tooltip"
><el-icon size="small" class="tooltip"><InfoFilled /></el-icon
></el-tooltip>
></TooltipWrapper>
</div>
<el-switch class="switch" :model-value="value" @change="change" :disabled="disabled"></el-switch>

View File

@@ -338,7 +338,7 @@
<div class="options-container">
<div class="header-bar">
<span class="header">{{ t('view.profile.config_json') }}</span>
<el-tooltip placement="top" :content="t('view.profile.refresh_tooltip')">
<TooltipWrapper side="top" :content="t('view.profile.refresh_tooltip')">
<el-button
type="default"
size="small"
@@ -346,8 +346,8 @@
circle
style="margin-left: 5px"
@click="refreshConfigTreeData()"></el-button>
</el-tooltip>
<el-tooltip placement="top" :content="t('view.profile.clear_results_tooltip')">
</TooltipWrapper>
<TooltipWrapper side="top" :content="t('view.profile.clear_results_tooltip')">
<el-button
type="default"
size="small"
@@ -355,7 +355,7 @@
circle
style="margin-left: 5px"
@click="configTreeData = []"></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
<el-tree v-if="configTreeData.length > 0" :data="configTreeData" style="margin-top: 10px; font-size: 12px">
<template #default="scope">

View File

@@ -234,12 +234,12 @@
<div class="options-container-item">
<span class="name"
>{{ t('view.settings.general.automation.auto_invite_request_accept') }}
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
style="margin-left: 5px"
:content="t('view.settings.general.automation.auto_invite_request_accept_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<br />
<el-radio-group

View File

@@ -61,11 +61,11 @@
<span class="sub-header" style="margin-right: 5px">{{
t('view.settings.advanced.advanced.save_instance_prints_to_file.header')
}}</span>
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
</TooltipWrapper>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.description')"
:value="saveInstancePrints"
@@ -87,11 +87,11 @@
<span class="sub-header" style="margin-right: 5px"
>{{ t('view.settings.advanced.advanced.save_instance_emoji_to_file.header') }}
</span>
<el-tooltip
placement="top"
<TooltipWrapper
side="top"
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
<el-icon><InfoFilled /></el-icon>
</el-tooltip>
</TooltipWrapper>
<simple-switch
:label="t('view.settings.advanced.advanced.save_instance_emoji_to_file.description')"
:value="saveInstanceEmoji"

View File

@@ -9,14 +9,14 @@
<div v-for="setting in currentOptions" :key="setting.key" class="toggle-item">
<span class="toggle-name"
>{{ setting.name
}}<el-tooltip
}}<TooltipWrapper
v-if="setting.tooltip"
placement="top"
side="top"
style="margin-left: 5px"
:content="setting.tooltip">
<el-icon v-if="setting.tooltipWarning"><Warning /></el-icon>
<el-icon v-else><InfoFilled /></el-icon>
</el-tooltip>
</TooltipWrapper>
</span>
<el-radio-group

View File

@@ -31,30 +31,30 @@
</el-table-column>
<el-table-column :label="t('dialog.registry_backup.action')" width="90" align="right">
<template #default="scope">
<el-tooltip placement="top" :content="t('dialog.registry_backup.restore')">
<TooltipWrapper side="top" :content="t('dialog.registry_backup.restore')">
<el-button
text
:icon="Upload"
size="small"
class="button-pd-0"
@click="restoreVrcRegistryBackup(scope.row)"></el-button>
</el-tooltip>
<el-tooltip placement="top" :content="t('dialog.registry_backup.save_to_file')">
</TooltipWrapper>
<TooltipWrapper side="top" :content="t('dialog.registry_backup.save_to_file')">
<el-button
text
:icon="Download"
size="small"
class="button-pd-0"
@click="saveVrcRegistryBackupToFile(scope.row)"></el-button>
</el-tooltip>
<el-tooltip placement="top" :content="t('dialog.registry_backup.delete')">
</TooltipWrapper>
<TooltipWrapper side="top" :content="t('dialog.registry_backup.delete')">
<el-button
text
:icon="Delete"
size="small"
class="button-pd-0"
@click="deleteVrcRegistryBackup(scope.row)"></el-button>
</el-tooltip>
</TooltipWrapper>
</template>
</el-table-column>
</DataTable>

View File

@@ -16,7 +16,7 @@
<span>/</span>
<span v-text="totalCacheSize"></span>
<span>GB</span>
<el-tooltip placement="top" :content="t('dialog.config_json.refresh')">
<TooltipWrapper side="top" :content="t('dialog.config_json.refresh')">
<el-button
type="default"
:loading="VRChatCacheSizeLoading"
@@ -25,7 +25,7 @@
circle
style="margin-left: 5px"
@click="getVRChatCacheSize"></el-button>
</el-tooltip>
</TooltipWrapper>
<div style="margin-top: 10px">
<span style="margin-right: 5px">{{ t('dialog.config_json.delete_all_cache') }}</span>

View File

@@ -41,7 +41,7 @@
</el-option>
</el-select>
<div>
<el-tooltip placement="bottom" :content="t('side_panel.refresh_tooltip')">
<TooltipWrapper side="bottom" :content="t('side_panel.refresh_tooltip')">
<el-button
type="default"
:loading="isRefreshFriendsLoading"
@@ -50,7 +50,7 @@
circle
style="margin-right: 10px"
@click="refreshFriendsList"></el-button>
</el-tooltip>
</TooltipWrapper>
</div>
</div>
<el-tabs class="zero-margin-tabs" stretch style="height: calc(100% - 70px); margin-top: 5px">