refactor: remove custom icon component as given PR has been merged to Vuetify

This commit is contained in:
Thibault Nocchi 2023-01-12 20:34:25 +01:00 committed by Fernando Fernández
parent c32c705df2
commit cc4bf128a0
38 changed files with 165 additions and 169 deletions

View File

@ -48,7 +48,7 @@
"vue": "3.2.39",
"vue-i18n": "9.2.2",
"vue-router": "4.1.5",
"vuetify": "3.0.6"
"vuetify": "3.1.1"
},
"devDependencies": {
"@iconify/json": "2.1.104",

View File

@ -10,9 +10,9 @@
v-bind="attrs"
v-on="on">
{{ $t('filter') }}
<Icon end>
<v-icon end>
<i-mdi-menu-down />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-else
@ -21,9 +21,9 @@
icon
v-bind="attrs"
v-on="on">
<Icon>
<v-icon>
<i-mdi-filter-variant />
</Icon>
</v-icon>
</v-btn>
</template>
<v-expansion-panels accordion flat focusable class="dropdown">

View File

@ -1,11 +1,11 @@
<template>
<v-btn icon @click.stop.prevent="toggleFavorite">
<Icon v-if="isFavorite">
<v-icon v-if="isFavorite">
<i-mdi-heart />
</Icon>
<Icon v-else>
</v-icon>
<v-icon v-else>
<i-mdi-heart-outline />
</Icon>
</v-icon>
</v-btn>
</template>

View File

@ -1,8 +1,8 @@
<template>
<v-btn v-if="canMarkWatched(item)" icon @click.stop.prevent="togglePlayed">
<Icon :color="isPlayed ? 'primary' : ''">
<v-icon :color="isPlayed ? 'primary' : ''">
<i-mdi-check />
</Icon>
</v-icon>
</v-btn>
</template>

View File

@ -7,12 +7,12 @@
:loading="loading"
:disabled="disabled"
@click.prevent="playOrResume">
<Icon v-if="shuffle" :size="fab ? 36 : null">
<v-icon v-if="shuffle" :size="fab ? 36 : null">
<i-mdi-shuffle />
</Icon>
<Icon v-else :size="fab ? 36 : null">
</v-icon>
<v-icon v-else :size="fab ? 36 : null">
<i-mdi-play />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-else-if="!fab"

View File

@ -21,9 +21,9 @@
icon
v-bind="attrs"
v-on="{ ...tooltip, ...menu }">
<Icon>
<v-icon>
<i-mdi-cog />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('playbackSettings') }}</span>

View File

@ -23,9 +23,9 @@
icon
v-bind="attrs"
v-on="{ ...tooltip, ...menu }">
<Icon>
<v-icon>
<i-mdi-playlist-play />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('queue') }}</span>
@ -74,9 +74,9 @@
<v-tooltip location="top">
<template #activator="{ on: tooltip }">
<v-btn icon v-on="tooltip" @click="playbackManager.stop">
<Icon>
<v-icon>
<i-mdi-playlist-remove />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('playback.clearQueue') }}</span>
@ -84,9 +84,9 @@
<v-tooltip location="top">
<template #activator="{ on: tooltip }">
<v-btn icon disabled v-on="tooltip">
<Icon>
<v-icon>
<i-mdi-content-save />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('playback.saveAsPlaylist') }}</span>

View File

@ -8,9 +8,9 @@
location="bottom right"
fixed
@click="scrollToTop">
<Icon>
<v-icon>
<i-mdi-chevron-up />
</Icon>
</v-icon>
</v-btn>
</v-fab-transition>
</template>

View File

@ -10,9 +10,9 @@
v-bind="attrs"
v-on="on">
{{ $t('sortByType', { type: items[model].name }) }}
<Icon end>
<v-icon end>
<i-mdi-menu-down />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-else
@ -21,9 +21,9 @@
icon
v-bind="attrs"
v-on="on">
<Icon>
<v-icon>
<i-mdi-sort-alphabetical-ascending />
</Icon>
</v-icon>
</v-btn>
</template>
<v-list dense>

View File

@ -26,9 +26,9 @@
"
v-bind="attrs"
v-on="{ ...tooltip, ...menu }">
<Icon>
<v-icon>
<i-mdi-closed-caption />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('subtitles') }}</span>
@ -40,12 +40,12 @@
v-for="track of tracks"
:key="track.srcIndex"
@click="playbackManager.currentSubtitleStreamIndex = track.srcIndex">
<Icon
<v-icon
v-if="
track.srcIndex === playbackManager.currentSubtitleStreamIndex
">
<i-mdi-check />
</Icon>
</v-icon>
{{ track.label }}
</v-list-item>
</v-list>

View File

@ -10,9 +10,9 @@
v-bind="attrs"
v-on="on">
{{ items[model].name }}
<Icon end>
<v-icon end>
<i-mdi-menu-down />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-else
@ -21,9 +21,9 @@
icon
v-bind="attrs"
v-on="on">
<Icon>
<v-icon>
<i-mdi-eye />
</Icon>
</v-icon>
</v-btn>
</template>
<v-list dense>

View File

@ -1,4 +0,0 @@
<!-- TODO: Remove this component as soon as this Pull request is merged: https://github.com/vuetifyjs/vuetify/pull/16168 -->
<template>
<v-icon :icon="$slots.default" />
</template>

View File

@ -14,9 +14,9 @@
v-bind="props"
@click.stop.prevent="onActivatorClick"
@contextmenu.stop.prevent="onRightClick">
<Icon>
<v-icon>
<i-mdi-dots-horizontal />
</Icon>
</v-icon>
</v-btn>
</template>
<v-list nav>

View File

@ -11,9 +11,9 @@
<span v-if="item.ProductionYear && year">{{ item.ProductionYear }}</span>
<span v-if="item.OfficialRating && rating">{{ item.OfficialRating }}</span>
<span v-if="item.CommunityRating && rating">
<Icon class="rating-icon" size="16">
<v-icon class="rating-icon" size="16">
<i-mdi-star />
</Icon>
</v-icon>
{{ item.CommunityRating.toFixed(1) }}
</span>
<span v-if="item.Type === 'MusicAlbum' && item.ChildCount && tracks">

View File

@ -17,14 +17,14 @@
</div>
<v-card-actions class="justify-center">
<v-btn icon @click="handleSearch">
<Icon>
<v-icon>
<i-mdi-magnify />
</Icon>
</v-icon>
</v-btn>
<v-btn icon class="ml-3" @click="handleDelete(item)">
<Icon>
<v-icon>
<i-mdi-delete />
</Icon>
</v-icon>
</v-btn>
</v-card-actions>
</v-card>
@ -48,14 +48,14 @@
</div>
<v-card-actions class="justify-center">
<v-btn icon @click="handleSearch">
<Icon>
<v-icon>
<i-mdi-magnify />
</Icon>
</v-icon>
</v-btn>
<v-btn icon class="ml-3" @click="handleDelete(item)">
<Icon>
<v-icon>
<i-mdi-delete />
</Icon>
</v-icon>
</v-btn>
</v-card-actions>
</v-card>

View File

@ -78,9 +78,9 @@
<v-spacer />
<v-card-actions class="justify-center">
<v-btn icon :disabled="loading" @click="handleDownload(item)">
<Icon>
<v-icon>
<i-mdi-cloud-download />
</Icon>
</v-icon>
</v-btn>
</v-card-actions>
</v-card>

View File

@ -117,9 +117,9 @@
{{ $t('addNewPerson') }}
</v-list-item-title>
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-plus-circle />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
<v-list-item
@ -135,9 +135,9 @@
ImageType.Primary
)
" />
<Icon v-else class="bg-grey-darken-3">
<v-icon v-else class="bg-grey-darken-3">
<i-mdi-account />
</Icon>
</v-icon>
</v-avatar>
<v-list-item-title>
{{ item.Name }}
@ -146,9 +146,9 @@
{{ item.Role || item.Type }}
</v-list-item-subtitle>
<v-list-item-action @click.stop="handlePersonDel(i)">
<Icon>
<v-icon>
<i-mdi-delete />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list>

View File

@ -12,9 +12,9 @@
:src="
$remote.sdk.api?.getItemImageUrl(person.Id, ImageType.Primary)
" />
<Icon v-else class="bg-grey-darken-3">
<v-icon v-else class="bg-grey-darken-3">
<i-mdi-account />
</Icon>
</v-icon>
</v-avatar>
</v-col>
<v-col>

View File

@ -1,8 +1,8 @@
<template>
<v-chip color="success" class="card-chip" small>
<Icon>
<v-icon>
<i-mdi-check />
</Icon>
</v-icon>
</v-chip>
</template>

View File

@ -8,9 +8,9 @@
@click="navigationDrawer = !navigationDrawer" />
<app-bar-button-layout @click="$router.back()">
<template #icon>
<Icon>
<v-icon>
<i-mdi-arrow-left />
</Icon>
</v-icon>
</template>
</app-bar-button-layout>
<v-spacer />
@ -18,9 +18,9 @@
<v-spacer />
<app-bar-button-layout v-if="!network.isOnline" color="red">
<template #icon>
<Icon>
<v-icon>
<i-mdi-network-off-outline />
</Icon>
</v-icon>
</template>
<template #tooltip>
<span>{{ $t('noNetworkConnection') }}</span>
@ -29,10 +29,10 @@
<task-manager-button />
<app-bar-button-layout @click="toggleDarkMode">
<template #icon>
<Icon>
<v-icon>
<i-mdi-weather-sunny v-if="clientSettings.darkMode" />
<i-mdi-weather-night v-else />
</Icon>
</v-icon>
</template>
<template #tooltip>
<span>{{

View File

@ -16,9 +16,9 @@
<template #activator="{ on: menu, attrs }">
<app-bar-button-layout :custom-listener="menu" v-bind="attrs" disabled>
<template #icon>
<Icon>
<v-icon>
<i-mdi-cast />
</Icon>
</v-icon>
</template>
<template #tooltip>
<span>{{ $t('remoteDevices') }}</span>
@ -29,33 +29,33 @@
<v-list color="transparent">
<v-list-group>
<v-list-item>
<Icon>
<v-icon>
<i-mdi-account-group />
</Icon>
</v-icon>
{{ $t('syncPlayGroups') }}
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-arrow-right />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
<v-divider />
<v-list-item v-if="features.airPlay">
<Icon>
<v-icon>
<i-mdi-apple-airplay />
</Icon>
</v-icon>
{{ $t('airPlayDevices') }}
</v-list-item>
<v-list-item v-if="features.googleCast">
<Icon>
<v-icon>
<i-mdi-cast />
</Icon>
</v-icon>
{{ $t('googleCastPlaceholderDevice') }}
</v-list-item>
<v-list-item>
<Icon>
<v-icon>
<i-simple-icons-jellyfin />
</Icon>
</v-icon>
{{ $t('genericJellyfinPlaceholderDevice') }}
</v-list-item>
</v-list-group>

View File

@ -22,9 +22,9 @@
v-bind="attrs">
<template #icon>
<v-progress-circular v-if="!buttonColor" indeterminate size="24" />
<Icon v-else>
<v-icon v-else>
<i-mdi-check />
</Icon>
</v-icon>
</template>
<template #tooltip>
<span>{{ $t('appbar.tooltips.tasks') }}</span>
@ -45,9 +45,9 @@
:model-value="task.progress"
rotate="-90"
size="24" />
<Icon v-else>
<v-icon v-else>
<i-mdi-check />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list-group>

View File

@ -24,9 +24,9 @@
#subtitle>
<v-list-item-subtitle>
{{ $t('administrator') }}
<Icon size="small">
<v-icon size="small">
<i-mdi-key-chain />
</Icon>
</v-icon>
</v-list-item-subtitle>
</template>
</v-list-item>

View File

@ -62,17 +62,17 @@
class="mx-1 active-button"
:color="playbackManager.isShuffling ? 'primary' : undefined"
@click="playbackManager.toggleShuffle">
<Icon>
<v-icon>
<i-mdi-shuffle />
</Icon>
</v-icon>
</v-btn>
<v-btn
icon
class="mx-1"
@click="playbackManager.setPreviousTrack">
<Icon>
<v-icon>
<i-mdi-skip-previous />
</Icon>
</v-icon>
</v-btn>
<v-btn
icon
@ -88,9 +88,9 @@
:disabled="!playbackManager.getNextItem"
class="mx-1"
@click="playbackManager.setNextTrack">
<Icon>
<v-icon>
<i-mdi-skip-next />
</Icon>
</v-icon>
</v-btn>
<v-btn
icon
@ -117,14 +117,14 @@
:item="playbackManager.getCurrentItem"
:z-index="99999" />
<v-btn v-show="!isFullScreenPlayer" icon to="/playback/music">
<Icon>
<v-icon>
<i-mdi-fullscreen />
</Icon>
</v-icon>
</v-btn>
<v-btn v-show="isFullScreenPlayer" icon @click="$router.back()">
<Icon>
<v-icon>
<i-mdi-fullscreen-exit />
</Icon>
</v-icon>
</v-btn>
</v-col>
<v-col
@ -143,9 +143,9 @@
:disabled="!playbackManager.getNextItem"
class="mx-1"
@click="playbackManager.setNextTrack">
<Icon>
<v-icon>
<i-mdi-skip-next />
</Icon>
</v-icon>
</v-btn>
<v-btn
icon
@ -159,9 +159,9 @@
class="mx-1 active-button hidden-xs-only"
:color="playbackManager.isShuffling ? 'primary' : undefined"
@click="playbackManager.toggleShuffle">
<Icon>
<v-icon>
<i-mdi-shuffle />
</Icon>
</v-icon>
</v-btn>
</v-col>
</v-row>

View File

@ -3,9 +3,9 @@
<v-img :src="url" :width="size" cover>
<template #placeholder>
<v-avatar color="primary" :size="size">
<Icon :size="iconSize" dark>
<v-icon :size="iconSize" dark>
<i-mdi-account />
</Icon>
</v-icon>
</v-avatar>
</template>
</v-img>

View File

@ -5,9 +5,9 @@
target="_blank"
rel="noopener noreferrer">
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-github />
</Icon>
</v-icon>
</v-list-item-action>
<v-list-item-title>
{{ '#' + commit.slice(0, 7) }}

View File

@ -10,14 +10,14 @@
</h1>
<v-spacer />
<v-btn class="swiper-prev" icon variant="plain">
<Icon>
<v-icon>
<i-mdi-arrow-left />
</Icon>
</v-icon>
</v-btn>
<v-btn class="swiper-next" icon variant="plain">
<Icon>
<v-icon>
<i-mdi-arrow-right />
</Icon>
</v-icon>
</v-btn>
</div>

View File

@ -14,9 +14,9 @@
{{ index + 1 }}
</v-list-item-action>
<v-list-item-action v-else class="justify-center d-flex">
<Icon>
<v-icon>
<i-mdi-drag-horizontal />
</Icon>
</v-icon>
</v-list-item-action>
<v-avatar class="list-group-item">
<blurhash-image :item="item" />

View File

@ -12,9 +12,9 @@
class="pointer-events-all"
icon
@click="$emit('close-playback-data')">
<Icon>
<v-icon>
<i-mdi-close />
</Icon>
</v-icon>
</v-btn>
</v-card-title>
<v-card-text class="py-0">

View File

@ -34,15 +34,15 @@
<div class="d-flex flex-column player-overlay">
<div class="d-flex flex-row">
<v-btn icon @click="playbackManager.toggleMinimized">
<Icon>
<v-icon>
<i-mdi-arrow-expand-all />
</Icon>
</v-icon>
</v-btn>
<v-spacer />
<v-btn icon @click="stopPlayback">
<Icon>
<v-icon>
<i-mdi-close />
</Icon>
</v-icon>
</v-btn>
</div>
<div
@ -52,9 +52,9 @@
icon
size="large"
@click="playbackManager.setPreviousTrack">
<Icon size="32">
<v-icon size="32">
<i-mdi-skip-previous />
</Icon>
</v-icon>
</v-btn>
<v-btn
class="pointer-events-all"
@ -68,9 +68,9 @@
icon
size="large"
@click="playbackManager.setNextTrack">
<Icon size="32">
<v-icon size="32">
<i-mdi-skip-next />
</Icon>
</v-icon>
</v-btn>
</div>
</div>
@ -92,14 +92,14 @@
<div class="d-flex align-center py-2 px-4">
<div class="d-flex">
<v-btn icon @click="stopPlayback">
<Icon>
<v-icon>
<i-mdi-close />
</Icon>
</v-icon>
</v-btn>
<v-btn icon @click="playbackManager.toggleMinimized">
<Icon>
<v-icon>
<i-mdi-chevron-down />
</Icon>
</v-icon>
</v-btn>
</div>
<div class="d-flex ml-auto">
@ -149,9 +149,9 @@
icon
class="mx-1"
@click="playbackManager.setPreviousTrack">
<Icon>
<v-icon>
<i-mdi-skip-previous />
</Icon>
</v-icon>
</v-btn>
<v-btn
icon
@ -163,9 +163,9 @@
icon
class="mx-1"
@click="playbackManager.setNextTrack">
<Icon>
<v-icon>
<i-mdi-skip-next />
</Icon>
</v-icon>
</v-btn>
</div>
<div class="d-flex aligh-center ml-auto ml-md-0">
@ -191,30 +191,30 @@
class="align-self-center active-button"
icon
@click="togglePictureInPicture">
<Icon>
<v-icon>
<i-mdi-picture-in-picture-bottom-right />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-if="$vuetify.display.smAndUp"
class="align-self-center active-button"
icon
@click="stretchVideo = !stretchVideo">
<Icon v-if="!stretchVideo">
<v-icon v-if="!stretchVideo">
<i-mdi-stretch-to-page-outline />
</Icon>
<Icon v-if="stretchVideo">
</v-icon>
<v-icon v-if="stretchVideo">
<i-mdi-stretch-to-page />
</Icon>
</v-icon>
</v-btn>
<v-btn
v-if="features.fullScreen"
class="align-self-center active-button"
icon
@click="toggleFullScreen">
<Icon>
<v-icon>
<i-mdi-fullscreen />
</Icon>
</v-icon>
</v-btn>
</div>
</div>

View File

@ -6,9 +6,9 @@
<th style="width: 3em" class="pr-0 pl-0" scope="col" />
<th scope="col">{{ $t('item.tracklist.title') }}</th>
<th style="width: 6.5em" class="text-center" scope="col">
<Icon class="text--primary" size="16">
<v-icon class="text--primary" size="16">
<i-mdi-clock-outline />
</Icon>
</v-icon>
</th>
</tr>
</thead>
@ -19,9 +19,9 @@
:key="discNumber"
class="disc-header">
<td colspan="4" class="text--secondary">
<Icon class="text--secondary">
<v-icon class="text--secondary">
<i-mdi-disc />
</Icon>
</v-icon>
{{ $t('discNumber', { discNumber }) }}
</td>
</tr>
@ -35,9 +35,9 @@
<td style="width: 4em" class="pr-0 text-center">
<span v-if="hover && !isPlaying(track)">
<v-btn small icon @click="playTracks(track)">
<Icon>
<v-icon>
<i-mdi-play-circle-outline />
</Icon>
</v-icon>
</v-btn>
</span>
<span v-else>{{ track.IndexNumber }}</span>

View File

@ -14,9 +14,9 @@
{{ linkItem.name }}
</v-list-item-title>
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-open-in-new />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list-group>

View File

@ -9,9 +9,9 @@
:size="large ? 'large' : 'small'"
:color="appBar ? undefined : 'primary'"
v-bind="mergeProps(menu, tooltip)">
<Icon>
<v-icon>
<i-mdi-web />
</Icon>
</v-icon>
</v-btn>
</template>
<span>{{ $t('tooltips.changeLanguage') }}</span>

View File

@ -3,9 +3,9 @@
<v-row v-if="isDialog" class="ma-0 justify-space-between align-center">
<v-card-title>{{ selectedDevice.Name }}</v-card-title>
<v-btn icon class="mr-2" @click="$emit('close-dialog')">
<Icon>
<v-icon>
<i-mdi-close />
</Icon>
</v-icon>
</v-btn>
</v-row>
<v-card-title v-else>{{ selectedDevice.Name }}</v-card-title>

View File

@ -6,9 +6,9 @@
color="transparent">
<app-bar-button-layout @click="$router.back()">
<template #icon>
<Icon>
<v-icon>
<i-mdi-arrow-left />
</Icon>
</v-icon>
</template>
</app-bar-button-layout>
</v-app-bar>

View File

@ -59,9 +59,9 @@
{{ userItem.description }}
</v-list-item-subtitle>
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-chevron-right />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list-group>
@ -89,9 +89,9 @@
{{ adminItem.description }}
</v-list-item-subtitle>
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-chevron-right />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list-group>

View File

@ -19,9 +19,9 @@
target="_blank"
rel="noopener">
<v-avatar>
<Icon>
<v-icon>
<i-mdi-file />
</Icon>
</v-icon>
</v-avatar>
<v-list-item-title>
{{ file.Name }}
@ -30,9 +30,9 @@
{{ getFormattedLogDate(file.DateModified) }}
</v-list-item-subtitle>
<v-list-item-action>
<Icon>
<v-icon>
<i-mdi-open-in-new />
</Icon>
</v-icon>
</v-list-item-action>
</v-list-item>
</v-list-group>
@ -48,9 +48,9 @@
v-else-if="loadingLogsStatus.status === 'error'"
key="error-log-card">
<v-card-title>
<Icon color="error" class="pr-2">
<v-icon color="error" class="pr-2">
<i-mdi-alert-circle />
</Icon>
</v-icon>
{{ $t('settings.logsAndActivity.failedGetLogs') }}
</v-card-title>
<v-card-text v-if="loadingLogsStatus.errorMessage">
@ -100,9 +100,9 @@
v-else-if="loadingActivityStatus.status === 'error'"
key="error-activity-card">
<v-card-title>
<Icon color="error" class="pr-2">
<v-icon color="error" class="pr-2">
<i-mdi-alert-circle />
</Icon>
</v-icon>
{{ $t('settings.logsAndActivity.failedGetActivity') }}
</v-card-title>
<v-card-text>

8
package-lock.json generated
View File

@ -43,7 +43,7 @@
"vue": "3.2.39",
"vue-i18n": "9.2.2",
"vue-router": "4.1.5",
"vuetify": "3.0.6"
"vuetify": "3.1.1"
},
"devDependencies": {
"@iconify/json": "2.1.104",
@ -15417,9 +15417,9 @@
}
},
"node_modules/vuetify": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.0.6.tgz",
"integrity": "sha512-Illtc9t8PExlKqUEIivNNMpDif4/tvn+04ZEAwrxpQAG75x6V7oUFOF1kVKAFZ2ryuLnBpscXBR85GwFBmLeMQ==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.1.tgz",
"integrity": "sha512-BkfRQZ406xQORpgrcUjuPaT/woO96ef/+2zHCfL3an+CrUhjG/sIAptEybHruq3xwFM0uJibDFqGiridsXc99w==",
"engines": {
"node": "^12.20 || >=14.13"
},