From b6b87b320eb136589018afee7856856018efbe7c Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 20 Jun 2025 16:40:13 -0400 Subject: [PATCH 1/4] replace confusing "always show ads" setting with "hide ads" --- locales/index.d.ts | 4 ++++ packages/frontend/src/components/MkDateSeparatedList.vue | 2 +- packages/frontend/src/components/global/MkAd.vue | 2 +- packages/frontend/src/pages/settings/preferences.vue | 9 +++++---- packages/frontend/src/preferences/def.ts | 3 +++ sharkey-locales/en-US.yml | 2 ++ 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 7f20c6803f..cbbaa29732 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -13403,6 +13403,10 @@ export interface Locale extends ILocale { * Custom font size */ "customFontSize": string; + /** + * Hide ads + */ + "hideAds": string; } declare const locales: { [lang: string]: Locale; diff --git a/packages/frontend/src/components/MkDateSeparatedList.vue b/packages/frontend/src/components/MkDateSeparatedList.vue index 8cf4e5fa2d..e6278e9576 100644 --- a/packages/frontend/src/components/MkDateSeparatedList.vue +++ b/packages/frontend/src/components/MkDateSeparatedList.vue @@ -110,7 +110,7 @@ export default defineComponent({ }); const renderChildren = () => { - const shouldHideAds = (!prefer.s.forceShowAds && $i && $i.policies.canHideAds) ?? false; + const shouldHideAds = prefer.s.hideAds && $i != null && $i.policies.canHideAds; const children = renderChildrenImpl(shouldHideAds); if (isDebuggerEnabled(6864)) { diff --git a/packages/frontend/src/components/global/MkAd.vue b/packages/frontend/src/components/global/MkAd.vue index 525c47da45..5dc729856e 100644 --- a/packages/frontend/src/components/global/MkAd.vue +++ b/packages/frontend/src/components/global/MkAd.vue @@ -107,7 +107,7 @@ const chosen = ref(choseAd()); const self = computed(() => chosen.value?.url.startsWith(local)); -const shouldHide = ref(!prefer.s.forceShowAds && $i && $i.policies.canHideAds && (props.specify == null)); +const shouldHide = computed(() => prefer.s.hideAds && $i != null && $i.policies.canHideAds && (props.specify == null)); function reduceFrequency(): void { if (chosen.value == null) return; diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 1c8e418182..0ae2fc6650 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -913,10 +913,10 @@ SPDX-License-Identifier: AGPL-3.0-only - - - - + + + + @@ -1096,6 +1096,7 @@ const trustedDomains = prefer.model( (domainsList) => domainsList.join('\n'), (domainsString) => domainsString.split('\n').map( d => d.trim() ).filter( x => x.length > 0), ); +const hideAds = prefer.model('hideAds'); watch([ hemisphere, diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index b651bdd31b..31cfb71d1f 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -480,6 +480,9 @@ export const PREF_DEF = { warnMissingAltText: { default: true, }, + hideAds: { + default: false, + }, //#endregion //#region hybrid options diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml index 83d5560b28..671aa6e706 100644 --- a/sharkey-locales/en-US.yml +++ b/sharkey-locales/en-US.yml @@ -661,3 +661,5 @@ clearCachedFilesOptions: keepFilesInUseDescription: "this option requires more complicated database queries, you may need to increase the value of db.extra.statement_timeout in the configuration file" customFontSize: "Custom font size" + +hideAds: "Hide ads" From dc9c6a34b67fb2a853d480da353cd429d936b319 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 22 Jun 2025 12:17:44 -0400 Subject: [PATCH 2/4] disable hide ads setting instead of excluding it --- packages/frontend/src/pages/settings/preferences.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 0ae2fc6650..345dfa8e29 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -913,9 +913,9 @@ SPDX-License-Identifier: AGPL-3.0-only - + - + From f95ed0faa7255e4ecd65810d70ed8add4c425afc Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 22 Jun 2025 13:09:12 -0400 Subject: [PATCH 3/4] re-use existing "forceShowAds" preference model --- packages/frontend/src/components/MkDateSeparatedList.vue | 2 +- packages/frontend/src/components/global/MkAd.vue | 2 +- packages/frontend/src/pages/settings/preferences.vue | 8 +++++--- packages/frontend/src/preferences/def.ts | 3 --- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/frontend/src/components/MkDateSeparatedList.vue b/packages/frontend/src/components/MkDateSeparatedList.vue index e6278e9576..8cf4e5fa2d 100644 --- a/packages/frontend/src/components/MkDateSeparatedList.vue +++ b/packages/frontend/src/components/MkDateSeparatedList.vue @@ -110,7 +110,7 @@ export default defineComponent({ }); const renderChildren = () => { - const shouldHideAds = prefer.s.hideAds && $i != null && $i.policies.canHideAds; + const shouldHideAds = (!prefer.s.forceShowAds && $i && $i.policies.canHideAds) ?? false; const children = renderChildrenImpl(shouldHideAds); if (isDebuggerEnabled(6864)) { diff --git a/packages/frontend/src/components/global/MkAd.vue b/packages/frontend/src/components/global/MkAd.vue index 5dc729856e..525c47da45 100644 --- a/packages/frontend/src/components/global/MkAd.vue +++ b/packages/frontend/src/components/global/MkAd.vue @@ -107,7 +107,7 @@ const chosen = ref(choseAd()); const self = computed(() => chosen.value?.url.startsWith(local)); -const shouldHide = computed(() => prefer.s.hideAds && $i != null && $i.policies.canHideAds && (props.specify == null)); +const shouldHide = ref(!prefer.s.forceShowAds && $i && $i.policies.canHideAds && (props.specify == null)); function reduceFrequency(): void { if (chosen.value == null) return; diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 345dfa8e29..7220dc414e 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -913,8 +913,8 @@ SPDX-License-Identifier: AGPL-3.0-only - - + + @@ -1096,7 +1096,9 @@ const trustedDomains = prefer.model( (domainsList) => domainsList.join('\n'), (domainsString) => domainsString.split('\n').map( d => d.trim() ).filter( x => x.length > 0), ); -const hideAds = prefer.model('hideAds'); + +// Inverted to map between "hide ads" and "force show ads" +const hideAds = prefer.model('forceShowAds', x => !x, x => !x); watch([ hemisphere, diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index 31cfb71d1f..b651bdd31b 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -480,9 +480,6 @@ export const PREF_DEF = { warnMissingAltText: { default: true, }, - hideAds: { - default: false, - }, //#endregion //#region hybrid options From 52efe033f54a868aa4487ccb4c84eadb606eabb8 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Wed, 25 Jun 2025 03:01:42 -0400 Subject: [PATCH 4/4] fix inverted canHideAds condition --- packages/frontend/src/pages/settings/preferences.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 7220dc414e..7467439269 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -915,7 +915,7 @@ SPDX-License-Identifier: AGPL-3.0-only - +