From 808c3718a8d4850dfc174bd3d049e2632694f894 Mon Sep 17 00:00:00 2001 From: mini-bomba <55105495+mini-bomba@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:49:26 +0200 Subject: [PATCH] Fix segment hiding/unhiding --- src/popup/SegmentListComponent.tsx | 43 ++++++++++++++++-------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/popup/SegmentListComponent.tsx b/src/popup/SegmentListComponent.tsx index 4bf438b6..3e7fee11 100644 --- a/src/popup/SegmentListComponent.tsx +++ b/src/popup/SegmentListComponent.tsx @@ -146,18 +146,27 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, loopedChapter, sendMessage: (request: Message) => Promise; }) { const [voteMessage, setVoteMessage] = React.useState(null); - const [hidden, setHidden] = React.useState(segment.hidden || SponsorHideType.Visible); + const [hidden, setHidden] = React.useState(segment.hidden ?? SponsorHideType.Visible); // undefined ?? undefined lol const [isLooped, setIsLooped] = React.useState(loopedChapter === segment.UUID); - let extraInfo = ""; - if (segment.hidden === SponsorHideType.Downvoted) { - // This one is downvoted - extraInfo = " (" + chrome.i18n.getMessage("hiddenDueToDownvote") + ")"; - } else if (segment.hidden === SponsorHideType.MinimumDuration) { - // This one is too short - extraInfo = " (" + chrome.i18n.getMessage("hiddenDueToDuration") + ")"; - } else if (segment.hidden === SponsorHideType.Hidden) { - extraInfo = " (" + chrome.i18n.getMessage("manuallyHidden") + ")"; + let extraInfo: string; + switch (hidden) { + case SponsorHideType.Visible: + extraInfo = ""; + break; + case SponsorHideType.Downvoted: + extraInfo = " (" + chrome.i18n.getMessage("hiddenDueToDownvote") + ")"; + break; + case SponsorHideType.MinimumDuration: + extraInfo = " (" + chrome.i18n.getMessage("hiddenDueToDuration") + ")"; + break; + case SponsorHideType.Hidden: + extraInfo = " (" + chrome.i18n.getMessage("manuallyHidden") + ")"; + break; + default: + // hidden satisfies never; // need to upgrade TS + console.warn(`[SB] Unhandled variant of SponsorHideType in SegmentListItem: ${hidden}`); + extraInfo = ""; } return ( @@ -279,7 +288,7 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, loopedChapter, { (segment.actionType === ActionType.Skip || segment.actionType === ActionType.Mute || segment.actionType === ActionType.Poi - && [SponsorHideType.Visible, SponsorHideType.Hidden].includes(segment.hidden)) && + && [SponsorHideType.Visible, SponsorHideType.Hidden].includes(hidden)) &&