import React, { ComponentType } from 'react'; import { StyleSheet, View, ViewStyle } from 'react-native'; import { useStyles } from '../../hooks'; import { ComponentStyleProp, LLComponentStyleFn } from '../../types'; import { LLEndWidgetUIPhaseLabel, LLEndWidgetUIPhaseLabelProps, } from './LLEndWidgetUIPhaseLabel'; import { LLWidgetRewards, LLWidgetRewardsProps } from './LLWidgetRewards'; import { LLWidgetSubmitButtonProps } from './LLWidgetSubmitButtonComponent'; export type LLWidgetActionInfoStyles = { container: ViewStyle; }; export type LLWidgetActionInfoProps = ComponentStyleProp & { widgetId: string; EndWidgetUIPhaseLabelComponent?: typeof LLEndWidgetUIPhaseLabel; EndWidgetUIPhaseLabelComponentStyles?: LLEndWidgetUIPhaseLabelProps['styles']; SubmitButtonComponent?: ComponentType; SubmitButtonComponentStyles?: LLWidgetSubmitButtonProps['styles']; WidgetRewardsComponent?: typeof LLWidgetRewards; WidgetRewardsComponentStyles?: LLWidgetRewardsProps['styles']; }; export function LLWidgetActionInfo({ widgetId, SubmitButtonComponent, SubmitButtonComponentStyles, EndWidgetUIPhaseLabelComponent = LLEndWidgetUIPhaseLabel, EndWidgetUIPhaseLabelComponentStyles, WidgetRewardsComponent = LLWidgetRewards, WidgetRewardsComponentStyles, styles: stylesProp, }: LLWidgetActionInfoProps) { const actionInfoStyles = useStyles({ componentStylesFn: getWidgetActionInfoStyles, stylesProp, }); return ( {SubmitButtonComponent && ( )} ); } const getWidgetActionInfoStyles: LLComponentStyleFn = ({ theme }) => StyleSheet.create({ container: { display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', }, });