Files
super-app/components/reusable/gradient-border/GradientBorder.tsx
Kshitij Pramod Ghongadi f95cdfe35d NTP-15148 | GI | Self Serve Plan Migration Flow (#14226)
Co-authored-by: Prajjaval Verma <prajjaval.verma@navi.com>
Co-authored-by: Balrambhai Sharma <sharma.balrambhai@navi.com>
2024-12-24 11:00:57 +00:00

52 lines
1.3 KiB
TypeScript

import { View, ViewStyle } from "react-native";
import { commonStyles } from "../../../App/Container/Navi-Insurance/Styles";
import { NaviLinearGradient } from "../../../App/common/hooks/useGradient";
import { GradientBorderData } from "../../../App/common/interface/components/GradientBorderData";
const GradientBorder = ({
gradientBorderData,
children,
style,
}: {
gradientBorderData?: GradientBorderData;
children?: React.ReactNode;
style?: ViewStyle;
}) => {
let data = gradientBorderData;
let gradientColors = data?.gradientColors;
let orientation = gradientBorderData?.orientation;
let borderWidth = gradientBorderData?.borderWidth;
let outerRadius = gradientBorderData?.borderRadius || 0;
let innerRadius = Math.max(outerRadius - (borderWidth || 0), 0);
return (
<NaviLinearGradient
gradientColors={gradientColors}
orientation={orientation}
style={
[
style,
commonStyles.overflowHidden,
{
padding: borderWidth,
borderRadius: outerRadius,
},
] as ViewStyle
}
>
<View
style={[
commonStyles.overflowHidden,
{
borderRadius: innerRadius,
},
]}
>
{children}
</View>
</NaviLinearGradient>
);
};
export default GradientBorder;