import React from 'react';
import { LLWidgetHeader } from '../LLWidgetHeader';
import { LLWidgetFooter } from '../LLWidgetFooter';
import {
useWidgetInteractiveTimeout,
useWidgetExpiryEffect,
usePredictionWidgetEffect,
} from '../../hooks';
import { LLCoreWidget } from '../LLCoreWidget';
import { LLVoteWidgetBody, LLVoteWidgetBodyProps } from '../LLVoteWidgetBody';
import { LLPredictionFollowUpWidget } from './LLPredictionFollowUpWidget';
import { LLBaseWidgetProps } from '../LLBaseWidgetProps';
import { LLPredictionWidgetActionInfo } from './LLPredictionWidgetActionInfo';
export type LLPredictionWidgetProps = LLBaseWidgetProps & {
inlineFollowUp?: boolean;
BodyComponent?: typeof LLVoteWidgetBody;
BodyComponentStyles?: LLVoteWidgetBodyProps['styles'];
};
export function LLPredictionWidget({
programId,
widgetId,
widgetKind,
inlineFollowUp,
onDismiss: onDismissProp,
interactiveTimeout: interactiveTimeoutProp,
onInteractiveTimeout: onInteractiveTimeoutProp,
WidgetComponent = LLCoreWidget,
HeaderComponent = LLWidgetHeader,
BodyComponent = LLVoteWidgetBody,
FooterComponent = LLWidgetFooter,
WidgetComponentStyles,
HeaderComponentStyles,
BodyComponentStyles,
FooterComponentStyles,
}: LLPredictionWidgetProps) {
const { interactiveTimeout, onInteractiveTimeout } =
useWidgetInteractiveTimeout({
widgetId,
interactiveTimeout: interactiveTimeoutProp,
onInteractiveTimeout: onInteractiveTimeoutProp,
});
useWidgetExpiryEffect({ widgetId });
const { followUpWidget } = usePredictionWidgetEffect({
widgetId,
programId,
inlineFollowUp,
});
if (followUpWidget && inlineFollowUp) {
return (
);
}
return (
{({ widget, onDismiss }) => (
<>
>
)}
);
}