47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { View } from "react-native";
|
|
import { NaviLinearGradient } from "../../../App/common/hooks/useGradient";
|
|
import { HeroSectionWidgetProps } from "../../../App/common/interface/widgets/widgetData/HeroSectionWidgetData";
|
|
import { StyledImage } from "../../StyledImage";
|
|
import { StyledText } from "../styled-text/StyledText";
|
|
import styles from "./HeroSectionWidgetStyles";
|
|
|
|
const HeroSectionWidget = ({
|
|
widgetData,
|
|
widgetStyle,
|
|
handleActions,
|
|
handleClick,
|
|
widgetIndex,
|
|
}: HeroSectionWidgetProps) => {
|
|
return (
|
|
<NaviLinearGradient
|
|
gradientColors={widgetData?.backgroundGradient}
|
|
orientation={widgetData?.gradientOrientation}
|
|
>
|
|
<View style={styles.container}>
|
|
<View style={styles.rowContainer}>
|
|
<View style={styles.columnContainer}>
|
|
{widgetData?.title?.text && (
|
|
<StyledText textFieldData={widgetData?.title} />
|
|
)}
|
|
{widgetData?.subtitle?.text && (
|
|
<StyledText textFieldData={widgetData?.subtitle} />
|
|
)}
|
|
</View>
|
|
{widgetData?.image?.url && (
|
|
<StyledImage imageFieldData={widgetData?.image} />
|
|
)}
|
|
</View>
|
|
<View style={styles.calloutContainer}>
|
|
{widgetData?.callout?.title?.text && (
|
|
<View style={widgetData?.callout?.calloutStyle}>
|
|
<StyledText textFieldData={widgetData?.callout?.title} />
|
|
</View>
|
|
)}
|
|
</View>
|
|
</View>
|
|
</NaviLinearGradient>
|
|
);
|
|
};
|
|
|
|
export default HeroSectionWidget;
|