@ -1,19 +1,15 @@
import { createSlice , PayloadAction } from "@reduxjs/toolkit" ;
import { createSlice , PayloadAction } from "@reduxjs/toolkit" ;
import { allTabValue , subscriptionTabValue } from "../../constants/Misc.ts" ;
import { allTabValue , subscriptionTabValue } from "../../constants/Misc.ts" ;
import { SubscriptionData } from "../../components/common/SubscribeButton.tsx" ;
type StretchVideoType = "contain" | "fill" | "cover" | "none" | "scale-down" ;
type StretchVideoType = "contain" | "fill" | "cover" | "none" | "scale-down" ;
type SubscriptionListFilterType = "ALL" | "currentNameOnly" ;
type SubscriptionListFilterType = "ALL" | "currentNameOnly" ;
export type SubscriptionObject = {
userName : string ;
subscriberName : string ;
} ;
interface settingsState {
interface settingsState {
selectedTab : string ;
selectedTab : string ;
stretchVideoSetting : StretchVideoType ;
stretchVideoSetting : StretchVideoType ;
filterType : string ;
filterType : string ;
subscriptionList : SubscriptionObject [ ] ;
subscriptionList : SubscriptionData [ ] ;
playbackRate : number ;
playbackRate : number ;
subscriptionListFilter : SubscriptionListFilterType ;
subscriptionListFilter : SubscriptionListFilterType ;
showStats : boolean ;
showStats : boolean ;
@ -42,18 +38,21 @@ export const persistSlice = createSlice({
setShowStats : ( state , action ) = > {
setShowStats : ( state , action ) = > {
state . showStats = action . payload ;
state . showStats = action . payload ;
} ,
} ,
subscribe : ( state , action : PayloadAction < SubscriptionObject > ) = > {
subscribe : ( state , action : PayloadAction < SubscriptionData > ) = > {
const currentSubscriptions = state . subscriptionList ;
const currentSubscriptions = state . subscriptionList ;
const notSubscribedToName =
const notSubscribedToName =
currentSubscriptions . find ( item = > {
currentSubscriptions . find ( item = > {
return item . subscriberName === action . payload . subscriberName ;
return (
item . subscriberName === action . payload . subscriberName &&
item . userName === action . payload . userName
) ;
} ) === undefined ;
} ) === undefined ;
if ( notSubscribedToName ) {
if ( notSubscribedToName ) {
state . subscriptionList = [ . . . currentSubscriptions , action . payload ] ;
state . subscriptionList = [ . . . currentSubscriptions , action . payload ] ;
}
}
console . log ( "subscribeList after subscribe: " , state . subscriptionList ) ;
console . log ( "subscribeList after subscribe: " , state . subscriptionList ) ;
} ,
} ,
unSubscribe : ( state , action : PayloadAction < SubscriptionObject > ) = > {
unSubscribe : ( state , action : PayloadAction < SubscriptionData > ) = > {
state . subscriptionList = state . subscriptionList . filter (
state . subscriptionList = state . subscriptionList . filter (
item = > item . subscriberName !== action . payload . subscriberName
item = > item . subscriberName !== action . payload . subscriberName
) ;
) ;