diff --git a/src/renderer/components/download-settings/download-settings.vue b/src/renderer/components/download-settings/download-settings.vue
index ffdbb5319808b..d4f1470a8c7fd 100644
--- a/src/renderer/components/download-settings/download-settings.vue
+++ b/src/renderer/components/download-settings/download-settings.vue
@@ -8,6 +8,7 @@
:value="downloadBehavior"
:select-names="downloadBehaviorNames"
:select-values="downloadBehaviorValues"
+ :icon="['fas', 'download']"
@change="updateDownloadBehavior"
/>
diff --git a/src/renderer/components/external-player-settings/external-player-settings.vue b/src/renderer/components/external-player-settings/external-player-settings.vue
index 8254eff8fc76b..5f86b8befe6ed 100644
--- a/src/renderer/components/external-player-settings/external-player-settings.vue
+++ b/src/renderer/components/external-player-settings/external-player-settings.vue
@@ -9,6 +9,7 @@
:select-names="externalPlayerNames"
:select-values="externalPlayerValues"
:tooltip="$t('Tooltips.External Player Settings.External Player')"
+ :icon="['fas', 'external-link-alt']"
@change="updateExternalPlayer"
/>
diff --git a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js
index 27c1f376925e1..dd1d7410687bb 100644
--- a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js
+++ b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js
@@ -10,6 +10,7 @@ import FtSelect from '../../components/ft-select/ft-select.vue'
import FtToggleSwitch from '../../components/ft-toggle-switch/ft-toggle-switch.vue'
import {
showToast,
+ getIconForSortPreference
} from '../../helpers/utils'
const SORT_BY_VALUES = {
@@ -269,6 +270,8 @@ export default defineComponent({
this.query = query
},
+ getIconForSortPreference: (s) => getIconForSortPreference(s),
+
...mapActions([
'addVideos',
'updatePlaylist',
diff --git a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue
index 92dd088056b78..a925f5101709e 100644
--- a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue
+++ b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue
@@ -40,6 +40,7 @@
:select-names="sortBySelectNames"
:select-values="sortBySelectValues"
:placeholder="$t('User Playlists.Sort By.Sort By')"
+ :icon="getIconForSortPreference(sortBy)"
@change="sortBy = $event"
/>
diff --git a/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue b/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue
index c88ecd9fa505b..cbf12e5845168 100644
--- a/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue
+++ b/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue
@@ -10,6 +10,7 @@
:value="profileNameList[filteredProfileIndex]"
:select-names="profileNameList"
:select-values="profileNameList"
+ :icon="['fas', 'filter']"
@change="handleProfileFilterChange"
/>
diff --git a/src/renderer/components/ft-select/ft-select.css b/src/renderer/components/ft-select/ft-select.css
index d2b0a30f2bcdf..58ae9bf374f4d 100644
--- a/src/renderer/components/ft-select/ft-select.css
+++ b/src/renderer/components/ft-select/ft-select.css
@@ -88,12 +88,19 @@
font-size: 18px;
font-weight: normal;
position: absolute;
+ display: flex;
+ column-gap: 6px;
inset-inline-start: 0;
inset-block-start: 10px;
transition: 0.2s ease all;
color: var(--tertiary-text-color);
}
+.select-icon {
+ inline-size: 14px;
+ block-size: 14px;
+}
+
/* active state */
.select-text:focus ~ .select-label, .select-text:valid ~ .select-label {
color: var(--accent-color);
diff --git a/src/renderer/components/ft-select/ft-select.js b/src/renderer/components/ft-select/ft-select.js
index f4edec7b67c57..60cdebcaf7cac 100644
--- a/src/renderer/components/ft-select/ft-select.js
+++ b/src/renderer/components/ft-select/ft-select.js
@@ -39,6 +39,14 @@ export default defineComponent({
describeById: {
type: String,
default: null
+ },
+ icon: {
+ type: Array,
+ required: true
+ },
+ iconColor: {
+ type: String,
+ default: null
}
},
emits: ['change'],
diff --git a/src/renderer/components/ft-select/ft-select.vue b/src/renderer/components/ft-select/ft-select.vue
index 54cdd92b28b3e..8fb2fe98bd458 100644
--- a/src/renderer/components/ft-select/ft-select.vue
+++ b/src/renderer/components/ft-select/ft-select.vue
@@ -30,6 +30,11 @@
:for="sanitizedId ?? sanitizedPlaceholder"
:hidden="disabled"
>
+