diff --git a/docs/moderation/README.md b/docs/moderation/README.md index f9dff94c..833cc494 100644 --- a/docs/moderation/README.md +++ b/docs/moderation/README.md @@ -77,6 +77,8 @@ New operators should also note that fresh viewer accounts automatically inherit The profile modal now exposes blur, autoplay, and hide thresholds so operators can dial in stricter or more permissive behavior. Enter a non-negative whole number to override the default or leave the field blank to fall back to the baseline values from [`config/instance-config.js`](../../config/instance-config.js) (`DEFAULT_BLUR_THRESHOLD`, `DEFAULT_AUTOPLAY_BLOCK_THRESHOLD`, `DEFAULT_TRUSTED_MUTE_HIDE_THRESHOLD`, `DEFAULT_TRUSTED_SPAM_HIDE_THRESHOLD`). Adjustments are stored locally, applied immediately to the active feed, and rehydrate on every load. Update the config file to change the per-instance defaults that new viewers see. +The trusted mute hide helper copy clarifies the escalation path: once the trusted mute count hits the threshold, cards are hidden with a “Show anyway” override, while lower signals only blur thumbnails or block autoplay previews. + ### Personal hashtag preferences - The Profile modal’s Hashtags tab is wired to [`HashtagPreferencesService`](../../js/services/hashtagPreferencesService.js), which maintains a local snapshot of the viewer’s interests and disinterests, normalizes every tag, and guarantees that the two sets stay mutually exclusive before broadcasting UI change events.【F:js/services/hashtagPreferencesService.js†L206-L276】【F:js/services/hashtagPreferencesService.js†L304-L324】 diff --git a/js/ui/profileModalController.js b/js/ui/profileModalController.js index 30c5092e..25d5770e 100644 --- a/js/ui/profileModalController.js +++ b/js/ui/profileModalController.js @@ -28,6 +28,8 @@ const NWC_URI_SCHEME = "nostr+walletconnect://"; const SECRET_PLACEHOLDER = "*****"; const DEFAULT_MAX_WALLET_DEFAULT_ZAP = 100000000; const DEFAULT_SAVED_PROFILE_LABEL = "Saved profile"; +const TRUSTED_MUTE_HIDE_HELPER_TEXT = + "Reaching this count hides cards (with “Show anyway”); lower signals only blur thumbnails or block autoplay."; const ADD_PROFILE_CANCELLATION_CODES = new Set([ "login-cancelled", @@ -1428,6 +1430,7 @@ export class ProfileModalController { "[data-role=\"trusted-hide-control\"]", ) || [], ); + this.updateTrustedMuteHideHelperCopy(); this.moderatorSection = document.getElementById("adminModeratorsSection") || null; @@ -7061,6 +7064,24 @@ export class ProfileModalController { } } + updateTrustedMuteHideHelperCopy() { + if (!(this.moderationMuteHideInput instanceof HTMLInputElement)) { + return; + } + + const label = this.moderationMuteHideInput.closest("label"); + if (!(label instanceof HTMLElement)) { + return; + } + + const helper = label.querySelector("span.text-xs"); + if (!(helper instanceof HTMLElement)) { + return; + } + + helper.textContent = TRUSTED_MUTE_HIDE_HELPER_TEXT; + } + refreshModerationSettingsUi() { const service = this.getModerationSettingsService(); if (!service) {