Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions src/renderer/components/CommentSection/CommentSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@
:key="comment.id"
class="comment"
>
<router-link
<component
:is="enableChannelLinks ? 'router-link' : 'span'"
:to="`/channel/${comment.authorLink}`"
tabindex="-1"
>
Expand All @@ -77,7 +78,7 @@
alt=""
class="commentThumbnail"
>
</router-link>
</component>
<p
v-if="comment.isPinned"
class="commentPinned"
Expand All @@ -90,7 +91,8 @@
<p
class="commentAuthorWrapper"
>
<router-link
<component
:is="enableChannelLinks ? 'router-link' : 'span'"
class="commentAuthor"
dir="auto"
:class="{
Expand All @@ -99,7 +101,7 @@
:to="`/channel/${comment.authorLink}`"
>
{{ comment.author }}
</router-link>
</component>
<img
v-if="comment.isMember"
:src="comment.memberIconUrl"
Expand Down Expand Up @@ -177,7 +179,8 @@
:key="replyIndex"
class="comment"
>
<router-link
<component
:is="enableChannelLinks ? 'router-link' : 'span'"
:to="`/channel/${reply.authorLink}`"
tabindex="-1"
>
Expand All @@ -195,9 +198,10 @@
alt=""
class="commentThumbnail"
>
</router-link>
</component>
<p class="commentAuthorWrapper">
<router-link
<component
:is="enableChannelLinks ? 'router-link' : 'span'"
class="commentAuthor"
dir="auto"
:class="{
Expand All @@ -206,7 +210,7 @@
:to="`/channel/${reply.authorLink}`"
>
{{ reply.author }}
</router-link>
</component>
<img
v-if="reply.isMember"
:src="reply.memberIconUrl"
Expand Down Expand Up @@ -472,6 +476,8 @@ function handleSortChange() {

const emit = defineEmits(['timestamp-event'])

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)

/**
* @param {number} timestamp
*/
Expand Down
6 changes: 4 additions & 2 deletions src/renderer/components/FtCommunityPost/FtCommunityPost.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
v-if="authorThumbnails.length > 0"
>
<router-link
v-if="authorId"
v-if="authorId && enableChannelLinks"
:to="`/channel/${authorId}`"
tabindex="-1"
aria-hidden="true"
Expand All @@ -34,7 +34,7 @@
dir="auto"
>
<router-link
v-if="authorId"
v-if="authorId && enableChannelLinks"
:to="`/channel/${authorId}`"
class="authorNameLink"
>
Expand Down Expand Up @@ -343,6 +343,8 @@ if (postType === 'multiImage' && postContent.content.length > 0) {
swiperContainerRef.value.initialize()
})
}

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)
</script>

<style scoped src="./FtCommunityPost.scss" lang="scss" />
30 changes: 29 additions & 1 deletion src/renderer/components/FtListChannel/FtListChannel.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
>
<div class="channelThumbnail">
<router-link
v-if="enableChannelLinks"
:to="`/channel/${id}`"
class="channelThumbnailLink"
tabindex="-1"
Expand All @@ -20,10 +21,21 @@
alt=""
>
</router-link>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

class="channelThumbnailLink"
>
<img
:src="thumbnail"
:class="!isGame ? 'channelImage' : 'gameImage'"
alt=""
>
</div>
</div>
<div class="infoAndSubscribe">
<div class="info">
<router-link
v-if="enableChannelLinks"
class="title"
:to="`/channel/${id}`"
>
Expand All @@ -34,15 +46,29 @@
{{ name }}
</h3>
</router-link>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

class="title"
>
<h3 class="h3Title">
{{ name }}
</h3>
</div>
<div class="infoLine">
<router-link
v-if="handle !== null"
v-if="handle !== null && enableChannelLinks"
class="handle"
dir="auto"
:to="`/channel/${id}`"
>
{{ handle }}
</router-link>
<bdi
v-if="handle !== null && !enableChannelLinks"
class="handle"
>
{{ handle }}
</bdi>
Comment on lines 58 to +71
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would probably be better to wrap both of these tags in a <template> tag with a v-if that checks the handle variable, then inside of it just use a v-if and v-else for the enableChannelTags variable.

<span
v-if="subscriberCount !== null && !hideChannelSubscriptions"
class="subscriberCount"
Expand Down Expand Up @@ -118,6 +144,8 @@ const hideUnsubscribeButton = computed(() => {
return store.getters.getHideUnsubscribeButton
})

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)

let id = ''
let thumbnail = ''
let name = ''
Expand Down
4 changes: 3 additions & 1 deletion src/renderer/components/FtListPlaylist/FtListPlaylist.vue
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
</RouterLink>
<div class="infoLine">
<RouterLink
v-if="channelId"
v-if="channelId && enableChannelLinks"
class="channelName"
dir="auto"
:to="`/channel/${channelId}`"
Expand Down Expand Up @@ -268,6 +268,8 @@ const externalPlayer = computed(() => store.getters.getExternalPlayer)
/** @type {import('vue').ComputedRef<number>} */
const defaultPlayback = computed(() => store.getters.getDefaultPlayback)

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)

function handleExternalPlayer() {
if (process.env.IS_ELECTRON) {
window.ftElectron.openInExternalPlayer({
Expand Down
17 changes: 17 additions & 0 deletions src/renderer/components/ParentalControlSettings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
:default-value="showFamilyFriendlyOnly"
@change="updateShowFamilyFriendlyOnly"
/>
<FtToggleSwitch
:label="$t('Settings.Parental Control Settings.Disable Channel Links')"
compact
:default-value="disableChannelLinks"
@change="updateDisableChannelLinks"
/>
</div>
<div class="switchColumn">
<FtToggleSwitch
Expand Down Expand Up @@ -59,6 +65,10 @@ const showFamilyFriendlyOnly = computed(() => {
return store.getters.getShowFamilyFriendlyOnly
})

const disableChannelLinks = computed(() => {
return store.getters.getDisableChannelLinks
})

/**
* @param {boolean} value
*/
Expand Down Expand Up @@ -86,4 +96,11 @@ function updateHideUploader(value) {
function updateShowFamilyFriendlyOnly(value) {
store.dispatch('updateShowFamilyFriendlyOnly', value)
}

/**
* @param {boolean} value
*/
function updateDisableChannelLinks(value) {
store.dispatch('updateDisableChannelLinks', value)
}
</script>
9 changes: 8 additions & 1 deletion src/renderer/components/PlaylistInfo/PlaylistInfo.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
class="channelShareWrapper"
>
<router-link
v-if="!isUserPlaylist && channelId"
v-if="!isUserPlaylist && channelId && enableChannelLinks"
class="playlistChannel"
:to="`/channel/${channelId}`"
>
Expand All @@ -129,6 +129,11 @@
v-else
class="playlistChannel"
>
<img
class="channelThumbnail"
Comment on lines +132 to +133
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The channel thumbnail wasn't here before, because when YouTube doesn't return a channel link here it also doesn't return a thumbnail, so you need to wrap the channel thumbnail in a if statement.

Suggested change
<img
class="channelThumbnail"
<img
v-if="channelThumbnail"
class="channelThumbnail"

:src="channelThumbnail"
alt=""
>
<h3
class="channelName"
dir="auto"
Expand Down Expand Up @@ -957,6 +962,8 @@ onMounted(() => {
onBeforeUnmount(() => {
document.removeEventListener('keydown', keyboardShortcutHandler)
})

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)
</script>

<style scoped lang="scss" src="./PlaylistInfo.scss" />
4 changes: 4 additions & 0 deletions src/renderer/components/WatchVideoInfo/WatchVideoInfo.css
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@
gap: 4px;
}

.initialCursor {
cursor: initial;
}

@media screen and (width <= 730px) {
.videoButtons {
flex-direction: column;
Expand Down
16 changes: 16 additions & 0 deletions src/renderer/components/WatchVideoInfo/WatchVideoInfo.vue
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
v-if="!hideUploader"
>
<RouterLink
v-if="enableChannelLinks"
:to="`/channel/${channelId}`"
>
<img
Expand All @@ -50,18 +51,31 @@
alt=""
>
</RouterLink>
<img
v-if="!enableChannelLinks"
:src="channelThumbnail"
class="channelThumbnail initialCursor"
alt=""
>
</div>
<div>
<div
v-if="!hideUploader"
>
<RouterLink
v-if="enableChannelLinks"
:to="`/channel/${channelId}`"
class="channelName"
dir="auto"
>
{{ channelName }}
</RouterLink>
<div
v-if="!enableChannelLinks"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
v-if="!enableChannelLinks"
v-else

class="channelName initialCursor"
>
{{ channelName }}
</div>
</div>
<FtSubscribeButton
v-if="!hideUnsubscribeButton"
Expand Down Expand Up @@ -503,6 +517,8 @@ function removeFromQuickBookmarkPlaylist() {
// TODO: Maybe show playlist name
showToast(t('Video.Video has been removed from your saved list'))
}

const enableChannelLinks = computed(() => !store.getters.getDisableChannelLinks)
</script>

<style scoped src="./WatchVideoInfo.css" />
4 changes: 4 additions & 0 deletions src/renderer/components/ft-list-video/ft-list-video.js
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,10 @@ export default defineComponent({
deArrowCache: function () {
return this.$store.getters.getDeArrowCache[this.id]
},

disableChannelLinks: function () {
return this.$store.getters.getDisableChannelLinks
},
},
watch: {
showAddToPlaylistPrompt(value) {
Expand Down
4 changes: 2 additions & 2 deletions src/renderer/components/ft-list-video/ft-list-video.vue
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,14 @@
</router-link>
<div class="infoLine">
<router-link
v-if="channelId !== null"
v-if="channelId !== null && !disableChannelLinks"
class="channelName"
dir="auto"
:to="`/channel/${channelId}`"
>
{{ channelName }}
</router-link>
<bdi v-else-if="channelName !== null">
<bdi v-else-if="channelName !== null || disableChannelLinks">
{{ channelName }}
</bdi>
<span
Expand Down
1 change: 1 addition & 0 deletions src/renderer/store/modules/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ const state = {
defaultViewingMode: 'default',
defaultVideoFormat: 'dash',
disableSmoothScrolling: false,
disableChannelLinks: false,
displayVideoPlayButton: false,
enableSearchSuggestions: true,
enableSubtitlesByDefault: false,
Expand Down
8 changes: 8 additions & 0 deletions static/locales/en-US.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,14 @@ Settings:
Hide Uploader on Watch page: Hide Uploader on Watch page
Show Family Friendly Only: Show Family Friendly Only
Hide Search Bar: Hide Search Bar
Disable Channel Links: Disable Channel Links
Download Settings:
Download Settings: Download
Ask Download Path: Ask for download path
Choose Path: Choose Path
Download Behavior: Download Behavior
Download in app: Download in app
Open in web browser: Open in web browser
Comment on lines +675 to +681
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am gonna guess this is from merging dev...?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I believe so

Copy link
Copy Markdown
Member

@absidue absidue Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if this came from a merge, the fact that it is still here means the merge wasn't clean and as those download strings no longer exist on the development branch, merging this pull request as is would add those strings back.

Experimental Settings:
Experimental Settings: Experimental
Warning: These settings are experimental, they may cause crashes while enabled. Making backups is highly recommended. Use at your own risk!
Expand Down
Loading