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