@@ -146,18 +146,27 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, loopedChapter,
146146 sendMessage : ( request : Message ) => Promise < MessageResponse > ;
147147} ) {
148148 const [ voteMessage , setVoteMessage ] = React . useState < string | null > ( null ) ;
149- const [ hidden , setHidden ] = React . useState ( segment . hidden || SponsorHideType . Visible ) ;
149+ const [ hidden , setHidden ] = React . useState ( segment . hidden ?? SponsorHideType . Visible ) ; // undefined ?? undefined lol
150150 const [ isLooped , setIsLooped ] = React . useState ( loopedChapter === segment . UUID ) ;
151151
152- let extraInfo = "" ;
153- if ( segment . hidden === SponsorHideType . Downvoted ) {
154- // This one is downvoted
155- extraInfo = " (" + chrome . i18n . getMessage ( "hiddenDueToDownvote" ) + ")" ;
156- } else if ( segment . hidden === SponsorHideType . MinimumDuration ) {
157- // This one is too short
158- extraInfo = " (" + chrome . i18n . getMessage ( "hiddenDueToDuration" ) + ")" ;
159- } else if ( segment . hidden === SponsorHideType . Hidden ) {
160- extraInfo = " (" + chrome . i18n . getMessage ( "manuallyHidden" ) + ")" ;
152+ let extraInfo : string ;
153+ switch ( hidden ) {
154+ case SponsorHideType . Visible :
155+ extraInfo = "" ;
156+ break ;
157+ case SponsorHideType . Downvoted :
158+ extraInfo = " (" + chrome . i18n . getMessage ( "hiddenDueToDownvote" ) + ")" ;
159+ break ;
160+ case SponsorHideType . MinimumDuration :
161+ extraInfo = " (" + chrome . i18n . getMessage ( "hiddenDueToDuration" ) + ")" ;
162+ break ;
163+ case SponsorHideType . Hidden :
164+ extraInfo = " (" + chrome . i18n . getMessage ( "manuallyHidden" ) + ")" ;
165+ break ;
166+ default :
167+ // hidden satisfies never; // need to upgrade TS
168+ console . warn ( `[SB] Unhandled variant of SponsorHideType in SegmentListItem: ${ hidden } ` ) ;
169+ extraInfo = "" ;
161170 }
162171
163172 return (
@@ -279,7 +288,7 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, loopedChapter,
279288 {
280289 ( segment . actionType === ActionType . Skip || segment . actionType === ActionType . Mute
281290 || segment . actionType === ActionType . Poi
282- && [ SponsorHideType . Visible , SponsorHideType . Hidden ] . includes ( segment . hidden ) ) &&
291+ && [ SponsorHideType . Visible , SponsorHideType . Hidden ] . includes ( hidden ) ) &&
283292 < img
284293 className = "voteButton"
285294 title = { chrome . i18n . getMessage ( "hideSegment" ) }
@@ -288,17 +297,11 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, loopedChapter,
288297 const stopAnimation = AnimationUtils . applyLoadingAnimation ( e . currentTarget , 0.4 ) ;
289298 stopAnimation ( ) ;
290299
291- if ( segment . hidden === SponsorHideType . Hidden ) {
292- segment . hidden = SponsorHideType . Visible ;
293- setHidden ( SponsorHideType . Visible ) ;
294- } else {
295- segment . hidden = SponsorHideType . Hidden ;
296- setHidden ( SponsorHideType . Hidden ) ;
297- }
298-
300+ const newState = hidden === SponsorHideType . Hidden ? SponsorHideType . Visible : SponsorHideType . Hidden ;
301+ setHidden ( newState ) ;
299302 sendMessage ( {
300303 message : "hideSegment" ,
301- type : segment . hidden ,
304+ type : newState ,
302305 UUID : segment . UUID
303306 } ) ;
304307 } } />
0 commit comments