import { IHttpClient } from '@/common/http'; import { IAdBreakParams } from '@/common/ads'; import { unlockOptionsHandler } from './utils/common'; import { createCommonSubscriptionHandler } from './utils/subscription/sub-handler'; import { createShowSubscriptionModal } from './utils/subscription/commands/use-subscription'; export type SubscriptionRewardsHandler = (params: IAdBreakParams) => Promise; export const createSubscriptionRewardHandler = ( httpClient: IHttpClient, { onSubSuccess, onSubFailed, hasSubscription }: { onSubSuccess?: () => void; onSubFailed?: () => void; hasSubscription: () => boolean; } ): SubscriptionRewardsHandler => { const handleUnlockFailed = () => { onSubFailed?.(); }; const showSubscriptionModal = createShowSubscriptionModal('SUBSCRIPTION'); const subscriptionRewardHandler = createCommonSubscriptionHandler('SUBSCRIPTION', httpClient, { handlers: { handleSubSuccess: onSubSuccess, handleSubFailed: handleUnlockFailed, unlockOptionsHandler, showSubscriptionModal, hasSubscription } }); return subscriptionRewardHandler; };